From 91066bd5e08cd4e51a5ae219379782e5e289e289 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Thu, 22 Apr 2021 21:26:52 +0200 Subject: [PATCH] user32: Enumerate keyboard rawinput devices. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: RĂ©mi Bernon Signed-off-by: Alexandre Julliard --- dlls/user32/rawinput.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/dlls/user32/rawinput.c b/dlls/user32/rawinput.c index 7796a65641e..129c1933c36 100644 --- a/dlls/user32/rawinput.c +++ b/dlls/user32/rawinput.c @@ -39,6 +39,7 @@ #include "initguid.h" #include "ntddmou.h" +#include "ntddkbd.h" WINE_DEFAULT_DEBUG_CHANNEL(rawinput); @@ -211,6 +212,21 @@ static void find_devices(void) SetupDiDestroyDeviceInfoList(set); + set = SetupDiGetClassDevsW(&GUID_DEVINTERFACE_KEYBOARD, NULL, NULL, DIGCF_DEVICEINTERFACE | DIGCF_PRESENT); + + for (idx = 0; SetupDiEnumDeviceInterfaces(set, NULL, &GUID_DEVINTERFACE_KEYBOARD, idx, &iface); ++idx) + { + static const RID_DEVICE_INFO_KEYBOARD keyboard_info = {0, 0, 1, 12, 3, 101}; + + if (!(device = add_device(set, &iface))) + continue; + + device->info.dwType = RIM_TYPEKEYBOARD; + device->info.u.keyboard = keyboard_info; + } + + SetupDiDestroyDeviceInfoList(set); + LeaveCriticalSection(&rawinput_devices_cs); }