1 /* Mouse definitions common to both mouse class and port drivers */
3 #define DD_MOUSE_DEVICE_NAME "\\Device\\PointerClass"
4 #define DD_MOUSE_DEVICE_NAME_U L"\\Device\\PointerClass"
6 #define IO_MOUSE_INCREMENT 6
7 #define MOUSE_BUFFER_SIZE 32
9 #define IOCTL_INTERNAL_MOUSE_CONNECT CTL_CODE(FILE_DEVICE_MOUSE, 0x0080, METHOD_NEITHER, FILE_ANY_ACCESS)
10 #define IOCTL_INTERNAL_MOUSE_DISCONNECT CTL_CODE(FILE_DEVICE_MOUSE, 0x0100, METHOD_NEITHER, FILE_ANY_ACCESS)
11 #define IOCTL_INTERNAL_MOUSE_ENABLE CTL_CODE(FILE_DEVICE_MOUSE, 0x0200, METHOD_NEITHER, FILE_ANY_ACCESS)
12 #define IOCTL_INTERNAL_MOUSE_DISABLE CTL_CODE(FILE_DEVICE_MOUSE, 0x0400, METHOD_NEITHER, FILE_ANY_ACCESS)
14 #define IOCTL_MOUSE_QUERY_ATTRIBUTES CTL_CODE(FILE_DEVICE_MOUSE, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS)
16 #define MOUSE_BUTTON_1_DOWN 0x0001
17 #define MOUSE_BUTTON_1_UP 0x0002
18 #define MOUSE_BUTTON_2_DOWN 0x0004
19 #define MOUSE_BUTTON_2_UP 0x0008
20 #define MOUSE_BUTTON_3_DOWN 0x0010
21 #define MOUSE_BUTTON_3_UP 0x0020
22 #define MOUSE_BUTTON_4_DOWN 0x0040
23 #define MOUSE_BUTTON_4_UP 0x0080
24 #define MOUSE_BUTTON_5_DOWN 0x0100
25 #define MOUSE_BUTTON_5_UP 0x0200
26 #define MOUSE_WHEEL 0x0400
28 #define MOUSE_LEFT_BUTTON_DOWN MOUSE_BUTTON_1_DOWN
29 #define MOUSE_LEFT_BUTTON_UP MOUSE_BUTTON_1_UP
30 #define MOUSE_RIGHT_BUTTON_DOWN MOUSE_BUTTON_2_DOWN
31 #define MOUSE_RIGHT_BUTTON_UP MOUSE_BUTTON_2_UP
32 #define MOUSE_MIDDLE_BUTTON_DOWN MOUSE_BUTTON_3_DOWN
33 #define MOUSE_MIDDLE_BUTTON_UP MOUSE_BUTTON_3_UP
35 #define MOUSE_SERIAL_HARDWARE 0x0004
36 #define WHEELMOUSE_SERIAL_HARDWARE 0x0040
38 typedef struct _MOUSE_ATTRIBUTES {
39 USHORT MouseIdentifier;
40 USHORT NumberOfButtons;
42 ULONG InputDataQueueLength;
43 } MOUSE_ATTRIBUTES, *PMOUSE_ATTRIBUTES;
45 /* Mouse input data structure */
46 typedef struct _MOUSE_INPUT_DATA {
59 ULONG ExtraInformation;
60 } MOUSE_INPUT_DATA, *PMOUSE_INPUT_DATA;
62 typedef struct _CLASS_INFORMATION {
63 PDEVICE_OBJECT DeviceObject;
65 } CLASS_INFORMATION, *PCLASS_INFORMATION;
67 typedef struct _GDI_INFORMATION {
69 } GDI_INFORMATION, *PGDI_INFORMATION;
73 (*PSERVICE_CALLBACK_ROUTINE) (
74 IN PVOID NormalContext,
75 IN PVOID SystemArgument1,
76 IN PVOID SystemArgument2,
77 IN OUT PVOID SystemArgument3
82 (*PGDI_SERVICE_CALLBACK_ROUTINE) (
83 IN PVOID SystemArgument1,
84 IN ULONG SystemArgument2