From cc5178fe7308ed9fd49166c23ceb882ab3c5eb24 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Mon, 16 May 2022 11:50:40 +0200 Subject: [PATCH] dinput: Factor out the dinput_device_init() call into dinput7_CreateDeviceEx(). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Zebediah Figura Signed-off-by: RĂ©mi Bernon Signed-off-by: Alexandre Julliard --- dlls/dinput/dinput_main.c | 7 +++++++ dlls/dinput/joystick_hid.c | 2 -- dlls/dinput/keyboard.c | 6 ------ dlls/dinput/mouse.c | 6 ------ 4 files changed, 7 insertions(+), 14 deletions(-) diff --git a/dlls/dinput/dinput_main.c b/dlls/dinput/dinput_main.c index 0cd5eb59588..41e143ad43c 100644 --- a/dlls/dinput/dinput_main.c +++ b/dlls/dinput/dinput_main.c @@ -545,6 +545,13 @@ static HRESULT WINAPI dinput7_CreateDeviceEx( IDirectInput7W *iface, const GUID else hr = hid_joystick_create_device( impl, guid, &device ); if (FAILED(hr)) return hr; + + if (FAILED(hr = dinput_device_init( device ))) + { + IDirectInputDevice8_Release( device ); + return hr; + } + hr = IDirectInputDevice8_QueryInterface( device, iid, out ); IDirectInputDevice8_Release( device ); return hr; diff --git a/dlls/dinput/joystick_hid.c b/dlls/dinput/joystick_hid.c index 3aa6d6b5ad3..ddd67be4fd0 100644 --- a/dlls/dinput/joystick_hid.c +++ b/dlls/dinput/joystick_hid.c @@ -2138,8 +2138,6 @@ HRESULT hid_joystick_create_device( struct dinput *dinput, const GUID *guid, IDi impl->base.caps.dwFFDriverVersion = 1; } - if (FAILED(hr = dinput_device_init( &impl->base.IDirectInputDevice8W_iface ))) goto failed; - *out = &impl->base.IDirectInputDevice8W_iface; return DI_OK; diff --git a/dlls/dinput/keyboard.c b/dlls/dinput/keyboard.c index 1a1776ac408..f8f7a5a3195 100644 --- a/dlls/dinput/keyboard.c +++ b/dlls/dinput/keyboard.c @@ -183,12 +183,6 @@ HRESULT keyboard_create_device( struct dinput *dinput, const GUID *guid, IDirect impl->base.caps.dwFirmwareRevision = 100; impl->base.caps.dwHardwareRevision = 100; - if (FAILED(hr = dinput_device_init( &impl->base.IDirectInputDevice8W_iface ))) - { - IDirectInputDevice_Release( &impl->base.IDirectInputDevice8W_iface ); - return hr; - } - *out = &impl->base.IDirectInputDevice8W_iface; return DI_OK; } diff --git a/dlls/dinput/mouse.c b/dlls/dinput/mouse.c index 2a004d80143..622dc1994d1 100644 --- a/dlls/dinput/mouse.c +++ b/dlls/dinput/mouse.c @@ -122,12 +122,6 @@ HRESULT mouse_create_device( struct dinput *dinput, const GUID *guid, IDirectInp if (appkey) RegCloseKey(appkey); if (hkey) RegCloseKey(hkey); - if (FAILED(hr = dinput_device_init( &impl->base.IDirectInputDevice8W_iface ))) - { - IDirectInputDevice_Release( &impl->base.IDirectInputDevice8W_iface ); - return hr; - } - if (dinput->dwVersion >= 0x0800) { impl->base.use_raw_input = TRUE;