| [4] | 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 | 
|---|