2005-06-29 21:20:34 +00:00
|
|
|
// Raw input includes
|
|
|
|
|
2005-08-03 23:14:59 +00:00
|
|
|
#ifndef WINUSERAPI
|
|
|
|
#define WINUSERAPI
|
|
|
|
#endif
|
|
|
|
|
2005-06-29 21:20:34 +00:00
|
|
|
#ifndef RIM_TYPEMOUSE
|
|
|
|
#define WM_INPUT 255
|
|
|
|
|
|
|
|
#undef QS_INPUT
|
|
|
|
#define QS_RAWINPUT 1024
|
|
|
|
#define QS_INPUT 1031
|
|
|
|
|
|
|
|
#define RIM_INPUT 0x00000000
|
|
|
|
#define RIM_INPUTSINK 0x00000001
|
|
|
|
#define RIM_TYPEMOUSE 0x00000000
|
|
|
|
#define RIM_TYPEKEYBOARD 0x00000001
|
|
|
|
#define RIM_TYPEHID 0x00000002
|
|
|
|
#define MOUSE_MOVE_RELATIVE 0x00000000
|
|
|
|
#define MOUSE_MOVE_ABSOLUTE 0x00000001
|
|
|
|
#define MOUSE_VIRTUAL_DESKTOP 0x00000002
|
|
|
|
#define MOUSE_ATTRIBUTES_CHANGED 0x00000004
|
|
|
|
#define RI_MOUSE_LEFT_BUTTON_DOWN 0x0001
|
|
|
|
#define RI_MOUSE_LEFT_BUTTON_UP 0x0002
|
|
|
|
#define RI_MOUSE_RIGHT_BUTTON_DOWN 0x0004
|
|
|
|
#define RI_MOUSE_RIGHT_BUTTON_UP 0x0008
|
|
|
|
#define RI_MOUSE_MIDDLE_BUTTON_DOWN 0x0010
|
|
|
|
#define RI_MOUSE_MIDDLE_BUTTON_UP 0x0020
|
|
|
|
#define RI_MOUSE_BUTTON_1_DOWN RI_MOUSE_LEFT_BUTTON_DOWN
|
|
|
|
#define RI_MOUSE_BUTTON_1_UP RI_MOUSE_LEFT_BUTTON_UP
|
|
|
|
#define RI_MOUSE_BUTTON_2_DOWN RI_MOUSE_RIGHT_BUTTON_DOWN
|
|
|
|
#define RI_MOUSE_BUTTON_2_UP RI_MOUSE_RIGHT_BUTTON_UP
|
|
|
|
#define RI_MOUSE_BUTTON_3_DOWN RI_MOUSE_MIDDLE_BUTTON_DOWN
|
|
|
|
#define RI_MOUSE_BUTTON_3_UP RI_MOUSE_MIDDLE_BUTTON_UP
|
|
|
|
#define RI_MOUSE_BUTTON_4_DOWN 0x0040
|
|
|
|
#define RI_MOUSE_BUTTON_4_UP 0x0080
|
|
|
|
#define RI_MOUSE_BUTTON_5_DOWN 0x0100
|
|
|
|
#define RI_MOUSE_BUTTON_5_UP 0x0200
|
|
|
|
#define RI_MOUSE_WHEEL 0x0400
|
|
|
|
#define KEYBOARD_OVERRUN_MAKE_CODE 0x00ff
|
|
|
|
#define RI_KEY_MAKE 0x0000
|
|
|
|
#define RI_KEY_BREAK 0x0001
|
|
|
|
#define RI_KEY_E0 0x0002
|
|
|
|
#define RI_KEY_E1 0x0004
|
|
|
|
#define RI_KEY_TERMSRV_SET_LED 0x0008
|
|
|
|
#define RI_KEY_TERMSRV_SHADOW 0x0010
|
|
|
|
#define RID_INPUT 0x10000003
|
|
|
|
#define RID_HEADER 0x10000005
|
|
|
|
#define RIDI_PREPARSEDDATA 0x20000005
|
|
|
|
#define RIDI_DEVICENAME 0x20000007
|
|
|
|
#define RIDI_DEVICEINFO 0x2000000b
|
|
|
|
#define RIDEV_REMOVE 0x00000001
|
|
|
|
#define RIDEV_EXCLUDE 0x00000010
|
|
|
|
#define RIDEV_PAGEONLY 0x00000020
|
|
|
|
#define RIDEV_NOLEGACY 0x00000030
|
|
|
|
#define RIDEV_INPUTSINK 0x00000100
|
|
|
|
#define RIDEV_CAPTUREMOUSE 0x00000200
|
|
|
|
#define RIDEV_NOHOTKEYS 0x00000200
|
|
|
|
#define RIDEV_APPKEYS 0x00000400
|
|
|
|
|
|
|
|
DECLARE_HANDLE(HRAWINPUT);
|
|
|
|
typedef struct tagRAWINPUTHEADER {
|
|
|
|
DWORD dwType;
|
|
|
|
DWORD dwSize;
|
|
|
|
HANDLE hDevice;
|
|
|
|
WPARAM wParam;
|
|
|
|
} RAWINPUTHEADER,*PRAWINPUTHEADER;
|
|
|
|
typedef struct tagRAWMOUSE {
|
|
|
|
USHORT usFlags;
|
|
|
|
union {
|
|
|
|
ULONG ulButtons;
|
|
|
|
struct {
|
|
|
|
USHORT usButtonFlags;
|
|
|
|
USHORT usButtonData;
|
|
|
|
};
|
2006-02-17 02:51:59 +00:00
|
|
|
} buttondata;
|
2005-06-29 21:20:34 +00:00
|
|
|
ULONG ulRawButtons;
|
|
|
|
LONG lLastX;
|
|
|
|
LONG lLastY;
|
|
|
|
ULONG ulExtraInformation;
|
|
|
|
} RAWMOUSE,*PRAWMOUSE,*LPRAWMOUSE;
|
|
|
|
typedef struct tagRAWKEYBOARD {
|
|
|
|
USHORT MakeCode;
|
|
|
|
USHORT Flags;
|
|
|
|
USHORT Reserved;
|
|
|
|
USHORT VKey;
|
|
|
|
UINT Message;
|
|
|
|
ULONG ExtraInformation;
|
|
|
|
} RAWKEYBOARD,*PRAWKEYBOARD,*LPRAWKEYBOARD;
|
|
|
|
typedef struct tagRAWHID {
|
|
|
|
DWORD dwSizeHid;
|
|
|
|
DWORD dwCount;
|
|
|
|
BYTE bRawData;
|
|
|
|
} RAWHID,*PRAWHID,*LPRAWHID;
|
|
|
|
typedef struct tagRAWINPUT {
|
|
|
|
RAWINPUTHEADER header;
|
|
|
|
union {
|
|
|
|
RAWMOUSE mouse;
|
|
|
|
RAWKEYBOARD keyboard;
|
|
|
|
RAWHID hid;
|
|
|
|
} data;
|
|
|
|
} RAWINPUT,*PRAWINPUT,*LPRAWINPUT;
|
|
|
|
typedef struct tagRAWINPUTDEVICE {
|
|
|
|
USHORT usUsagePage;
|
|
|
|
USHORT usUsage;
|
|
|
|
DWORD dwFlags;
|
|
|
|
HWND hwndTarget;
|
|
|
|
} RAWINPUTDEVICE,*PRAWINPUTDEVICE,*LPRAWINPUTDEVICE;
|
|
|
|
typedef const RAWINPUTDEVICE *PCRAWINPUTDEVICE;
|
|
|
|
typedef struct tagRAWINPUTDEVICELIST {
|
|
|
|
HANDLE hDevice;
|
|
|
|
DWORD dwType;
|
|
|
|
} RAWINPUTDEVICELIST,*PRAWINPUTDEVICELIST;
|
|
|
|
|
|
|
|
WINUSERAPI LRESULT WINAPI DefRawInputProc(PRAWINPUT*,INT,UINT);
|
|
|
|
WINUSERAPI UINT WINAPI GetRawInputBuffer(PRAWINPUT,PUINT,UINT);
|
|
|
|
WINUSERAPI UINT WINAPI GetRawInputData(HRAWINPUT,UINT,LPVOID,PUINT,UINT);
|
|
|
|
WINUSERAPI UINT WINAPI GetRawInputDeviceInfoA(HANDLE,UINT,LPVOID,PUINT);
|
|
|
|
WINUSERAPI UINT WINAPI GetRawInputDeviceInfoW(HANDLE,UINT,LPVOID,PUINT);
|
|
|
|
WINUSERAPI UINT WINAPI GetRawInputDeviceList(PRAWINPUTDEVICELIST,PUINT,UINT);
|
|
|
|
WINUSERAPI UINT WINAPI GetRegisteredRawInputDevices(PRAWINPUTDEVICE,PUINT,UINT);
|
|
|
|
WINUSERAPI BOOL WINAPI RegisterRawInputDevices(PCRAWINPUTDEVICE,UINT,UINT);
|
2005-08-03 23:14:59 +00:00
|
|
|
#endif
|