From 54b2fc355327a46709f124bfff330ae6b92887e3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Bernon?= Date: Tue, 21 Sep 2021 09:52:49 +0200 Subject: [PATCH] dinput: Return correct errors from HID joystick IDirectInputDevice8_Poll. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: RĂ©mi Bernon Signed-off-by: Alexandre Julliard --- dlls/dinput/joystick_hid.c | 14 +++++++++++++- dlls/dinput8/tests/hid.c | 1 - 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/dlls/dinput/joystick_hid.c b/dlls/dinput/joystick_hid.c index 45e75588aed..f7107733d26 100644 --- a/dlls/dinput/joystick_hid.c +++ b/dlls/dinput/joystick_hid.c @@ -704,6 +704,18 @@ static HRESULT WINAPI hid_joystick_GetDeviceInfo( IDirectInputDevice8W *iface, D return S_OK; } +static HRESULT WINAPI hid_joystick_Poll( IDirectInputDevice8W *iface ) +{ + struct hid_joystick *impl = impl_from_IDirectInputDevice8W( iface ); + HRESULT hr = DI_NOEFFECT; + + EnterCriticalSection( &impl->base.crit ); + if (!impl->base.acquired) hr = DIERR_NOTACQUIRED; + LeaveCriticalSection( &impl->base.crit ); + + return hr; +} + static HRESULT WINAPI hid_joystick_BuildActionMap( IDirectInputDevice8W *iface, DIACTIONFORMATW *format, const WCHAR *username, DWORD flags ) { @@ -756,7 +768,7 @@ static const IDirectInputDevice8WVtbl hid_joystick_vtbl = IDirectInputDevice2WImpl_SendForceFeedbackCommand, IDirectInputDevice2WImpl_EnumCreatedEffectObjects, IDirectInputDevice2WImpl_Escape, - IDirectInputDevice2WImpl_Poll, + hid_joystick_Poll, IDirectInputDevice2WImpl_SendDeviceData, /*** IDirectInputDevice7 methods ***/ IDirectInputDevice7WImpl_EnumEffectsInFile, diff --git a/dlls/dinput8/tests/hid.c b/dlls/dinput8/tests/hid.c index f24acfbf70d..b4aad6b7d5a 100644 --- a/dlls/dinput8/tests/hid.c +++ b/dlls/dinput8/tests/hid.c @@ -4102,7 +4102,6 @@ static void test_simple_joystick(void) ok( hr == DI_OK, "IDirectInputDevice8_Acquire returned: %#x\n", hr ); hr = IDirectInputDevice8_Poll( device ); - todo_wine ok( hr == DI_NOEFFECT, "IDirectInputDevice8_Poll returned: %#x\n", hr ); hr = IDirectInputDevice8_GetDeviceState( device, sizeof(DIJOYSTATE2) + 1, &state ); -- 2.11.4.GIT