blob: 54b262f3a5c8c53280e7b27a5c104eea802b48f7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
#ifndef MOUSEW16_H
#define MOUSEW16_H
/* Win16's mouse driver interface. */
/** Contains information about the mouse, used by Inquire(). */
typedef _Packed struct MOUSEINFO
{
/** Whether a mouse exists. */
char msExist;
/** Whether the mouse returns absolute or relative coordinates. */
char msRelative;
/** Number of buttons. */
short msNumButtons;
/** Maximum number of events per second. */
short msRate;
// Reserved:
short msXThreshold;
short msYThreshold;
short msXRes;
short msYRes;
// The following are available in Windows >= 3.1 only:
#if 0
/** Specifies the COM port used, or 0 for none. */
short msMouseCommPort;
#endif
} MOUSEINFO;
typedef MOUSEINFO __far *LPMOUSEINFO;
/** Movement occurred. */
#define SF_MOVEMENT 0x0001
/** Button 1 changed to down. */
#define SF_B1_DOWN 0x0002
/** Button 1 changed to up. */
#define SF_B1_UP 0x0004
/** Button 2 changed to down. */
#define SF_B2_DOWN 0x0008
/** Button 2 changed to up. */
#define SF_B2_UP 0x0010
/** Event coordinates are absolute instead of relative. */
#define SF_ABSOLUTE 0x8000
/** Driver should call this callback when there are new mouse events to report.
* @param Status What happened. Combination of SF_MOVEMENT, SF_ABSOLUTE, etc.
* @param deltaX either number of mickeys moved or absolute coordinate if SB_ABSOLUTE.
* @param deltaY either number of mickeys moved or absolute coordinate if SB_ABSOLUTE.
* @param ButtonCount number of buttons
* @param extra1,extra2 leave as zero
*/
typedef void (__far *LPFN_MOUSEEVENT)(unsigned short Status, short deltaX, short deltaY, short ButtonCount, short extra1, short extra2);
#pragma aux MOUSEEVENTPROC parm [ax] [bx] [cx] [dx] [di] [si]
#endif
|