dinput: Don't use HIWORD to check if a REFGUID is a DIPROP.
authorMichael Stefaniuc <mstefani@redhat.de>
Mon, 1 Feb 2010 23:11:49 +0000 (00:11 +0100)
committerAlexandre Julliard <julliard@winehq.org>
Tue, 2 Feb 2010 10:47:20 +0000 (11:47 +0100)
dlls/dinput/device.c
dlls/dinput/dinput_private.h
dlls/dinput/joystick.c
dlls/dinput/joystick_linuxinput.c
dlls/dinput/keyboard.c
dlls/dinput/mouse.c

index c0f15ff26c6b4d2e5bfed2f772859860f8605996..a5c61ab53b338781100a613dd539b3ac6b5d8683 100644 (file)
@@ -872,7 +872,7 @@ HRESULT WINAPI IDirectInputDevice2AImpl_GetProperty(
     TRACE("(%p) %s,%p\n", iface, debugstr_guid(rguid), pdiph);
     _dump_DIPROPHEADER(pdiph);
 
-    if (HIWORD(rguid)) return DI_OK;
+    if (!IS_DIPROP(rguid)) return DI_OK;
 
     switch (LOWORD(rguid))
     {
@@ -906,7 +906,7 @@ HRESULT WINAPI IDirectInputDevice2AImpl_SetProperty(
     TRACE("(%p) %s,%p\n", iface, debugstr_guid(rguid), pdiph);
     _dump_DIPROPHEADER(pdiph);
 
-    if (HIWORD(rguid)) return DI_OK;
+    if (!IS_DIPROP(rguid)) return DI_OK;
 
     switch (LOWORD(rguid))
     {
index ddb9aa06bd1080cfdcfda2be0c558cf3e8790204..16b4559800d1dfa8b5b48dc6382a6106605be325 100644 (file)
@@ -65,4 +65,6 @@ typedef int (*DI_EVENT_PROC)(LPDIRECTINPUTDEVICE8A, WPARAM, LPARAM);
 
 extern void _dump_diactionformatA(LPDIACTIONFORMATA);
 
+#define IS_DIPROP(x)    (((ULONG_PTR)(x) >> 16) == 0)
+
 #endif /* __WINE_DLLS_DINPUT_DINPUT_PRIVATE_H */
index 84e45c9ddbd1c3200d7a563e921fbb379da5eb05..0f39a6dc5ecc5e51b118558519bf153f9bce0668 100644 (file)
@@ -53,7 +53,7 @@ HRESULT WINAPI JoystickAGenericImpl_SetProperty(
     if (TRACE_ON(dinput))
         _dump_DIPROPHEADER(ph);
 
-    if (!HIWORD(rguid)) {
+    if (IS_DIPROP(rguid)) {
         switch (LOWORD(rguid)) {
         case (DWORD_PTR)DIPROP_RANGE: {
             LPCDIPROPRANGE pr = (LPCDIPROPRANGE)ph;
@@ -230,7 +230,7 @@ HRESULT WINAPI JoystickAGenericImpl_GetProperty(
     if (TRACE_ON(dinput))
         _dump_DIPROPHEADER(pdiph);
 
-    if (!HIWORD(rguid)) {
+    if (IS_DIPROP(rguid)) {
         switch (LOWORD(rguid)) {
         case (DWORD_PTR) DIPROP_RANGE: {
             LPDIPROPRANGE pr = (LPDIPROPRANGE)pdiph;
index 6c3c8ccfd1f988907dda711e113272bed6622c25..6da60663b364ead78e098e5c70ef1457a8898b61 100644 (file)
@@ -847,7 +847,7 @@ static HRESULT WINAPI JoystickAImpl_SetProperty(LPDIRECTINPUTDEVICE8A iface,
   TRACE("ph.dwSize = %d, ph.dwHeaderSize =%d, ph.dwObj = %d, ph.dwHow= %d\n",
         ph->dwSize, ph->dwHeaderSize, ph->dwObj, ph->dwHow);
 
-  if (!HIWORD(rguid)) {
+  if (IS_DIPROP(rguid)) {
     switch (LOWORD(rguid)) {
     case (DWORD_PTR)DIPROP_CALIBRATIONMODE: {
       LPCDIPROPDWORD   pd = (LPCDIPROPDWORD)ph;
@@ -898,7 +898,7 @@ static HRESULT WINAPI JoystickAImpl_GetProperty(LPDIRECTINPUTDEVICE8A iface,
     TRACE("(this=%p,%s,%p)\n", iface, debugstr_guid(rguid), pdiph);
     _dump_DIPROPHEADER(pdiph);
 
-    if (HIWORD(rguid)) return DI_OK;
+    if (!IS_DIPROP(rguid)) return DI_OK;
 
     switch (LOWORD(rguid)) {
     case (DWORD_PTR) DIPROP_AUTOCENTER:
index 3692878039290bf3a814181da1362c51ed2e56ff..4f6aac5b49561c11a8e2d37266553840957355cf 100644 (file)
@@ -447,7 +447,7 @@ static HRESULT WINAPI SysKeyboardAImpl_GetProperty(LPDIRECTINPUTDEVICE8A iface,
     TRACE("(%p) %s,%p\n", iface, debugstr_guid(rguid), pdiph);
     _dump_DIPROPHEADER(pdiph);
 
-    if (HIWORD(rguid)) return DI_OK;
+    if (!IS_DIPROP(rguid)) return DI_OK;
 
     switch (LOWORD(rguid))
     {
index 4809c567de2fbc9994b9cdee79a231695152cf15..e05d9e2173b97d25b198ccd8f278bcaa88450d46 100644 (file)
@@ -587,7 +587,7 @@ static HRESULT WINAPI SysMouseAImpl_GetProperty(LPDIRECTINPUTDEVICE8A iface,
     TRACE("(%p) %s,%p\n", This, debugstr_guid(rguid), pdiph);
     _dump_DIPROPHEADER(pdiph);
     
-    if (!HIWORD(rguid)) {
+    if (IS_DIPROP(rguid)) {
        switch (LOWORD(rguid)) {
            case (DWORD_PTR) DIPROP_GRANULARITY: {
                LPDIPROPDWORD pr = (LPDIPROPDWORD) pdiph;