[PATCH 5/5] user32: Implement GetRawInputDeviceList().
Henri Verbeet
hverbeet at codeweavers.com
Wed Oct 17 16:08:03 CDT 2012
---
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 */
--
1.7.8.6
More information about the wine-patches
mailing list