dinput: Don't use HIWORD to check if a REFGUID is a DIPROP.

Michael Stefaniuc mstefani at redhat.de
Mon Feb 1 17:11:49 CST 2010


---
 dlls/dinput/device.c              |    4 ++--
 dlls/dinput/dinput_private.h      |    2 ++
 dlls/dinput/joystick.c            |    4 ++--
 dlls/dinput/joystick_linuxinput.c |    4 ++--
 dlls/dinput/keyboard.c            |    2 +-
 dlls/dinput/mouse.c               |    2 +-
 6 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c
index c0f15ff..a5c61ab 100644
--- a/dlls/dinput/device.c
+++ b/dlls/dinput/device.c
@@ -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))
     {
diff --git a/dlls/dinput/dinput_private.h b/dlls/dinput/dinput_private.h
index ddb9aa0..16b4559 100644
--- a/dlls/dinput/dinput_private.h
+++ b/dlls/dinput/dinput_private.h
@@ -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 */
diff --git a/dlls/dinput/joystick.c b/dlls/dinput/joystick.c
index 84e45c9..0f39a6d 100644
--- a/dlls/dinput/joystick.c
+++ b/dlls/dinput/joystick.c
@@ -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;
diff --git a/dlls/dinput/joystick_linuxinput.c b/dlls/dinput/joystick_linuxinput.c
index 6c3c8cc..6da6066 100644
--- a/dlls/dinput/joystick_linuxinput.c
+++ b/dlls/dinput/joystick_linuxinput.c
@@ -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:
diff --git a/dlls/dinput/keyboard.c b/dlls/dinput/keyboard.c
index 3692878..4f6aac5 100644
--- a/dlls/dinput/keyboard.c
+++ b/dlls/dinput/keyboard.c
@@ -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))
     {
diff --git a/dlls/dinput/mouse.c b/dlls/dinput/mouse.c
index 4809c56..e05d9e2 100644
--- a/dlls/dinput/mouse.c
+++ b/dlls/dinput/mouse.c
@@ -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;
-- 
1.6.6



More information about the wine-patches mailing list