Arkadiusz Hiler : user32: Uppercase the RawInput device names sans the GUID.

Alexandre Julliard julliard at winehq.org
Thu Dec 23 16:01:33 CST 2021


Module: wine
Branch: master
Commit: a60c5e696131b47c5d1959adbdad26be53481b8e
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=a60c5e696131b47c5d1959adbdad26be53481b8e

Author: Arkadiusz Hiler <ahiler at codeweavers.com>
Date:   Thu Dec 23 15:33:08 2021 +0100

user32: Uppercase the RawInput device names sans the GUID.

This is a preparation for a patch that changes setupapi to return lowercased
device paths, which is the source of RawInput device name here. On Windows
RawInput returns mostly uppercase names (except the GUID) and we want to keep
that behavior.

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/user32/rawinput.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/dlls/user32/rawinput.c b/dlls/user32/rawinput.c
index f3dc4ae67de..a774f12231b 100644
--- a/dlls/user32/rawinput.c
+++ b/dlls/user32/rawinput.c
@@ -101,6 +101,7 @@ static struct device *add_device(HDEVINFO set, SP_DEVICE_INTERFACE_DATA *iface)
     struct device *device = NULL;
     UINT32 handle;
     HANDLE file;
+    WCHAR *pos;
     DWORD i, size, type;
 
     SetupDiGetDeviceInterfaceDetailW(set, iface, NULL, 0, &size, &device_data);
@@ -125,6 +126,9 @@ static struct device *add_device(HDEVINFO set, SP_DEVICE_INTERFACE_DATA *iface)
     detail->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_W);
     SetupDiGetDeviceInterfaceDetailW(set, iface, detail, size, NULL, NULL);
 
+    /* upper case everything but the GUID */
+    for (pos = detail->DevicePath; *pos && *pos != '{'; pos++) *pos = towupper(*pos);
+
     file = CreateFileW(detail->DevicePath, GENERIC_READ | GENERIC_WRITE,
             FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0);
     if (file == INVALID_HANDLE_VALUE)




More information about the wine-cvs mailing list