This commit was manufactured by cvs2svn to create branch 'captive'.
[reactos.git] / drivers / input / include / mouse.h
1 // Mouse definitions common to both mouse class and port drivers
2
3 #define IO_MOUSE_INCREMENT      6
4 #define MOUSE_BUFFER_SIZE       32
5
6 #define IOCTL_INTERNAL_MOUSE_CONNECT    CTL_CODE(FILE_DEVICE_MOUSE, 0x0080, METHOD_NEITHER, FILE_ANY_ACCESS)
7 #define IOCTL_INTERNAL_MOUSE_DISCONNECT CTL_CODE(FILE_DEVICE_MOUSE, 0x0100, METHOD_NEITHER, FILE_ANY_ACCESS)
8 #define IOCTL_INTERNAL_MOUSE_ENABLE     CTL_CODE(FILE_DEVICE_MOUSE, 0x0200, METHOD_NEITHER, FILE_ANY_ACCESS)
9 #define IOCTL_INTERNAL_MOUSE_DISABLE    CTL_CODE(FILE_DEVICE_MOUSE, 0x0400, METHOD_NEITHER, FILE_ANY_ACCESS)
10
11 typedef struct _MOUSE_INPUT_DATA {
12         USHORT UnitId;
13         USHORT Flags;
14         union {
15                 ULONG Buttons;
16                 struct  {
17                         USHORT  ButtonFlags;
18                         USHORT  ButtonData;
19                 };
20         };
21         ULONG RawButtons;
22         LONG LastX;
23         LONG LastY;
24         ULONG ExtraInformation;
25 } MOUSE_INPUT_DATA, *PMOUSE_INPUT_DATA;
26
27 typedef struct _CLASS_INFORMATION {
28    PDEVICE_OBJECT DeviceObject;
29    PVOID CallBack;
30 } CLASS_INFORMATION, *PCLASS_INFORMATION;
31
32 typedef struct _GDI_INFORMATION {
33    PVOID CallBack;
34 } GDI_INFORMATION, *PGDI_INFORMATION;
35
36 typedef
37 VOID
38 (*PSERVICE_CALLBACK_ROUTINE) (
39     IN PVOID NormalContext,
40     IN PVOID SystemArgument1,
41     IN PVOID SystemArgument2,
42     IN OUT PVOID SystemArgument3
43     );
44
45 typedef
46 VOID
47 (*PGDI_SERVICE_CALLBACK_ROUTINE) (
48     IN PVOID SystemArgument1,
49     IN ULONG SystemArgument2
50     );