dinput: Implement GetDeviceStatus.
This commit is contained in:
parent
d7b98841ab
commit
a37c60b0f7
|
@ -417,8 +417,15 @@ static HRESULT WINAPI IDirectInputWImpl_Initialize(LPDIRECTINPUT7W iface, HINSTA
|
|||
static HRESULT WINAPI IDirectInputAImpl_GetDeviceStatus(LPDIRECTINPUT7A iface, REFGUID rguid)
|
||||
{
|
||||
IDirectInputImpl *This = (IDirectInputImpl *)iface;
|
||||
HRESULT hr;
|
||||
LPDIRECTINPUTDEVICEA device;
|
||||
|
||||
FIXME( "(%p)->(%s): stub\n", This, debugstr_guid(rguid) );
|
||||
TRACE( "(%p)->(%s)\n", This, debugstr_guid(rguid) );
|
||||
|
||||
hr = IDirectInput_CreateDevice( iface, rguid, &device, NULL );
|
||||
if (hr != DI_OK) return DI_NOTATTACHED;
|
||||
|
||||
IUnknown_Release( device );
|
||||
|
||||
return DI_OK;
|
||||
}
|
||||
|
|
|
@ -124,10 +124,13 @@ static BOOL CALLBACK enum_devices(LPCDIDEVICEINSTANCE lpddi, LPVOID pvRef)
|
|||
LPDIRECTINPUTDEVICE device;
|
||||
HRESULT hr;
|
||||
|
||||
hr = IDirectInput_CreateDevice(data->pDI, &lpddi->guidInstance, &device, NULL);
|
||||
ok(SUCCEEDED(hr), "IDirectInput_CreateDevice() failed: %s\n", DXGetErrorString8(hr));
|
||||
if (SUCCEEDED(hr))
|
||||
hr = IDirectInput_GetDeviceStatus(data->pDI, &lpddi->guidInstance);
|
||||
ok(hr == DI_OK, "IDirectInput_GetDeviceStatus() failed: %s\n", DXGetErrorString8(hr));
|
||||
|
||||
if (hr == DI_OK)
|
||||
{
|
||||
hr = IDirectInput_CreateDevice(data->pDI, &lpddi->guidInstance, &device, NULL);
|
||||
ok(SUCCEEDED(hr), "IDirectInput_CreateDevice() failed: %s\n", DXGetErrorString8(hr));
|
||||
trace("Testing device \"%s\"\n", lpddi->tszInstanceName);
|
||||
test_object_info(device, data->hwnd);
|
||||
IUnknown_Release(device);
|
||||
|
@ -164,6 +167,18 @@ static void device_tests(void)
|
|||
hr = IDirectInput_EnumDevices(pDI, 0, enum_devices, &data, DIEDFL_ALLDEVICES);
|
||||
ok(SUCCEEDED(hr), "IDirectInput_EnumDevices() failed: %s\n", DXGetErrorString8(hr));
|
||||
|
||||
|
||||
/* If GetDeviceStatus returns DI_OK the device must exist */
|
||||
hr = IDirectInput_GetDeviceStatus(pDI, &GUID_Joystick);
|
||||
if (hr == DI_OK)
|
||||
{
|
||||
LPDIRECTINPUTDEVICE device = NULL;
|
||||
|
||||
hr = IDirectInput_CreateDevice(pDI, &GUID_Joystick, &device, NULL);
|
||||
ok(SUCCEEDED(hr), "IDirectInput_CreateDevice() failed: %s\n", DXGetErrorString8(hr));
|
||||
if (device) IUnknown_Release(device);
|
||||
}
|
||||
|
||||
DestroyWindow(hwnd);
|
||||
}
|
||||
if (pDI) IUnknown_Release(pDI);
|
||||
|
|
Loading…
Reference in New Issue