https://git.reactos.org/?p=reactos.git;a=commitdiff;h=98e62237b173108e87854d...
commit 98e62237b173108e87854dfea91e0a3b9b8b3acb Author: Amine Khaldi amine.khaldi@reactos.org AuthorDate: Fri Jan 25 13:11:07 2019 +0100 Commit: Amine Khaldi amine.khaldi@reactos.org 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