https://git.reactos.org/?p=reactos.git;a=commitdiff;h=98e62237b173108e87854dfea91e0a3b9b8b3acb

commit 98e62237b173108e87854dfea91e0a3b9b8b3acb
Author:     Amine Khaldi <[email protected]>
AuthorDate: Fri Jan 25 13:11:07 2019 +0100
Commit:     Amine Khaldi <[email protected]>
CommitDate: Fri Jan 25 13:11:07 2019 +0100

    [DINPUT] Sync with Wine Staging 4.0. CORE-15682
---
 dll/directx/wine/dinput/CMakeLists.txt   |  1 +
 dll/directx/wine/dinput/config.c         |  8 ++++----
 dll/directx/wine/dinput/device.c         | 15 +++++++--------
 dll/directx/wine/dinput/device_private.h |  3 ---
 dll/directx/wine/dinput/dinput.rc        | 13 ++-----------
 dll/directx/wine/dinput/dinput_main.c    | 18 ++++++++----------
 dll/directx/wine/dinput/dinput_private.h |  2 ++
 dll/directx/wine/dinput/joystick.c       | 12 ++++++------
 dll/directx/wine/dinput/joystick_osx.c   |  2 +-
 dll/directx/wine/dinput/keyboard.c       | 13 ++++---------
 dll/directx/wine/dinput/mouse.c          | 11 +++--------
 dll/directx/wine/dinput/version.rc       | 26 ++++++++++++++++++++++++++
 media/doc/README.WINE                    |  2 +-
 13 files changed, 65 insertions(+), 61 deletions(-)

diff --git a/dll/directx/wine/dinput/CMakeLists.txt 
b/dll/directx/wine/dinput/CMakeLists.txt
index fc215eae90..d964e748e9 100644
--- a/dll/directx/wine/dinput/CMakeLists.txt
+++ b/dll/directx/wine/dinput/CMakeLists.txt
@@ -20,6 +20,7 @@ add_library(dinput SHARED
     ${SOURCE}
     data_formats.c
     dinput.rc
+    version.rc
     ${CMAKE_CURRENT_BINARY_DIR}/dinput.def)
 
 add_library(dinput_data_formats data_formats.c)
diff --git a/dll/directx/wine/dinput/config.c b/dll/directx/wine/dinput/config.c
index 708f406375..885f1f4b8e 100644
--- a/dll/directx/wine/dinput/config.c
+++ b/dll/directx/wine/dinput/config.c
@@ -86,7 +86,6 @@ static BOOL CALLBACK collect_devices(LPCDIDEVICEINSTANCEW 
lpddi, IDirectInputDev
  */
 static void init_listview_columns(HWND dialog)
 {
-    HINSTANCE hinstance = (HINSTANCE) GetWindowLongPtrW(dialog, 
GWLP_HINSTANCE);
     LVCOLUMNW listColumn;
     RECT viewRect;
     int width;
@@ -95,7 +94,7 @@ static void init_listview_columns(HWND dialog)
     GetClientRect(GetDlgItem(dialog, IDC_DEVICEOBJECTSLIST), &viewRect);
     width = (viewRect.right - viewRect.left)/2;
 
-    LoadStringW(hinstance, IDS_OBJECTCOLUMN, column, 
sizeof(column)/sizeof(column[0]));
+    LoadStringW(DINPUT_instance, IDS_OBJECTCOLUMN, column, ARRAY_SIZE(column));
     listColumn.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM;
     listColumn.pszText = column;
     listColumn.cchTextMax = lstrlenW(listColumn.pszText);
@@ -103,7 +102,7 @@ static void init_listview_columns(HWND dialog)
 
     SendDlgItemMessageW (dialog, IDC_DEVICEOBJECTSLIST, LVM_INSERTCOLUMNW, 0, 
(LPARAM) &listColumn);
 
-    LoadStringW(hinstance, IDS_ACTIONCOLUMN, column, 
sizeof(column)/sizeof(column[0]));
+    LoadStringW(DINPUT_instance, IDS_ACTIONCOLUMN, column, ARRAY_SIZE(column));
     listColumn.cx = width;
     listColumn.pszText = column;
     listColumn.cchTextMax = lstrlenW(listColumn.pszText);
@@ -453,7 +452,8 @@ HRESULT _configure_devices(IDirectInput8W *iface,
 
     InitCommonControls();
 
-    DialogBoxParamW(GetModuleHandleA("dinput.dll"), (LPCWSTR) 
MAKEINTRESOURCE(IDD_CONFIGUREDEVICES), lpdiCDParams->hwnd, 
ConfigureDevicesDlgProc, (LPARAM) &data);
+    DialogBoxParamW(DINPUT_instance, (const WCHAR 
*)MAKEINTRESOURCE(IDD_CONFIGUREDEVICES),
+            lpdiCDParams->hwnd, ConfigureDevicesDlgProc, (LPARAM)&data);
 
     return DI_OK;
 }
diff --git a/dll/directx/wine/dinput/device.c b/dll/directx/wine/dinput/device.c
index 50ad76f861..6c446163d1 100644
--- a/dll/directx/wine/dinput/device.c
+++ b/dll/directx/wine/dinput/device.c
@@ -80,7 +80,7 @@ static void _dump_cooperativelevel_DI(DWORD dwFlags) {
 #undef FE
        };
        TRACE(" cooperative level : ");
-       for (i = 0; i < (sizeof(flags) / sizeof(flags[0])); i++)
+       for (i = 0; i < ARRAY_SIZE(flags); i++)
            if (flags[i].mask & dwFlags)
                TRACE("%s ",flags[i].name);
        TRACE("\n");
@@ -106,7 +106,7 @@ static void _dump_ObjectDataFormat_flags(DWORD dwFlags) {
     TRACE("Flags:");
 
     /* First the flags */
-    for (i = 0; i < (sizeof(flags) / sizeof(flags[0])); i++) {
+    for (i = 0; i < ARRAY_SIZE(flags); i++) {
         if (flags[i].mask & dwFlags)
         TRACE(" %s",flags[i].name);
     }
@@ -153,7 +153,7 @@ static void _dump_EnumObjects_flags(DWORD dwFlags) {
        if (type == DIDFT_ALL) {
            TRACE(" DIDFT_ALL");
        } else {
-           for (i = 0; i < (sizeof(flags) / sizeof(flags[0])); i++) {
+           for (i = 0; i < ARRAY_SIZE(flags); i++) {
                if (flags[i].mask & type) {
                    type &= ~flags[i].mask;
                    TRACE(" %s",flags[i].name);
@@ -230,7 +230,7 @@ const char *_dump_dinput_GUID(const GUID *guid) {
     };
     if (guid == NULL)
        return "null GUID";
-    for (i = 0; i < (sizeof(guids) / sizeof(guids[0])); i++) {
+    for (i = 0; i < ARRAY_SIZE(guids); i++) {
        if (IsEqualGUID(guids[i].guid, guid)) {
            return guids[i].name;
        }
@@ -916,7 +916,7 @@ HRESULT _set_action_map(LPDIRECTINPUTDEVICE8W iface, 
LPDIACTIONFORMATW lpdiaf, L
     if (dwFlags & DIDSAM_NOUSER)
         dps.wsz[0] = '\0';
     else
-        lstrcpynW(dps.wsz, username, sizeof(dps.wsz)/sizeof(WCHAR));
+        lstrcpynW(dps.wsz, username, ARRAY_SIZE(dps.wsz));
     IDirectInputDevice8_SetProperty(iface, DIPROP_USERNAME, &dps.diph);
 
     /* Save the settings to disk */
@@ -1323,7 +1323,7 @@ HRESULT WINAPI 
IDirectInputDevice2WImpl_GetProperty(LPDIRECTINPUTDEVICE8W iface,
                 {
                     if (*device_player->username)
                     {
-                        lstrcpynW(ps->wsz, device_player->username, 
sizeof(ps->wsz)/sizeof(WCHAR));
+                        lstrcpynW(ps->wsz, device_player->username, 
ARRAY_SIZE(ps->wsz));
                         return DI_OK;
                     }
                     else break;
@@ -1428,8 +1428,7 @@ HRESULT WINAPI IDirectInputDevice2WImpl_SetProperty(
                 device_player->instance_guid = This->guid;
             }
             if (device_player)
-                lstrcpynW(device_player->username, ps->wsz,
-                    sizeof(device_player->username)/sizeof(WCHAR));
+                lstrcpynW(device_player->username, ps->wsz, 
ARRAY_SIZE(device_player->username));
             break;
         }
         default:
diff --git a/dll/directx/wine/dinput/device_private.h 
b/dll/directx/wine/dinput/device_private.h
index 52bbec4490..d9e2997eaa 100644
--- a/dll/directx/wine/dinput/device_private.h
+++ b/dll/directx/wine/dinput/device_private.h
@@ -114,9 +114,6 @@ typedef struct
     LPDIRECTINPUTEFFECT ref;
 } effect_list_item;
 
-extern const GUID DInput_Wine_Keyboard_GUID DECLSPEC_HIDDEN;
-extern const GUID DInput_Wine_Mouse_GUID DECLSPEC_HIDDEN;
-
 /* Various debug tools */
 extern void _dump_DIPROPHEADER(LPCDIPROPHEADER diph)  DECLSPEC_HIDDEN;
 extern void _dump_OBJECTINSTANCEA(const DIDEVICEOBJECTINSTANCEA *ddoi)  
DECLSPEC_HIDDEN;
diff --git a/dll/directx/wine/dinput/dinput.rc 
b/dll/directx/wine/dinput/dinput.rc
index d2641f31ea..30a035fdf7 100644
--- a/dll/directx/wine/dinput/dinput.rc
+++ b/dll/directx/wine/dinput/dinput.rc
@@ -18,19 +18,10 @@
 
 #include "resource.h"
 
-1 WINE_REGISTRY dinput_classes.rgs
-
-#define WINE_FILEDESCRIPTION_STR "Wine DirectInput"
-#define WINE_FILENAME_STR "dinput.dll"
-#define WINE_FILEVERSION 5,1,2600,881
-#define WINE_FILEVERSION_STR "5.1.2600.881"
-#define WINE_PRODUCTVERSION 5,1,2600,881
-#define WINE_PRODUCTVERSION_STR "5.1"
-
-#include "wine/wine_common_ver.rc"
-
 #pragma makedep po
 
+1 WINE_REGISTRY dinput_classes.rgs
+
 LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
 
 STRINGTABLE
diff --git a/dll/directx/wine/dinput/dinput_main.c 
b/dll/directx/wine/dinput/dinput_main.c
index 82c0d14c18..4b058891d9 100644
--- a/dll/directx/wine/dinput/dinput_main.c
+++ b/dll/directx/wine/dinput/dinput_main.c
@@ -93,7 +93,7 @@ static const struct dinput_device *dinput_devices[] =
     &joystick_osx_device
 };
 
-static HINSTANCE DINPUT_instance = NULL;
+HINSTANCE DINPUT_instance;
 
 static BOOL check_hook_thread(void);
 static CRITICAL_SECTION dinput_hook_crit;
@@ -282,7 +282,7 @@ static void _dump_EnumDevices_dwFlags(DWORD dwFlags)
            TRACE("DIEDFL_ALLDEVICES\n");
            return;
        }
-       for (i = 0; i < (sizeof(flags) / sizeof(flags[0])); i++)
+       for (i = 0; i < ARRAY_SIZE(flags); i++)
            if (flags[i].mask & dwFlags)
                TRACE("%s ",flags[i].name);
     }
@@ -1090,7 +1090,7 @@ static HRESULT WINAPI 
IDirectInput8AImpl_EnumDevicesBySemantics(
     /* Add keyboard and mouse to remaining device count */
     if (!(dwFlags & DIEDBSFL_FORCEFEEDBACK))
     {
-        for (i = 0; i < sizeof(guids) / sizeof(guids[0]); i++)
+        for (i = 0; i < ARRAY_SIZE(guids); i++)
         {
             if (should_enumerate_device(username_w, dwFlags, 
&This->device_players, guids[i]))
                 remain++;
@@ -1119,7 +1119,7 @@ static HRESULT WINAPI 
IDirectInput8AImpl_EnumDevicesBySemantics(
     }
 
     /* Enumerate keyboard and mouse */
-    for(i=0; i < sizeof(guids)/sizeof(guids[0]); i++)
+    for (i = 0; i < ARRAY_SIZE(guids); i++)
     {
         if (should_enumerate_device(username_w, dwFlags, 
&This->device_players, guids[i]))
         {
@@ -1191,7 +1191,7 @@ static HRESULT WINAPI 
IDirectInput8WImpl_EnumDevicesBySemantics(
     /* Add keyboard and mouse to remaining device count */
     if (!(dwFlags & DIEDBSFL_FORCEFEEDBACK))
     {
-        for (i = 0; i < sizeof(guids) / sizeof(guids[0]); i++)
+        for (i = 0; i < ARRAY_SIZE(guids); i++)
         {
             if (should_enumerate_device(ptszUserName, dwFlags, 
&This->device_players, guids[i]))
                 remain++;
@@ -1215,7 +1215,7 @@ static HRESULT WINAPI 
IDirectInput8WImpl_EnumDevicesBySemantics(
     if (dwFlags & DIEDBSFL_FORCEFEEDBACK) return DI_OK;
 
     /* Enumerate keyboard and mouse */
-    for(i=0; i < sizeof(guids)/sizeof(guids[0]); i++)
+    for (i = 0; i < ARRAY_SIZE(guids); i++)
     {
         if (should_enumerate_device(ptszUserName, dwFlags, 
&This->device_players, guids[i]))
         {
@@ -1747,12 +1747,10 @@ static DWORD WINAPI hook_thread_proc(void *param)
                 {
                     if (!dev->acquired || !dev->event_proc) continue;
 
-                    if (IsEqualGUID( &dev->guid, &GUID_SysKeyboard ) ||
-                        IsEqualGUID( &dev->guid, &DInput_Wine_Keyboard_GUID ))
+                    if (IsEqualGUID( &dev->guid, &GUID_SysKeyboard ))
                         kbd_cnt++;
                     else
-                        if (IsEqualGUID( &dev->guid, &GUID_SysMouse ) ||
-                            IsEqualGUID( &dev->guid, &DInput_Wine_Mouse_GUID ))
+                        if (IsEqualGUID( &dev->guid, &GUID_SysMouse ))
                             mice_cnt++;
                 }
                 LeaveCriticalSection( &dinput->crit );
diff --git a/dll/directx/wine/dinput/dinput_private.h 
b/dll/directx/wine/dinput/dinput_private.h
index 3ed68f2264..acda6c8048 100644
--- a/dll/directx/wine/dinput/dinput_private.h
+++ b/dll/directx/wine/dinput/dinput_private.h
@@ -27,6 +27,8 @@
 #include "dinputd.h"
 #include "wine/list.h"
 
+extern HINSTANCE DINPUT_instance;
+
 /* Implementation specification */
 typedef struct IDirectInputImpl IDirectInputImpl;
 struct IDirectInputImpl
diff --git a/dll/directx/wine/dinput/joystick.c 
b/dll/directx/wine/dinput/joystick.c
index 45c361809e..0ec1ceb249 100644
--- a/dll/directx/wine/dinput/joystick.c
+++ b/dll/directx/wine/dinput/joystick.c
@@ -92,7 +92,7 @@ static void _dump_DIEFFECT_flags(DWORD dwFlags)
             FE(DIEFF_SPHERICAL)
 #undef FE
         };
-        for (i = 0; i < (sizeof(flags) / sizeof(flags[0])); i++)
+        for (i = 0; i < ARRAY_SIZE(flags); i++)
             if (flags[i].mask & dwFlags)
                 TRACE("%s ", flags[i].name);
         TRACE("\n");
@@ -766,11 +766,11 @@ HRESULT WINAPI 
JoystickWGenericImpl_BuildActionMap(LPDIRECTINPUTDEVICE8W iface,
                                                    LPCWSTR lpszUserName,
                                                    DWORD dwFlags)
 {
+    static const DWORD object_types[] = { DIDFT_AXIS, DIDFT_BUTTON };
+    static const DWORD type_map[] = { DIDFT_RELAXIS, DIDFT_PSHBUTTON };
     JoystickGenericImpl *This = impl_from_IDirectInputDevice8W(iface);
     unsigned int i, j;
     BOOL has_actions = FALSE;
-    DWORD object_types[] = { DIDFT_AXIS, DIDFT_BUTTON };
-    DWORD type_map[] = { DIDFT_RELAXIS, DIDFT_PSHBUTTON };
 
     FIXME("(%p)->(%p,%s,%08x): semi-stub !\n", iface, lpdiaf, 
debugstr_w(lpszUserName), dwFlags);
 
@@ -786,7 +786,7 @@ HRESULT WINAPI 
JoystickWGenericImpl_BuildActionMap(LPDIRECTINPUTDEVICE8W iface,
         /* Only consider actions of the right genre */
         if (lpdiaf->dwGenre != genre && genre != DIGENRE_ANY) continue;
 
-        for (j=0; j < sizeof(object_types)/sizeof(object_types[0]); j++)
+        for (j = 0; j < ARRAY_SIZE(object_types); j++)
         {
             if (type & object_types[j])
             {
@@ -979,7 +979,7 @@ HRESULT setup_dinput_options(JoystickGenericImpl *This, 
const int *default_axis_
             {
                 int i;
 
-                for (i = 0; i < sizeof(axis_names) / sizeof(axis_names[0]); 
i++)
+                for (i = 0; i < ARRAY_SIZE(axis_names); i++)
                 {
                     if (!strcmp(ptr, axis_names[i]))
                     {
@@ -1011,7 +1011,7 @@ HRESULT setup_dinput_options(JoystickGenericImpl *This, 
const int *default_axis_
                     }
                 }
 
-                if (i == sizeof(axis_names) / sizeof(axis_names[0]))
+                if (i == ARRAY_SIZE(axis_names))
                 {
                     ERR("invalid joystick axis type: \"%s\"\n", ptr);
                     i = -1;
diff --git a/dll/directx/wine/dinput/joystick_osx.c 
b/dll/directx/wine/dinput/joystick_osx.c
index 2b2aade813..0701b9f42c 100644
--- a/dll/directx/wine/dinput/joystick_osx.c
+++ b/dll/directx/wine/dinput/joystick_osx.c
@@ -279,7 +279,7 @@ static const char* debugstr_cf(CFTypeRef t)
     if (!ret)
     {
         UniChar buf[200];
-        int len = min(CFStringGetLength(s), sizeof(buf)/sizeof(buf[0]));
+        int len = min(CFStringGetLength(s), ARRAY_SIZE(buf));
         CFStringGetCharacters(s, CFRangeMake(0, len), buf);
         ret = debugstr_wn(buf, len);
     }
diff --git a/dll/directx/wine/dinput/keyboard.c 
b/dll/directx/wine/dinput/keyboard.c
index 6c7b535ea4..642d0c0beb 100644
--- a/dll/directx/wine/dinput/keyboard.c
+++ b/dll/directx/wine/dinput/keyboard.c
@@ -145,10 +145,6 @@ static int KeyboardCallback( LPDIRECTINPUTDEVICE8A iface, 
WPARAM wparam, LPARAM
     return ret;
 }
 
-const GUID DInput_Wine_Keyboard_GUID = { /* 
0ab8648a-7735-11d2-8c73-71df54a96441 */
-    0x0ab8648a, 0x7735, 0x11d2, {0x8c, 0x73, 0x71, 0xdf, 0x54, 0xa9, 0x64, 
0x41}
-};
-
 static DWORD get_keyboard_subtype(void)
 {
     DWORD kbd_type, kbd_subtype, dev_subtype;
@@ -179,7 +175,7 @@ static void 
fill_keyboard_dideviceinstanceA(LPDIDEVICEINSTANCEA lpddi, DWORD ver
 
     ddi.dwSize = dwSize;
     ddi.guidInstance = GUID_SysKeyboard;/* DInput's GUID */
-    ddi.guidProduct = DInput_Wine_Keyboard_GUID; /* Vendor's GUID */
+    ddi.guidProduct = GUID_SysKeyboard;
     if (version >= 0x0800)
         ddi.dwDevType = DI8DEVTYPE_KEYBOARD | (subtype << 8);
     else
@@ -203,7 +199,7 @@ static void 
fill_keyboard_dideviceinstanceW(LPDIDEVICEINSTANCEW lpddi, DWORD ver
  
     ddi.dwSize = dwSize;
     ddi.guidInstance = GUID_SysKeyboard;/* DInput's GUID */
-    ddi.guidProduct = DInput_Wine_Keyboard_GUID; /* Vendor's GUID */
+    ddi.guidProduct = GUID_SysKeyboard;
     if (version >= 0x0800)
         ddi.dwDevType = DI8DEVTYPE_KEYBOARD | (subtype << 8);
     else
@@ -308,8 +304,7 @@ static HRESULT keyboarddev_create_device(IDirectInputImpl 
*dinput, REFGUID rguid
     TRACE("%p %s %s %p %i\n", dinput, debugstr_guid(rguid), 
debugstr_guid(riid), pdev, unicode);
     *pdev = NULL;
 
-    if (IsEqualGUID(&GUID_SysKeyboard, rguid) ||        /* Generic Keyboard */
-        IsEqualGUID(&DInput_Wine_Keyboard_GUID, rguid)) /* Wine Keyboard */
+    if (IsEqualGUID(&GUID_SysKeyboard, rguid)) /* Wine Keyboard */
     {
         SysKeyboardImpl *This;
 
@@ -508,7 +503,7 @@ static HRESULT WINAPI 
SysKeyboardWImpl_GetObjectInfo(LPDIRECTINPUTDEVICE8W iface
 
     scan = map_dik_to_scan(DIDFT_GETINSTANCE(pdidoi->dwType), This->subtype);
     if (!GetKeyNameTextW((scan & 0x80) << 17 | (scan & 0x7f) << 16,
-                         pdidoi->tszName, 
sizeof(pdidoi->tszName)/sizeof(pdidoi->tszName[0])))
+                         pdidoi->tszName, ARRAY_SIZE(pdidoi->tszName)))
         return DIERR_OBJECTNOTFOUND;
 
     _dump_OBJECTINSTANCEW(pdidoi);
diff --git a/dll/directx/wine/dinput/mouse.c b/dll/directx/wine/dinput/mouse.c
index 6d3eff5d52..7133359351 100644
--- a/dll/directx/wine/dinput/mouse.c
+++ b/dll/directx/wine/dinput/mouse.c
@@ -93,10 +93,6 @@ static inline IDirectInputDevice8W 
*IDirectInputDevice8W_from_impl(SysMouseImpl
 
 static int dinput_mouse_hook( LPDIRECTINPUTDEVICE8A iface, WPARAM wparam, 
LPARAM lparam );
 
-const GUID DInput_Wine_Mouse_GUID = { /* 9e573ed8-7734-11d2-8d4a-23903fb6bdf7 
*/
-    0x9e573ed8, 0x7734, 0x11d2, {0x8d, 0x4a, 0x23, 0x90, 0x3f, 0xb6, 0xbd, 
0xf7}
-};
-
 static void _dump_mouse_state(const DIMOUSESTATE2 *m_state)
 {
     int i;
@@ -121,7 +117,7 @@ static void 
fill_mouse_dideviceinstanceA(LPDIDEVICEINSTANCEA lpddi, DWORD versio
 
     ddi.dwSize = dwSize;
     ddi.guidInstance = GUID_SysMouse;/* DInput's GUID */
-    ddi.guidProduct = DInput_Wine_Mouse_GUID; /* Vendor's GUID */
+    ddi.guidProduct = GUID_SysMouse;
     if (version >= 0x0800)
         ddi.dwDevType = DI8DEVTYPE_MOUSE | (DI8DEVTYPEMOUSE_TRADITIONAL << 8);
     else
@@ -145,7 +141,7 @@ static void 
fill_mouse_dideviceinstanceW(LPDIDEVICEINSTANCEW lpddi, DWORD versio
 
     ddi.dwSize = dwSize;
     ddi.guidInstance = GUID_SysMouse;/* DInput's GUID */
-    ddi.guidProduct = DInput_Wine_Mouse_GUID; /* Vendor's GUID */
+    ddi.guidProduct = GUID_SysMouse;
     if (version >= 0x0800)
         ddi.dwDevType = DI8DEVTYPE_MOUSE | (DI8DEVTYPEMOUSE_TRADITIONAL << 8);
     else
@@ -257,8 +253,7 @@ static HRESULT mousedev_create_device(IDirectInputImpl 
*dinput, REFGUID rguid, R
     TRACE("%p %s %s %p %i\n", dinput, debugstr_guid(rguid), 
debugstr_guid(riid), pdev, unicode);
     *pdev = NULL;
 
-    if (IsEqualGUID(&GUID_SysMouse, rguid) ||        /* Generic Mouse */
-        IsEqualGUID(&DInput_Wine_Mouse_GUID, rguid)) /* Wine Mouse */
+    if (IsEqualGUID(&GUID_SysMouse, rguid)) /* Wine Mouse */
     {
         SysMouseImpl *This;
 
diff --git a/dll/directx/wine/dinput/version.rc 
b/dll/directx/wine/dinput/version.rc
new file mode 100644
index 0000000000..fd91f51877
--- /dev/null
+++ b/dll/directx/wine/dinput/version.rc
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2001 Ove Kaaven
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#define WINE_FILEDESCRIPTION_STR "Wine DirectInput"
+#define WINE_FILENAME_STR "dinput.dll"
+#define WINE_FILEVERSION 5,1,2600,881
+#define WINE_FILEVERSION_STR "5.1.2600.881"
+#define WINE_PRODUCTVERSION 5,1,2600,881
+#define WINE_PRODUCTVERSION_STR "5.1"
+
+#include "wine/wine_common_ver.rc"
diff --git a/media/doc/README.WINE b/media/doc/README.WINE
index 64c9a50a12..d19384e21e 100644
--- a/media/doc/README.WINE
+++ b/media/doc/README.WINE
@@ -30,7 +30,7 @@ reactos/dll/directx/wine/d3dx9_24 => 43 # Synced to 
WineStaging-4.0
 reactos/dll/directx/wine/d3dxof         # Synced to WineStaging-3.17
 reactos/dll/directx/wine/ddraw          # Synced to WineStaging-3.9
 reactos/dll/directx/wine/devenum        # Synced to WineStaging-3.9
-reactos/dll/directx/wine/dinput         # Synced to WineStaging-3.17
+reactos/dll/directx/wine/dinput         # Synced to WineStaging-4.0
 reactos/dll/directx/wine/dinput8        # Synced to WineStaging-3.3
 reactos/dll/directx/wine/dmusic         # Synced to WineStaging-3.17
 reactos/dll/directx/wine/dplay          # Synced to WineStaging-3.3

Reply via email to