| 1 | /* $Id: console.h,v 1.1 1999-05-24 20:19:06 ktk Exp $ */ | 
|---|
| 2 |  | 
|---|
| 3 | #ifndef __CONSOLE_H__ | 
|---|
| 4 | #define __CONSOLE_H__ | 
|---|
| 5 |  | 
|---|
| 6 | #pragma pack(4) | 
|---|
| 7 |  | 
|---|
| 8 | #ifndef _OS2WIN_H | 
|---|
| 9 | typedef struct _COORD { | 
|---|
| 10 | SHORT X; | 
|---|
| 11 | SHORT Y; | 
|---|
| 12 | } COORD, *PCOORD; | 
|---|
| 13 | #endif | 
|---|
| 14 |  | 
|---|
| 15 | typedef struct _SMALL_RECT { | 
|---|
| 16 | SHORT Left; | 
|---|
| 17 | SHORT Top; | 
|---|
| 18 | SHORT Right; | 
|---|
| 19 | SHORT Bottom; | 
|---|
| 20 | } SMALL_RECT, *PSMALL_RECT; | 
|---|
| 21 |  | 
|---|
| 22 | typedef struct _KEY_EVENT_RECORD { | 
|---|
| 23 | BOOL bKeyDown; | 
|---|
| 24 | WORD wRepeatCount; | 
|---|
| 25 | WORD wVirtualKeyCode; | 
|---|
| 26 | WORD wVirtualScanCode; | 
|---|
| 27 | union { | 
|---|
| 28 | WCHAR UnicodeChar; | 
|---|
| 29 | CHAR   AsciiChar; | 
|---|
| 30 | } uChar; | 
|---|
| 31 | DWORD dwControlKeyState; | 
|---|
| 32 | } KEY_EVENT_RECORD, *PKEY_EVENT_RECORD; | 
|---|
| 33 |  | 
|---|
| 34 | // | 
|---|
| 35 | // ControlKeyState flags | 
|---|
| 36 | // | 
|---|
| 37 |  | 
|---|
| 38 | #define RIGHT_ALT_PRESSED     0x0001 // the right alt key is pressed. | 
|---|
| 39 | #define LEFT_ALT_PRESSED      0x0002 // the left alt key is pressed. | 
|---|
| 40 | #define RIGHT_CTRL_PRESSED    0x0004 // the right ctrl key is pressed. | 
|---|
| 41 | #define LEFT_CTRL_PRESSED     0x0008 // the left ctrl key is pressed. | 
|---|
| 42 | #define SHIFT_PRESSED         0x0010 // the shift key is pressed. | 
|---|
| 43 | #define NUMLOCK_ON            0x0020 // the numlock light is on. | 
|---|
| 44 | #define SCROLLLOCK_ON         0x0040 // the scrolllock light is on. | 
|---|
| 45 | #define CAPSLOCK_ON           0x0080 // the capslock light is on. | 
|---|
| 46 | #define ENHANCED_KEY          0x0100 // the key is enhanced. | 
|---|
| 47 |  | 
|---|
| 48 | typedef struct _MOUSE_EVENT_RECORD { | 
|---|
| 49 | COORD dwMousePosition; | 
|---|
| 50 | DWORD dwButtonState; | 
|---|
| 51 | DWORD dwControlKeyState; | 
|---|
| 52 | DWORD dwEventFlags; | 
|---|
| 53 | } MOUSE_EVENT_RECORD, *PMOUSE_EVENT_RECORD; | 
|---|
| 54 |  | 
|---|
| 55 | // | 
|---|
| 56 | // ButtonState flags | 
|---|
| 57 | // | 
|---|
| 58 |  | 
|---|
| 59 | #define FROM_LEFT_1ST_BUTTON_PRESSED    0x0001 | 
|---|
| 60 | #define RIGHTMOST_BUTTON_PRESSED        0x0002 | 
|---|
| 61 | #define FROM_LEFT_2ND_BUTTON_PRESSED    0x0004 | 
|---|
| 62 | #define FROM_LEFT_3RD_BUTTON_PRESSED    0x0008 | 
|---|
| 63 | #define FROM_LEFT_4TH_BUTTON_PRESSED    0x0010 | 
|---|
| 64 |  | 
|---|
| 65 | // | 
|---|
| 66 | // EventFlags | 
|---|
| 67 | // | 
|---|
| 68 |  | 
|---|
| 69 | #define MOUSE_MOVED   0x0001 | 
|---|
| 70 | #define DOUBLE_CLICK  0x0002 | 
|---|
| 71 |  | 
|---|
| 72 | typedef struct _WINDOW_BUFFER_SIZE_RECORD { | 
|---|
| 73 | COORD dwSize; | 
|---|
| 74 | } WINDOW_BUFFER_SIZE_RECORD, *PWINDOW_BUFFER_SIZE_RECORD; | 
|---|
| 75 |  | 
|---|
| 76 | typedef struct _MENU_EVENT_RECORD { | 
|---|
| 77 | UINT dwCommandId; | 
|---|
| 78 | } MENU_EVENT_RECORD, *PMENU_EVENT_RECORD; | 
|---|
| 79 |  | 
|---|
| 80 | typedef struct _FOCUS_EVENT_RECORD { | 
|---|
| 81 | BOOL bSetFocus; | 
|---|
| 82 | } FOCUS_EVENT_RECORD, *PFOCUS_EVENT_RECORD; | 
|---|
| 83 |  | 
|---|
| 84 | typedef struct _INPUT_RECORD { | 
|---|
| 85 | WORD EventType; | 
|---|
| 86 | union { | 
|---|
| 87 | KEY_EVENT_RECORD KeyEvent; | 
|---|
| 88 | MOUSE_EVENT_RECORD MouseEvent; | 
|---|
| 89 | WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent; | 
|---|
| 90 | MENU_EVENT_RECORD MenuEvent; | 
|---|
| 91 | FOCUS_EVENT_RECORD FocusEvent; | 
|---|
| 92 | } Event; | 
|---|
| 93 | } INPUT_RECORD, *PINPUT_RECORD; | 
|---|
| 94 |  | 
|---|
| 95 | // | 
|---|
| 96 | //  EventType flags: | 
|---|
| 97 | // | 
|---|
| 98 |  | 
|---|
| 99 | #define KEY_EVENT         0x0001 // Event contains key event record | 
|---|
| 100 | #define MOUSE_EVENT       0x0002 // Event contains mouse event record | 
|---|
| 101 | #define WINDOW_BUFFER_SIZE_EVENT 0x0004 // Event contains window change event record | 
|---|
| 102 | #define MENU_EVENT 0x0008 // Event contains menu event record | 
|---|
| 103 | #define FOCUS_EVENT 0x0010 // event contains focus change | 
|---|
| 104 |  | 
|---|
| 105 | typedef struct _CHAR_INFO { | 
|---|
| 106 | union { | 
|---|
| 107 | WCHAR UnicodeChar; | 
|---|
| 108 | CHAR   AsciiChar; | 
|---|
| 109 | } Char; | 
|---|
| 110 | WORD Attributes; | 
|---|
| 111 | } CHAR_INFO, *PCHAR_INFO; | 
|---|
| 112 |  | 
|---|
| 113 | // | 
|---|
| 114 | // Attributes flags: | 
|---|
| 115 | // | 
|---|
| 116 |  | 
|---|
| 117 | #define FOREGROUND_BLUE      0x0001 // text color contains blue. | 
|---|
| 118 | #define FOREGROUND_GREEN     0x0002 // text color contains green. | 
|---|
| 119 | #define FOREGROUND_RED       0x0004 // text color contains red. | 
|---|
| 120 | #define FOREGROUND_INTENSITY 0x0008 // text color is intensified. | 
|---|
| 121 | #define BACKGROUND_BLUE      0x0010 // background color contains blue. | 
|---|
| 122 | #define BACKGROUND_GREEN     0x0020 // background color contains green. | 
|---|
| 123 | #define BACKGROUND_RED       0x0040 // background color contains red. | 
|---|
| 124 | #define BACKGROUND_INTENSITY 0x0080 // background color is intensified. | 
|---|
| 125 |  | 
|---|
| 126 |  | 
|---|
| 127 | typedef struct _CONSOLE_SCREEN_BUFFER_INFO { | 
|---|
| 128 | COORD dwSize; | 
|---|
| 129 | COORD dwCursorPosition; | 
|---|
| 130 | WORD  wAttributes; | 
|---|
| 131 | SMALL_RECT srWindow; | 
|---|
| 132 | COORD dwMaximumWindowSize; | 
|---|
| 133 | } CONSOLE_SCREEN_BUFFER_INFO, *PCONSOLE_SCREEN_BUFFER_INFO; | 
|---|
| 134 |  | 
|---|
| 135 | typedef struct _CONSOLE_CURSOR_INFO { | 
|---|
| 136 | DWORD  dwSize; | 
|---|
| 137 | BOOL   bVisible; | 
|---|
| 138 | } CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO; | 
|---|
| 139 |  | 
|---|
| 140 | // | 
|---|
| 141 | // typedef for ctrl-c handler routines | 
|---|
| 142 | // | 
|---|
| 143 |  | 
|---|
| 144 | typedef BOOL (* __stdcall PHANDLER_ROUTINE)(DWORD CtrlType);    /*PLF Fri  97-06-20 17:17:42*/ | 
|---|
| 145 |  | 
|---|
| 146 | #define CTRL_C_EVENT        0 | 
|---|
| 147 | #define CTRL_BREAK_EVENT    1 | 
|---|
| 148 | #define CTRL_CLOSE_EVENT    2 | 
|---|
| 149 | // 3 is reserved! | 
|---|
| 150 | // 4 is reserved! | 
|---|
| 151 | #define CTRL_LOGOFF_EVENT   5 | 
|---|
| 152 | #define CTRL_SHUTDOWN_EVENT 6 | 
|---|
| 153 |  | 
|---|
| 154 | // | 
|---|
| 155 | //  Input Mode flags: | 
|---|
| 156 | // | 
|---|
| 157 |  | 
|---|
| 158 | #define ENABLE_PROCESSED_INPUT 0x0001 | 
|---|
| 159 | #define ENABLE_LINE_INPUT      0x0002 | 
|---|
| 160 | #define ENABLE_ECHO_INPUT      0x0004 | 
|---|
| 161 | #define ENABLE_WINDOW_INPUT    0x0008 | 
|---|
| 162 | #define ENABLE_MOUSE_INPUT     0x0010 | 
|---|
| 163 |  | 
|---|
| 164 | // | 
|---|
| 165 | // Output Mode flags: | 
|---|
| 166 | // | 
|---|
| 167 |  | 
|---|
| 168 | #define ENABLE_PROCESSED_OUTPUT    0x0001 | 
|---|
| 169 | #define ENABLE_WRAP_AT_EOL_OUTPUT  0x0002 | 
|---|
| 170 |  | 
|---|
| 171 |  | 
|---|
| 172 | #pragma pack() | 
|---|
| 173 |  | 
|---|
| 174 | #endif | 
|---|