[NTVDM]
[reactos.git] / reactos / subsystems / ntvdm / bios / bios32 / moubios32.h
1 /*
2 * COPYRIGHT: GPL - See COPYING in the top level directory
3 * PROJECT: ReactOS Virtual DOS Machine
4 * FILE: moubios32.h
5 * PURPOSE: VDM Mouse 32-bit BIOS
6 * PROGRAMMERS: Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
7 */
8
9 #ifndef _MOUBIOS32_H_
10 #define _MOUBIOS32_H_
11
12 /* INCLUDES *******************************************************************/
13
14 #include "ntvdm.h"
15
16 /* DEFINES ********************************************************************/
17
18 #define BIOS_MOUSE_INTERRUPT 0x33
19
20 enum
21 {
22 MOUSE_BUTTON_LEFT,
23 MOUSE_BUTTON_RIGHT,
24 MOUSE_BUTTON_MIDDLE,
25 NUM_MOUSE_BUTTONS
26 };
27
28 typedef struct _MOUSE_DRIVER_STATE
29 {
30 SHORT ShowCount;
31 COORD Position;
32 WORD Character;
33 WORD ButtonState;
34 WORD PressCount[NUM_MOUSE_BUTTONS];
35 COORD LastPress[NUM_MOUSE_BUTTONS];
36 WORD ReleaseCount[NUM_MOUSE_BUTTONS];
37 COORD LastRelease[NUM_MOUSE_BUTTONS];
38
39 struct
40 {
41 WORD ScreenMask;
42 WORD CursorMask;
43 } TextCursor;
44
45 struct
46 {
47 COORD HotSpot;
48 WORD ScreenMask[16];
49 WORD CursorMask[16];
50 } GraphicsCursor;
51 } MOUSE_DRIVER_STATE, *PMOUSE_DRIVER_STATE;
52
53 /* FUNCTIONS ******************************************************************/
54
55 VOID MouseBiosUpdatePosition(PCOORD NewPosition);
56 VOID MouseBiosUpdateButtons(WORD ButtonStatus);
57 BOOLEAN MouseBios32Initialize(VOID);
58 VOID MouseBios32Cleanup(VOID);
59
60 #endif // _MOUBIOS32_H_
61
62 /* EOF */