Annotation of ntddk/src/input/inc/ntddmou.h, revision 1.1.1.1

1.1       root        1: /*++ BUILD Version: 0001    // Increment this if a change has global effects
                      2: 
                      3: Copyright (c) 1990-1993  Microsoft Corporation
                      4: 
                      5: Module Name:
                      6: 
                      7:     ntddmou.h
                      8: 
                      9: Abstract:
                     10: 
                     11:     This is the include file that defines all constants and types for
                     12:     accessing the mouse device.
                     13: 
                     14: Author:
                     15: 
                     16:     Lee A. Smith (lees) 02-Aug-1991.
                     17: 
                     18: Revision History:
                     19: 
                     20: --*/
                     21: 
                     22: #ifndef _NTDDMOU_
                     23: #define _NTDDMOU_
                     24: 
                     25: //
                     26: // Device Name - this string is the name of the device.  It is the name
                     27: // that should be passed to NtOpenFile when accessing the device.
                     28: //
                     29: // Note:  For devices that support multiple units, it should be suffixed
                     30: //        with the Ascii representation of the unit number.
                     31: //
                     32: 
                     33: #define DD_MOUSE_DEVICE_NAME    "\\Device\\PointerClass"
                     34: #define DD_MOUSE_DEVICE_NAME_U L"\\Device\\PointerClass"
                     35: 
                     36: //
                     37: // NtDeviceIoControlFile IoControlCode values for this device.
                     38: //
                     39: // Warning:  Remember that the low two bits of the code specify how the
                     40: //           buffers are passed to the driver!
                     41: //
                     42: 
                     43: #define IOCTL_MOUSE_QUERY_ATTRIBUTES CTL_CODE(FILE_DEVICE_MOUSE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
                     44: #define IOCTL_MOUSE_INSERT_DATA      CTL_CODE(FILE_DEVICE_MOUSE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
                     45: 
                     46: //
                     47: // NtReadFile Output Buffer record structures for this device.
                     48: //
                     49: 
                     50: typedef struct _MOUSE_INPUT_DATA {
                     51: 
                     52:     //
                     53:     // Unit number.  E.g., for \Device\PointerPort0  the unit is '0', 
                     54:     // for \Device\PointerPort1 the unit is '1', and so on.
                     55:     //
                     56: 
                     57:     USHORT UnitId;
                     58: 
                     59:     //
                     60:     // Indicator flags.
                     61:     //
                     62: 
                     63:     USHORT Flags;
                     64: 
                     65:     //
                     66:     // The transition state of the mouse buttons.
                     67:     //
                     68: 
                     69:     ULONG Buttons;
                     70: 
                     71:     //
                     72:     // The raw state of the mouse buttons.
                     73:     //
                     74: 
                     75:     ULONG RawButtons;
                     76: 
                     77:     //
                     78:     // The signed relative or absolute motion in the X direction.
                     79:     //
                     80: 
                     81:     LONG LastX;
                     82: 
                     83:     //
                     84:     // The signed relative or absolute motion in the Y direction.
                     85:     //
                     86: 
                     87:     LONG LastY;
                     88: 
                     89:     //
                     90:     // Device-specific additional information for the event.
                     91:     //
                     92: 
                     93:     ULONG ExtraInformation;
                     94: 
                     95: } MOUSE_INPUT_DATA, *PMOUSE_INPUT_DATA;
                     96: 
                     97: //
                     98: // Define the mouse button state indicators.
                     99: //
                    100: 
                    101: #define MOUSE_LEFT_BUTTON_DOWN   0x0001  // Left Button changed to down.
                    102: #define MOUSE_LEFT_BUTTON_UP     0x0002  // Left Button changed to up.
                    103: #define MOUSE_RIGHT_BUTTON_DOWN  0x0004  // Right Button changed to down.
                    104: #define MOUSE_RIGHT_BUTTON_UP    0x0008  // Right Button changed to up.
                    105: #define MOUSE_MIDDLE_BUTTON_DOWN 0x0010  // Middle Button changed to down.
                    106: #define MOUSE_MIDDLE_BUTTON_UP   0x0020  // Middle Button changed to up.
                    107: 
                    108: #define MOUSE_BUTTON_1_DOWN     MOUSE_LEFT_BUTTON_DOWN
                    109: #define MOUSE_BUTTON_1_UP       MOUSE_LEFT_BUTTON_UP
                    110: #define MOUSE_BUTTON_2_DOWN     MOUSE_RIGHT_BUTTON_DOWN
                    111: #define MOUSE_BUTTON_2_UP       MOUSE_RIGHT_BUTTON_UP
                    112: #define MOUSE_BUTTON_3_DOWN     MOUSE_MIDDLE_BUTTON_DOWN
                    113: #define MOUSE_BUTTON_3_UP       MOUSE_MIDDLE_BUTTON_UP
                    114: 
                    115: #define MOUSE_BUTTON_4_DOWN     0x0040
                    116: #define MOUSE_BUTTON_4_UP       0x0080
                    117: #define MOUSE_BUTTON_5_DOWN     0x0100
                    118: #define MOUSE_BUTTON_5_UP       0x0200
                    119: 
                    120: //
                    121: // Define the mouse indicator flags.
                    122: //
                    123: 
                    124: #define MOUSE_MOVE_RELATIVE        0
                    125: #define MOUSE_MOVE_ABSOLUTE        1
                    126: 
                    127: //
                    128: // NtDeviceIoControlFile OutputBuffer record structures for
                    129: // IOCTL_MOUSE_QUERY_ATTRIBUTES.
                    130: //
                    131: 
                    132: typedef struct _MOUSE_ATTRIBUTES {
                    133: 
                    134:     //
                    135:     // Mouse ID value.  Used to distinguish between mouse types.
                    136:     //
                    137: 
                    138:     USHORT MouseIdentifier;
                    139: 
                    140:     //
                    141:     // Number of buttons located on the mouse.
                    142:     //
                    143: 
                    144:     USHORT NumberOfButtons;
                    145: 
                    146:     //
                    147:     // Specifies the rate at which the hardware reports mouse input
                    148:     // (reports per second).  This may not be applicable for every mouse device.
                    149:     //
                    150: 
                    151:     USHORT SampleRate;
                    152: 
                    153:     //
                    154:     // Length of the readahead buffer, in bytes.
                    155:     //
                    156: 
                    157:     ULONG  InputDataQueueLength;
                    158: 
                    159: } MOUSE_ATTRIBUTES, *PMOUSE_ATTRIBUTES;
                    160: 
                    161: //
                    162: // Define the mouse identifier types.
                    163: //
                    164: 
                    165: #define MOUSE_INPORT_HARDWARE     0x0001
                    166: #define MOUSE_I8042_HARDWARE      0x0002
                    167: #define MOUSE_SERIAL_HARDWARE     0x0004
                    168: #define BALLPOINT_I8042_HARDWARE  0x0008
                    169: #define BALLPOINT_SERIAL_HARDWARE 0x0010
                    170: 
                    171: //
                    172: // Generic NtDeviceIoControlFile Input Buffer record structure for
                    173: // various mouse IOCTLs.
                    174: //
                    175: 
                    176: typedef struct _MOUSE_UNIT_ID_PARAMETER {
                    177: 
                    178:     //
                    179:     // Unit identifier.  Specifies the device unit for which this 
                    180:     // request is intended.
                    181:     //
                    182: 
                    183:     USHORT UnitId;
                    184: 
                    185: } MOUSE_UNIT_ID_PARAMETER, *PMOUSE_UNIT_ID_PARAMETER;
                    186: 
                    187: //
                    188: // Define the base values for the mouse error log packet's
                    189: // UniqueErrorValue field.
                    190: //
                    191: 
                    192: #define MOUSE_ERROR_VALUE_BASE        20000
                    193: 
                    194: #endif // _NTDDMOU_

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.