update for HEAD-2003050101
[reactos.git] / include / ddk / ntddmou.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 #define MOUSE_BUTTON_1_DOWN  0x0001
12 #define MOUSE_BUTTON_1_UP    0x0002
13 #define MOUSE_BUTTON_2_DOWN  0x0004
14 #define MOUSE_BUTTON_2_UP    0x0008
15 #define MOUSE_BUTTON_3_DOWN  0x0010
16 #define MOUSE_BUTTON_3_UP    0x0020
17 #define MOUSE_BUTTON_4_DOWN  0x0040
18 #define MOUSE_BUTTON_4_UP    0x0080
19 #define MOUSE_BUTTON_5_DOWN  0x0100
20 #define MOUSE_BUTTON_5_UP    0x0200
21 #define MOUSE_WHEEL          0x0400
22
23 #define MOUSE_LEFT_BUTTON_DOWN    MOUSE_BUTTON_1_DOWN
24 #define MOUSE_LEFT_BUTTON_UP      MOUSE_BUTTON_1_UP
25 #define MOUSE_RIGHT_BUTTON_DOWN   MOUSE_BUTTON_2_DOWN
26 #define MOUSE_RIGHT_BUTTON_UP     MOUSE_BUTTON_2_UP
27 #define MOUSE_MIDDLE_BUTTON_DOWN  MOUSE_BUTTON_3_DOWN
28 #define MOUSE_MIDDLE_BUTTON_UP    MOUSE_BUTTON_3_UP
29
30 /* Mouse input data structure */
31 typedef struct _MOUSE_INPUT_DATA {
32         USHORT UnitId;
33         USHORT Flags;
34         union {
35                 ULONG Buttons;
36                 struct  {
37                         USHORT  ButtonFlags;
38                         USHORT  ButtonData;
39                 };
40         };
41         ULONG RawButtons;
42         LONG LastX;
43         LONG LastY;
44         ULONG ExtraInformation;
45 } MOUSE_INPUT_DATA, *PMOUSE_INPUT_DATA;
46
47 typedef struct _CLASS_INFORMATION {
48    PDEVICE_OBJECT DeviceObject;
49    PVOID CallBack;
50 } CLASS_INFORMATION, *PCLASS_INFORMATION;
51
52 typedef struct _GDI_INFORMATION {
53    PVOID CallBack;
54 } GDI_INFORMATION, *PGDI_INFORMATION;
55
56 typedef
57 VOID
58 (*PSERVICE_CALLBACK_ROUTINE) (
59     IN PVOID NormalContext,
60     IN PVOID SystemArgument1,
61     IN PVOID SystemArgument2,
62     IN OUT PVOID SystemArgument3
63     );
64
65 typedef
66 VOID
67 (*PGDI_SERVICE_CALLBACK_ROUTINE) (
68     IN PVOID SystemArgument1,
69     IN ULONG SystemArgument2
70     );
71