2 * COPYRIGHT: GPL - See COPYING in the top level directory
3 * PROJECT: ReactOS Virtual DOS Machine
5 * PURPOSE: VDM 32-bit compatible MOUSE.COM driver
6 * PROGRAMMERS: Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
12 /* DEFINES ********************************************************************/
14 #define DOS_MOUSE_INTERRUPT 0x33
15 #define MOUSE_IRQ_INT 0x74
16 #define MOUSE_MAX_HORIZ 640
17 #define MOUSE_MAX_VERT 200
27 typedef struct _MOUSE_USER_HANDLER
30 * CallMask format: see table: http://www.ctyme.com/intr/rb-5968.htm#Table3171
31 * Alternatively, see table: http://www.ctyme.com/intr/rb-5981.htm#Table3174
34 ULONG Callback
; // Far pointer to the callback
35 } MOUSE_USER_HANDLER
, *PMOUSE_USER_HANDLER
;
37 typedef struct _MOUSE_DRIVER_STATE
43 WORD PressCount
[NUM_MOUSE_BUTTONS
];
44 COORD LastPress
[NUM_MOUSE_BUTTONS
];
45 WORD ReleaseCount
[NUM_MOUSE_BUTTONS
];
46 COORD LastRelease
[NUM_MOUSE_BUTTONS
];
49 WORD MinX
, MaxX
, MinY
, MaxY
;
52 * User Subroutine Handlers called on mouse events
54 MOUSE_USER_HANDLER Handler0
; // Handler compatible MS MOUSE v1.0+
55 MOUSE_USER_HANDLER Handlers
[3]; // Handlers compatible MS MOUSE v6.0+
69 } MOUSE_DRIVER_STATE
, *PMOUSE_DRIVER_STATE
;
71 /* FUNCTIONS ******************************************************************/
73 VOID
DosMouseEnable(VOID
);
74 VOID
DosMouseDisable(VOID
);
75 BOOLEAN
DosMouseInitialize(VOID
);
76 VOID
DosMouseCleanup(VOID
);