[1/2] dinput/tests: Test for keyboard GetCapabilities

Lucas Zawacki lfzawacki at gmail.com
Mon Aug 20 01:52:16 CDT 2012


From: Lucas Zawacki <lfzawacki at gmail.com>

---
 dlls/dinput/tests/keyboard.c |   24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/dlls/dinput/tests/keyboard.c b/dlls/dinput/tests/keyboard.c
index 4b46a61..6aab8a7 100644
--- a/dlls/dinput/tests/keyboard.c
+++ b/dlls/dinput/tests/keyboard.c
@@ -170,6 +170,29 @@ static void test_get_prop(LPDIRECTINPUT pDI, HWND hwnd)
     if (pKeyboard) IUnknown_Release(pKeyboard);
 }
 
+static void test_capabilities(LPDIRECTINPUT pDI, HWND hwnd)
+{
+    HRESULT hr;
+    LPDIRECTINPUTDEVICE pKeyboard = NULL;
+    DIDEVCAPS caps;
+
+    hr = IDirectInput_CreateDevice(pDI, &GUID_SysKeyboard, &pKeyboard, NULL);
+    ok(SUCCEEDED(hr), "IDirectInput_CreateDevice() failed: %08x\n", hr);
+    if (FAILED(hr)) return;
+
+    caps.dwSize = sizeof(caps);
+    hr = IDirectInputDevice_GetCapabilities(pKeyboard, &caps);
+
+    ok (SUCCEEDED(hr), "GetCapabilites failed: 0x%08x\n", hr);
+    ok (caps.dwFlags & DIDC_ATTACHED, "GetCapabilites dwFlags: 0x%08x\n", caps.dwFlags);
+    ok (LOWORD(LOBYTE(caps.dwDevType)) == DIDEVTYPE_KEYBOARD,
+        "GetCapabilities invalid device type for dwDevType: 0x%08x\n", caps.dwDevType);
+    todo_wine ok (LOWORD(HIBYTE(caps.dwDevType)) != DIDEVTYPEKEYBOARD_UNKNOWN,
+        "GetCapabilities invalid device subtype for dwDevType: 0x%08x\n", caps.dwDevType);
+
+    if (pKeyboard) IUnknown_Release(pKeyboard);
+}
+
 static void keyboard_tests(DWORD version)
 {
     HRESULT hr;
@@ -196,6 +219,7 @@ static void keyboard_tests(DWORD version)
         acquire_tests(pDI, hwnd);
         test_set_coop(pDI, hwnd);
         test_get_prop(pDI, hwnd);
+        test_capabilities(pDI, hwnd);
     }
 
     DestroyWindow(hwnd);
-- 
1.7.9.5




More information about the wine-patches mailing list