diff --git a/dlls/user32/input.c b/dlls/user32/input.c index 8048412fae2..3e16dc3bf63 100644 --- a/dlls/user32/input.c +++ b/dlls/user32/input.c @@ -340,6 +340,98 @@ BOOL WINAPI GetLastInputInfo(PLASTINPUTINFO plii) } +/****************************************************************** +* GetRawInputDeviceList (USER32.@) +*/ +UINT WINAPI GetRawInputDeviceList(PRAWINPUTDEVICELIST pRawInputDeviceList, PUINT puiNumDevices, UINT cbSize) +{ + FIXME("(pRawInputDeviceList=%p, puiNumDevices=%p, cbSize=%d) stub!\n", pRawInputDeviceList, puiNumDevices, cbSize); + + if(pRawInputDeviceList) + memset(pRawInputDeviceList, 0, sizeof *pRawInputDeviceList); + *puiNumDevices = 0; + return 0; +} + + +/****************************************************************** +* RegisterRawInputDevices (USER32.@) +*/ +BOOL WINAPI RegisterRawInputDevices(PRAWINPUTDEVICE pRawInputDevices, UINT uiNumDevices, UINT cbSize) +{ + FIXME("(pRawInputDevices=%p, uiNumDevices=%d, cbSize=%d) stub!\n", pRawInputDevices, uiNumDevices, cbSize); + + return TRUE; +} + + +/****************************************************************** +* GetRawInputData (USER32.@) +*/ +INT WINAPI GetRawInputData(HRAWINPUT hRawInput, UINT uiCommand, LPVOID pData, PUINT pcbSize, UINT cbSizeHeader) +{ + FIXME("(hRawInput=%p, uiCommand=%d, pData=%p, pcbSize=%p, cbSizeHeader=%d) stub!\n", + hRawInput, uiCommand, pData, pcbSize, cbSizeHeader); + + return 0; +} + + +/****************************************************************** +* GetRawInputBuffer (USER32.@) +*/ +UINT WINAPI GetRawInputBuffer(PRAWINPUT pData, PUINT pcbSize, UINT cbSizeHeader) +{ + FIXME("(pData=%p, pcbSize=%p, cbSizeHeader=%d) stub!\n", pData, pcbSize, cbSizeHeader); + + return 0; +} + + +/****************************************************************** +* GetRawInputDeviceInfoA (USER32.@) +*/ +UINT WINAPI GetRawInputDeviceInfoA(HANDLE hDevice, UINT uiCommand, LPVOID pData, PUINT pcbSize) +{ + FIXME("(hDevice=%p, uiCommand=%d, pData=%p, pcbSize=%p) stub!\n", hDevice, uiCommand, pData, pcbSize); + + return 0; +} + + +/****************************************************************** +* GetRawInputDeviceInfoW (USER32.@) +*/ +UINT WINAPI GetRawInputDeviceInfoW(HANDLE hDevice, UINT uiCommand, LPVOID pData, PUINT pcbSize) +{ + FIXME("(hDevice=%p, uiCommand=%d, pData=%p, pcbSize=%p) stub!\n", hDevice, uiCommand, pData, pcbSize); + + return 0; +} + + +/****************************************************************** +* GetRegisteredRawInputDevices (USER32.@) +*/ +UINT WINAPI GetRegisteredRawInputDevices(PRAWINPUTDEVICE pRawInputDevices, PUINT puiNumDevices, UINT cbSize) +{ + FIXME("(pRawInputDevices=%p, puiNumDevices=%p, cbSize=%d) stub!\n", pRawInputDevices, puiNumDevices, cbSize); + + return 0; +} + + +/****************************************************************** +* DefRawInputProc (USER32.@) +*/ +LRESULT WINAPI DefRawInputProc(PRAWINPUT *paRawInput, INT nInput, UINT cbSizeHeader) +{ + FIXME("(paRawInput=%p, nInput=%d, cbSizeHeader=%d) stub!\n", *paRawInput, nInput, cbSizeHeader); + + return 0; +} + + /********************************************************************** * AttachThreadInput (USER32.@) * diff --git a/dlls/user32/user32.spec b/dlls/user32/user32.spec index d62605346bd..417b93ef354 100644 --- a/dlls/user32/user32.spec +++ b/dlls/user32/user32.spec @@ -143,7 +143,7 @@ @ stdcall DefFrameProcW(long long long long long) @ stdcall DefMDIChildProcA(long long long long) @ stdcall DefMDIChildProcW(long long long long) -# @ stub DefRawInputProc +@ stdcall DefRawInputProc(ptr long long) @ stdcall DefWindowProcA(long long long long) @ stdcall DefWindowProcW(long long long long) @ stdcall DeferWindowPos(long long long long long long long long) @@ -341,13 +341,13 @@ @ stdcall GetPropA(long str) @ stdcall GetPropW(long wstr) @ stdcall GetQueueStatus(long) -# @ stub GetRawInputBuffer -# @ stub GetRawInputData -# @ stub GetRawInputDeviceInfoA -# @ stub GetRawInputDeviceInfoW -# @ stub GetRawInputDeviceList +@ stdcall GetRawInputBuffer(ptr ptr long) +@ stdcall GetRawInputData(ptr long ptr ptr long) +@ stdcall GetRawInputDeviceInfoA(ptr long ptr ptr) +@ stdcall GetRawInputDeviceInfoW(ptr long ptr ptr) +@ stdcall GetRawInputDeviceList(ptr ptr long) # @ stub GetReasonTitleFromReasonCode -# @ stub GetRegisteredRawInputDevices +@ stdcall GetRegisteredRawInputDevices(ptr ptr long) @ stdcall GetScrollBarInfo(long long ptr) @ stdcall GetScrollInfo(long long ptr) @ stdcall GetScrollPos(long long) @@ -562,7 +562,7 @@ @ stdcall RegisterLogonProcess(long long) # @ stub RegisterMessagePumpHook @ stub RegisterNetworkCapabilities -# @ stub RegisterRawInputDevices +@ stdcall RegisterRawInputDevices(ptr long long) @ stub RegisterServicesProcess @ stdcall RegisterShellHookWindow (long) @ stdcall RegisterSystemThread(long long) diff --git a/include/winuser.h b/include/winuser.h index b667aa5fca9..ef179940ada 100644 --- a/include/winuser.h +++ b/include/winuser.h @@ -443,6 +443,59 @@ typedef struct tagINPUT } DUMMYUNIONNAME; } INPUT, *PINPUT, *LPINPUT; +typedef HANDLE HRAWINPUT; + +typedef struct tagRAWINPUTDEVICELIST +{ + HANDLE hDevice; + DWORD dwType; +} RAWINPUTDEVICELIST, *PRAWINPUTDEVICELIST; + +typedef struct tagRAWHID { + DWORD dwSizeHid; + DWORD dwCount; + BYTE bRawData; +} RAWHID, *LPRAWHID; + +typedef struct tagRAWKEYBOARD { + USHORT MakeCode; + USHORT Flags; + USHORT Reserved; + USHORT VKey; + UINT Message; + ULONG ExtraInformation; +} RAWKEYBOARD, *PRAWKEYBOARD, *LPRAWKEYBOARD; + +typedef struct tagRAWMOUSE { + USHORT usFlags; + union { + ULONG ulButtons; + struct { + USHORT usButtonFlags; + USHORT usButtonData; + } DUMMYSTRUCTNAME; + } DUMMYUNIONNAME; + ULONG ulRawButtons; + LONG lLastX; + LONG lLastY; + ULONG ulExtraInformation; +} RAWMOUSE, *PRAWMOUSE, *LPRAWMOUSE; + +typedef struct tagRAWINPUTHEADER { + DWORD dwType; + DWORD dwSize; + HANDLE hDevice; + WPARAM wParam; +} RAWINPUTHEADER, *PRAWINPUTHEADER; + +typedef struct tagRAWINPUT { + RAWINPUTHEADER header; + union { + RAWMOUSE mouse; + RAWKEYBOARD keyboard; + RAWHID hid; + } data; +} RAWINPUT, *PRAWINPUT, *LPRAWINPUT; typedef struct tagRAWINPUTDEVICE { USHORT usUsagePage; @@ -4457,6 +4510,7 @@ LRESULT WINAPI DefFrameProcW(HWND,HWND,UINT,WPARAM,LPARAM); LRESULT WINAPI DefMDIChildProcA(HWND,UINT,WPARAM,LPARAM); LRESULT WINAPI DefMDIChildProcW(HWND,UINT,WPARAM,LPARAM); #define DefMDIChildProc WINELIB_NAME_AW(DefMDIChildProc) +LRESULT WINAPI DefRawInputProc(PRAWINPUT*,INT,UINT); LRESULT WINAPI DefWindowProcA(HWND,UINT,WPARAM,LPARAM); LRESULT WINAPI DefWindowProcW(HWND,UINT,WPARAM,LPARAM); #define DefWindowProc WINELIB_NAME_AW(DefWindowProc) @@ -4613,8 +4667,14 @@ BOOL WINAPI GetKeyboardLayoutNameA(LPSTR); BOOL WINAPI GetKeyboardLayoutNameW(LPWSTR); #define GetKeyboardLayoutName WINELIB_NAME_AW(GetKeyboardLayoutName) SHORT WINAPI GetKeyState(INT); -HWND WINAPI GetLastActivePopup(HWND); -BOOL WINAPI GetLastInputInfo(PLASTINPUTINFO); +HWND WINAPI GetLastActivePopup(HWND); +BOOL WINAPI GetLastInputInfo(PLASTINPUTINFO); +UINT WINAPI GetRawInputBuffer(PRAWINPUT,PUINT,UINT); +INT WINAPI GetRawInputData(HRAWINPUT,UINT,LPVOID,PUINT,UINT); +UINT WINAPI GetRawInputDeviceInfoA(HANDLE,UINT,LPVOID,PUINT); +UINT WINAPI GetRawInputDeviceInfoW(HANDLE,UINT,LPVOID,PUINT); +#define GetRawInputDeviceInfo WINELIB_NAME_AW(GetRawInputDeviceInfo) +UINT WINAPI GetRawInputDeviceList(PRAWINPUTDEVICELIST,PUINT,UINT); BOOL WINAPI GetLayeredWindowAttributes(HWND,COLORREF*,BYTE*,DWORD*); HMENU WINAPI GetMenu(HWND); INT WINAPI GetMenuItemCount(HMENU); @@ -4831,9 +4891,10 @@ ATOM WINAPI RegisterClassW(const WNDCLASSW *); ATOM WINAPI RegisterClassExA(const WNDCLASSEXA *); ATOM WINAPI RegisterClassExW(const WNDCLASSEXW *); #define RegisterClassEx WINELIB_NAME_AW(RegisterClassEx) -UINT WINAPI RegisterClipboardFormatA(LPCSTR); -UINT WINAPI RegisterClipboardFormatW(LPCWSTR); +UINT WINAPI RegisterClipboardFormatA(LPCSTR); +UINT WINAPI RegisterClipboardFormatW(LPCWSTR); #define RegisterClipboardFormat WINELIB_NAME_AW(RegisterClipboardFormat) +BOOL WINAPI RegisterRawInputDevices(PRAWINPUTDEVICE,UINT,UINT); UINT WINAPI RegisterWindowMessageA(LPCSTR); UINT WINAPI RegisterWindowMessageW(LPCWSTR); #define RegisterWindowMessage WINELIB_NAME_AW(RegisterWindowMessage)