6 #define FillConsoleOutputCharacter FillConsoleOutputCharacterW
7 #define GetConsoleTitle GetConsoleTitleW
8 #define PeekConsoleInput PeekConsoleInputW
9 #define ReadConsole ReadConsoleW
10 #define ReadConsoleInput ReadConsoleInputW
11 #define ReadConsoleOutput ReadConsoleOutputW
12 #define ReadConsoleOutputCharacter ReadConsoleOutputCharacterW
13 #define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferW
14 #define SetConsoleTitle SetConsoleTitleW
15 #define WriteConsole WriteConsoleW
16 #define WriteConsoleInput WriteConsoleInputW
17 #define WriteConsoleOutput WriteConsoleOutputW
18 #define WriteConsoleOutputCharacter WriteConsoleOutputCharacterW
20 #define FillConsoleOutputCharacter FillConsoleOutputCharacterA
21 #define GetConsoleTitle GetConsoleTitleA
22 #define PeekConsoleInput PeekConsoleInputA
23 #define ReadConsole ReadConsoleA
24 #define ReadConsoleInput ReadConsoleInputA
25 #define ReadConsoleOutput ReadConsoleOutputA
26 #define ReadConsoleOutputCharacter ReadConsoleOutputCharacterA
27 #define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferA
28 #define SetConsoleTitle SetConsoleTitleA
29 #define WriteConsole WriteConsoleA
30 #define WriteConsoleInput WriteConsoleInputA
31 #define WriteConsoleOutput WriteConsoleOutputA
32 #define WriteConsoleOutputCharacter WriteConsoleOutputCharacterA
44 WORD wVirtualScanCode
;
56 DWORD dwControlKeyState
;
57 } __attribute__ ((packed
)) KEY_EVENT_RECORD
;
61 #define RIGHT_ALT_PRESSED 0x1
62 #define LEFT_ALT_PRESSED 0x2
63 #define RIGHT_CTRL_PRESSED 0x4
64 #define LEFT_CTRL_PRESSED 0x8
65 #define SHIFT_PRESSED 0x10
66 #define NUMLOCK_ON 0x20
67 #define SCROLLLOCK_ON 0x40
68 #define CAPSLOCK_ON 0x80
69 #define ENHANCED_KEY 0x100
73 COORD dwMousePosition
;
75 DWORD dwControlKeyState
;
80 #define CONSOLE_TEXTMODE_BUFFER 1
83 #define FROM_LEFT_1ST_BUTTON_PRESSED 0x0001
84 #define RIGHTMOST_BUTTON_PRESSED 0x0002
85 #define FROM_LEFT_2ND_BUTTON_PRESSED 0x0004
86 #define FROM_LEFT_3RD_BUTTON_PRESSED 0x0008
87 #define FROM_LEFT_4TH_BUTTON_PRESSED 0x0010
92 #define MOUSE_MOVED 0x0001
93 #define DOUBLE_CLICK 0x0002
99 WINDOW_BUFFER_SIZE_RECORD
;
118 KEY_EVENT_RECORD KeyEvent
;
119 MOUSE_EVENT_RECORD MouseEvent
;
120 WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent
;
121 MENU_EVENT_RECORD MenuEvent
;
122 FOCUS_EVENT_RECORD FocusEvent
;
128 #define KEY_EVENT 0x1
129 #define MOUSE_EVENT 0x2
130 #define WINDOW_BUFFER_SIZE_EVENT 0x4
131 #define MENU_EVENT 0x8
132 #define FOCUS_EVENT 0x10
149 #define FOREGROUND_BLUE 0x01
150 #define FOREGROUND_GREEN 0x02
151 #define FOREGROUND_RED 0x04
152 #define FOREGROUND_INTENSITY 0x08
153 #define BACKGROUND_BLUE 0x10
154 #define BACKGROUND_GREEN 0x20
155 #define BACKGROUND_RED 0x40
156 #define BACKGROUND_INTENSITY 0x80
162 COORD dwCursorPosition
;
165 COORD dwMaximumWindowSize
;
167 CONSOLE_SCREEN_BUFFER_INFO
;
179 #define CTRL_C_EVENT 0
180 #define CTRL_BREAK_EVENT 1
181 #define CTRL_CLOSE_EVENT 2
182 #define CTRL_LOGOFF_EVENT 5
183 #define CTRL_SHUTDOWN_EVENT 6
185 typedef BOOL
HANDLER_ROUTINE (WORD ctrltype
);
189 #define ENABLE_PROCESSED_INPUT 0x01
190 #define ENABLE_LINE_INPUT 0x02
191 #define ENABLE_ECHO_INPUT 0x04
192 #define ENABLE_WINDOW_INPUT 0x08
193 #define ENABLE_MOUSE_INPUT 0x10
195 #define ENABLE_PROCESSED_OUTPUT 0x01
196 #define ENABLE_WRAP_AT_EOL_OUTPUT 0x02
199 BOOL WINAPI
AllocConsole (VOID
);
202 HANDLE WINAPI
CreateConsoleScreenBuffer (DWORD access
,
204 CONST SECURITY_ATTRIBUTES
* lattr
,
208 BOOL WINAPI
FillConsoleOutputAttribute (HANDLE h
,
214 BOOL WINAPI
FillConsoleOutputCharacterA (HANDLE h
,
221 BOOL WINAPI
FlushBuffer (HANDLE h
);
223 BOOL WINAPI
FreeConsole (VOID
);
224 BOOL WINAPI
GenerateConsoleCtrlEvent (DWORD ev
, DWORD group
);
225 UINT WINAPI
GetConsoleCP (VOID
);
226 BOOL WINAPI
GetConsoleCursorInfo (HANDLE h
, CONSOLE_CURSOR_INFO
*info
);
227 BOOL WINAPI
GetConsoleMode (HANDLE h
, DWORD
* mode
);
228 UINT WINAPI
GetConsoleOutputCP (VOID
);
229 BOOL WINAPI
GetConsoleScreenBufferInfo (HANDLE h
, CONSOLE_SCREEN_BUFFER_INFO
*
232 DWORD WINAPI
GetConsoleTitleA (LPSTR str
, DWORD len
);
235 COORD WINAPI
GetLargestConsoleWindowSize (HANDLE h
);
237 BOOL WINAPI
GetNumberOfConsoleInputEvents (HANDLE h
,
240 BOOL WINAPI
GetNumberOfConsoleMouseButtons (DWORD
* n
);
242 BOOL WINAPI
PeekConsoleInputA (HANDLE h
,
249 BOOL WINAPI
ReadConsoleA (HANDLE h
,
255 BOOL WINAPI
ReadConsoleInputA (HANDLE h
,
260 BOOL WINAPI
ReadConsoleOutputA (HANDLE h
,
266 BOOL WINAPI
ReadConsoleOutputAttribute (HANDLE h
,
272 BOOL WINAPI
ReadConsoleOutputCharacterA (HANDLE h
,
278 BOOL WINAPI
ScrollConsoleScreenBufferA (HANDLE h
,
279 CONST SMALL_RECT
* sr
,
280 CONST SMALL_RECT
* cr
,
282 CONST CHAR_INFO
* i
);
285 BOOL WINAPI
SetConsoleActiveScreenBuffer (HANDLE h
);
286 BOOL WINAPI
SetConsoleCP (UINT i
);
287 BOOL WINAPI
SetConsoleCtrlHandler (HANDLER_ROUTINE
* func
, BOOL a
);
289 BOOL WINAPI
SetConsoleCursorInfo (HANDLE h
, CONST CONSOLE_CURSOR_INFO
* info
);
291 BOOL WINAPI
SetConsoleCursorPosition (HANDLE h
, COORD pos
);
293 BOOL WINAPI
SetConsoleMode (HANDLE h
, DWORD mode
);
295 BOOL WINAPI
SetConsoleOutputCP (UINT i
);
296 BOOL WINAPI
SetConsoleScreenBufferSize (HANDLE h
, COORD size
);
297 BOOL WINAPI
SetConsoleTextAttribute (HANDLE h
,
299 BOOL WINAPI
SetConsoleTitleA (const char * str
);
301 BOOL WINAPI
SetConsoleWindowInfo (HANDLE h
,
303 CONST SMALL_RECT
* wnd
);
305 BOOL WINAPI
WriteConsoleA (HANDLE h
,
311 BOOL WINAPI
WriteConsoleInputA (HANDLE h
,
312 CONST INPUT_RECORD
* ptr
,
316 BOOL WINAPI
WriteConsoleOutputA (HANDLE h
,
317 CONST CHAR_INFO
* ptr
,
322 BOOL WINAPI
WriteConsoleOutputAttribute (HANDLE h
,
328 BOOL WINAPI
WriteConsoleOutputCharacterA (HANDLE h
,