Module: wine Branch: master Commit: 3ed797b265572751e0b45d6292f54ddb4876ffc8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=3ed797b265572751e0b45d6292...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Wed Oct 17 23:08:03 2012 +0200
user32: Implement GetRawInputDeviceList().
---
dlls/user32/input.c | 28 ++++++++++++++++++++++------ dlls/user32/message.c | 3 --- dlls/user32/user_private.h | 3 +++ 3 files changed, 25 insertions(+), 9 deletions(-)
diff --git a/dlls/user32/input.c b/dlls/user32/input.c index 3ca71a6..76c05df 100644 --- a/dlls/user32/input.c +++ b/dlls/user32/input.c @@ -478,14 +478,30 @@ BOOL WINAPI GetLastInputInfo(PLASTINPUTINFO plii) /****************************************************************** * GetRawInputDeviceList (USER32.@) */ -UINT WINAPI GetRawInputDeviceList(PRAWINPUTDEVICELIST pRawInputDeviceList, PUINT puiNumDevices, UINT cbSize) +UINT WINAPI GetRawInputDeviceList(RAWINPUTDEVICELIST *devices, UINT *device_count, UINT size) { - FIXME("(pRawInputDeviceList=%p, puiNumDevices=%p, cbSize=%d) stub!\n", pRawInputDeviceList, puiNumDevices, cbSize); + TRACE("devices %p, device_count %p, size %u.\n", devices, device_count, size);
- if(pRawInputDeviceList) - memset(pRawInputDeviceList, 0, sizeof *pRawInputDeviceList); - *puiNumDevices = 0; - return 0; + if (size != sizeof(*devices) || !device_count) return ~0U; + + if (!devices) + { + *device_count = 2; + return 0; + } + + if (*device_count < 2) + { + *device_count = 2; + return ~0U; + } + + devices[0].hDevice = WINE_MOUSE_HANDLE; + devices[0].dwType = RIM_TYPEMOUSE; + devices[1].hDevice = WINE_KEYBOARD_HANDLE; + devices[1].dwType = RIM_TYPEKEYBOARD; + + return 2; }
diff --git a/dlls/user32/message.c b/dlls/user32/message.c index fa52207..c1fe036 100644 --- a/dlls/user32/message.c +++ b/dlls/user32/message.c @@ -51,9 +51,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(msg); WINE_DECLARE_DEBUG_CHANNEL(relay); WINE_DECLARE_DEBUG_CHANNEL(key);
-#define WINE_MOUSE_HANDLE ((HANDLE)1) -#define WINE_KEYBOARD_HANDLE ((HANDLE)2) - #define WM_NCMOUSEFIRST WM_NCMOUSEMOVE #define WM_NCMOUSELAST (WM_NCMOUSEFIRST+(WM_MOUSELAST-WM_MOUSEFIRST))
diff --git a/dlls/user32/user_private.h b/dlls/user32/user_private.h index 3afc7cf..6d717fa 100644 --- a/dlls/user32/user_private.h +++ b/dlls/user32/user_private.h @@ -35,6 +35,9 @@ #define WM_SYSTIMER 0x0118 #define WM_POPUPSYSTEMMENU 0x0313
+#define WINE_MOUSE_HANDLE ((HANDLE)1) +#define WINE_KEYBOARD_HANDLE ((HANDLE)2) + struct window_surface;
/* internal messages codes */