diff --git a/dlls/dinput/keyboard.c b/dlls/dinput/keyboard.c index b5e665933ec..47f28cac52a 100644 --- a/dlls/dinput/keyboard.c +++ b/dlls/dinput/keyboard.c @@ -577,6 +577,7 @@ static HRESULT WINAPI SysKeyboardWImpl_GetProperty(LPDIRECTINPUTDEVICE8W iface, memcpy(ps->wsz, didoi.tszName, sizeof(ps->wsz)); return hr; } + case (DWORD_PTR) DIPROP_VIDPID: case (DWORD_PTR) DIPROP_RANGE: return DIERR_UNSUPPORTED; default: diff --git a/dlls/dinput/tests/keyboard.c b/dlls/dinput/tests/keyboard.c index 84e6fed0782..1cd31e03187 100644 --- a/dlls/dinput/tests/keyboard.c +++ b/dlls/dinput/tests/keyboard.c @@ -258,6 +258,7 @@ static void test_get_prop(IDirectInputA *pDI, HWND hwnd) HRESULT hr; IDirectInputDeviceA *pKeyboard = NULL; DIPROPRANGE diprg; + DIPROPDWORD vidpid; hr = IDirectInput_CreateDevice(pDI, &GUID_SysKeyboard, &pKeyboard, NULL); ok(SUCCEEDED(hr), "IDirectInput_CreateDevice() failed: %08x\n", hr); @@ -272,6 +273,15 @@ static void test_get_prop(IDirectInputA *pDI, HWND hwnd) hr = IDirectInputDevice_GetProperty(pKeyboard, DIPROP_RANGE, &diprg.diph); ok(hr == DIERR_UNSUPPORTED, "IDirectInputDevice_GetProperty() did not return DIPROP_RANGE but: %08x\n", hr); + memset(&vidpid, 0, sizeof(vidpid)); + vidpid.diph.dwSize = sizeof(DIPROPDWORD); + vidpid.diph.dwHeaderSize = sizeof(DIPROPHEADER); + vidpid.diph.dwHow = DIPH_DEVICE; + vidpid.diph.dwObj = 0; + + hr = IDirectInputDevice_GetProperty(pKeyboard, DIPROP_VIDPID, &vidpid.diph); + ok(hr == DIERR_UNSUPPORTED, "got %08x\n", hr); + IUnknown_Release(pKeyboard); }