Lucas Zawacki : dinput/tests: Test for DIPROP_INSTANCENAME and DIPROP_GUIDANDPATH.

Alexandre Julliard julliard at winehq.org
Thu Oct 11 15:25:16 CDT 2012


Module: wine
Branch: master
Commit: 913cbb9f218095c344aab5aab801751b96ffe67c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=913cbb9f218095c344aab5aab801751b96ffe67c

Author: Lucas Zawacki <lfzawacki at gmail.com>
Date:   Thu Oct 11 10:45:26 2012 -0300

dinput/tests: Test for DIPROP_INSTANCENAME and DIPROP_GUIDANDPATH.

---

 dlls/dinput/tests/joystick.c |   26 ++++++++++++++++++++++++++
 include/dinput.h             |    2 ++
 2 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/dlls/dinput/tests/joystick.c b/dlls/dinput/tests/joystick.c
index a49ee2e..2fe12ba 100644
--- a/dlls/dinput/tests/joystick.c
+++ b/dlls/dinput/tests/joystick.c
@@ -181,6 +181,9 @@ static BOOL CALLBACK EnumJoysticks(
     DIDEVICEINSTANCE inst;
     DIDEVICEINSTANCE_DX3 inst3;
     DIPROPDWORD dipw;
+    DIPROPSTRING dps;
+    DIPROPGUIDANDPATH dpg;
+    WCHAR nameBuffer[MAX_PATH];
     HWND hWnd = get_hwnd();
     char oldstate[248], curstate[248];
 
@@ -216,6 +219,29 @@ static BOOL CALLBACK EnumJoysticks(
     hr = IDirectInputDevice_GetProperty(pJoystick, DIPROP_JOYSTICKID, &dipw.diph);
     ok(SUCCEEDED(hr), "IDirectInputDevice_GetProperty() for DIPROP_JOYSTICKID failed\n");
 
+    /* Test for INSTANCENAME property */
+    memset(&dps, 0, sizeof(dps));
+    dps.diph.dwSize = sizeof(DIPROPSTRING);
+    dps.diph.dwHeaderSize = sizeof(DIPROPHEADER);
+    dps.diph.dwHow = DIPH_DEVICE;
+
+    hr = IDirectInputDevice_GetProperty(pJoystick, DIPROP_INSTANCENAME, &dps.diph);
+    ok(SUCCEEDED(hr), "IDirectInput_GetProperty() for DIPROP_INSTANCENAME failed: %08x\n", hr);
+
+    /* Test if instance name is the same as present in DIDEVICEINSTANCE */
+    MultiByteToWideChar(CP_ACP, 0, lpddi->tszInstanceName, -1, nameBuffer, MAX_PATH);
+    ok(!lstrcmpW(nameBuffer, dps.wsz), "DIPROP_INSTANCENAME returned is wrong. Expected: %s Got: %s\n",
+                 wine_dbgstr_w(nameBuffer), wine_dbgstr_w(dps.wsz));
+
+    /* Test for GUIDPATH properties */
+    memset(&dpg, 0, sizeof(dpg));
+    dpg.diph.dwSize = sizeof(DIPROPGUIDANDPATH);
+    dpg.diph.dwHeaderSize = sizeof(DIPROPHEADER);
+    dpg.diph.dwHow = DIPH_DEVICE;
+
+    hr = IDirectInputDevice_GetProperty(pJoystick, DIPROP_GUIDANDPATH, &dpg.diph);
+    todo_wine ok(SUCCEEDED(hr), "IDirectInput_GetProperty() for DIPROP_GUIDANDPATH failed: %08x\n", hr);
+
     hr = IDirectInputDevice_SetDataFormat(pJoystick, NULL);
     ok(hr==E_POINTER,"IDirectInputDevice_SetDataFormat() should have returned "
        "E_POINTER, returned: %08x\n", hr);
diff --git a/include/dinput.h b/include/dinput.h
index 3125800..8c779c2 100644
--- a/include/dinput.h
+++ b/include/dinput.h
@@ -905,6 +905,8 @@ typedef const DIPROPSTRING *LPCDIPROPSTRING;
 
 #define DIPROP_CALIBRATION	MAKEDIPROP(11)
 #define DIPROP_GUIDANDPATH	MAKEDIPROP(12)
+
+#define DIPROP_INSTANCENAME     MAKEDIPROP(13)
 #define DIPROP_JOYSTICKID       MAKEDIPROP(15)
 #define DIPROP_KEYNAME          MAKEDIPROP(20)
 #define DIPROP_VIDPID           MAKEDIPROP(24)




More information about the wine-cvs mailing list