8a6b6757f5c3a197bcd93b1d65e0021eab5a5184
[reactos.git] / reactos / include / psdk / wincon.h
1 #ifndef _WINCON_H
2 #define _WINCON_H
3
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7
8 #if (_WIN32_WINNT >= 0x0600) && !defined(NOGDI)
9 # include "wingdi.h"
10 #endif
11
12 #ifdef _MSC_VER
13 #pragma warning(push)
14 #pragma warning(disable:4820)
15 #endif
16
17 /*
18 * Special PID for parent process for AttachConsole API
19 */
20 #if (_WIN32_WINNT >= 0x0501)
21 #define ATTACH_PARENT_PROCESS ((DWORD)-1)
22 #endif
23
24 /*
25 * Console display modes
26 */
27 // These codes are answered by GetConsoleDisplayMode
28 #define CONSOLE_WINDOWED 0
29 #define CONSOLE_FULLSCREEN 1
30 #if (_WIN32_WINNT >= 0x0600)
31 #define CONSOLE_OVERSTRIKE 1
32 #endif
33 #define CONSOLE_FULLSCREEN_HARDWARE 2
34
35 // These codes should be given to SetConsoleDisplayMode
36 #define CONSOLE_FULLSCREEN_MODE 1
37 #define CONSOLE_WINDOWED_MODE 2
38
39 /*
40 * Color attributes for text and screen background
41 */
42 #define FOREGROUND_BLUE 0x0001
43 #define FOREGROUND_GREEN 0x0002
44 #define FOREGROUND_RED 0x0004
45 #define FOREGROUND_INTENSITY 0x0008
46 #define BACKGROUND_BLUE 0x0010
47 #define BACKGROUND_GREEN 0x0020
48 #define BACKGROUND_RED 0x0040
49 #define BACKGROUND_INTENSITY 0x0080
50
51 #define COMMON_LVB_LEADING_BYTE 0x0100
52 #define COMMON_LVB_TRAILING_BYTE 0x0200
53 #define COMMON_LVB_GRID_HORIZONTAL 0x0400
54 #define COMMON_LVB_GRID_LVERTICAL 0x0800
55 #define COMMON_LVB_GRID_RVERTICAL 0x1000
56 #define COMMON_LVB_REVERSE_VIDEO 0x4000
57 #define COMMON_LVB_UNDERSCORE 0x8000
58
59 /*
60 * Screen buffer types
61 */
62 #define CONSOLE_TEXTMODE_BUFFER 1
63 #define CONSOLE_GRAPHICS_BUFFER 2 /* Undocumented, see http://blog.airesoft.co.uk/2012/10/things-ms-can-do-that-they-dont-tell-you-about-console-graphics/ */
64
65 /*
66 * Control handler codes
67 */
68 #define CTRL_C_EVENT 0
69 #define CTRL_BREAK_EVENT 1
70 #define CTRL_CLOSE_EVENT 2
71 #define CTRL_LOGOFF_EVENT 5
72 #define CTRL_SHUTDOWN_EVENT 6
73
74 /*
75 * Input mode flags
76 */
77 #define ENABLE_PROCESSED_INPUT 0x0001
78 #define ENABLE_LINE_INPUT 0x0002
79 #define ENABLE_ECHO_INPUT 0x0004
80 #define ENABLE_WINDOW_INPUT 0x0008
81 #define ENABLE_MOUSE_INPUT 0x0010
82 #define ENABLE_INSERT_MODE 0x0020
83 #define ENABLE_QUICK_EDIT_MODE 0x0040
84 #define ENABLE_EXTENDED_FLAGS 0x0080
85 #if (_WIN32_WINNT >= 0x0600)
86 #define ENABLE_AUTO_POSITION 0x0100
87 #endif
88
89 /*
90 * Output mode flags
91 */
92 #define ENABLE_PROCESSED_OUTPUT 0x0001
93 #define ENABLE_WRAP_AT_EOL_OUTPUT 0x0002
94
95 /*
96 * Console selection flags
97 */
98 #define CONSOLE_NO_SELECTION 0x0000
99 #define CONSOLE_SELECTION_IN_PROGRESS 0x0001
100 #define CONSOLE_SELECTION_NOT_EMPTY 0x0002
101 #define CONSOLE_MOUSE_SELECTION 0x0004
102 #define CONSOLE_MOUSE_DOWN 0x0008
103
104 /*
105 * History duplicate flags
106 */
107 #if (_WIN32_WINNT >= 0x0600)
108 #define HISTORY_NO_DUP_FLAG 0x0001
109 #endif
110
111 /*
112 * Event types
113 */
114 #define KEY_EVENT 0x0001
115 #define MOUSE_EVENT 0x0002
116 #define WINDOW_BUFFER_SIZE_EVENT 0x0004
117 #define MENU_EVENT 0x0008
118 #define FOCUS_EVENT 0x0010
119
120 /*
121 * ControlKeyState flags
122 */
123 #define RIGHT_ALT_PRESSED 0x0001
124 #define LEFT_ALT_PRESSED 0x0002
125 #define RIGHT_CTRL_PRESSED 0x0004
126 #define LEFT_CTRL_PRESSED 0x0008
127 #define SHIFT_PRESSED 0x0010
128 #define NUMLOCK_ON 0x0020
129 #define SCROLLLOCK_ON 0x0040
130 #define CAPSLOCK_ON 0x0080
131 #define ENHANCED_KEY 0x0100
132
133 /*
134 * ButtonState flags
135 */
136 #define FROM_LEFT_1ST_BUTTON_PRESSED 0x0001
137 #define RIGHTMOST_BUTTON_PRESSED 0x0002
138 #define FROM_LEFT_2ND_BUTTON_PRESSED 0x0004
139 #define FROM_LEFT_3RD_BUTTON_PRESSED 0x0008
140 #define FROM_LEFT_4TH_BUTTON_PRESSED 0x0010
141
142 /*
143 * Mouse event flags
144 */
145 #define MOUSE_MOVED 0x0001
146 #define DOUBLE_CLICK 0x0002
147 #define MOUSE_WHEELED 0x0004
148 #if (_WIN32_WINNT >= 0x0600)
149 #define MOUSE_HWHEELED 0x0008
150 #endif
151
152 typedef struct _CONSOLE_READCONSOLE_CONTROL {
153 ULONG nLength;
154 ULONG nInitialChars;
155 ULONG dwCtrlWakeupMask;
156 ULONG dwControlKeyState;
157 } CONSOLE_READCONSOLE_CONTROL, *PCONSOLE_READCONSOLE_CONTROL;
158
159 typedef struct _CHAR_INFO {
160 union {
161 WCHAR UnicodeChar;
162 CHAR AsciiChar;
163 } Char;
164 WORD Attributes;
165 } CHAR_INFO,*PCHAR_INFO;
166
167 typedef struct _SMALL_RECT {
168 SHORT Left;
169 SHORT Top;
170 SHORT Right;
171 SHORT Bottom;
172 } SMALL_RECT,*PSMALL_RECT;
173
174 typedef struct _CONSOLE_CURSOR_INFO {
175 DWORD dwSize;
176 BOOL bVisible;
177 } CONSOLE_CURSOR_INFO,*PCONSOLE_CURSOR_INFO;
178
179 typedef struct _COORD {
180 SHORT X;
181 SHORT Y;
182 } COORD, *PCOORD;
183
184 typedef struct _CONSOLE_SELECTION_INFO {
185 DWORD dwFlags;
186 COORD dwSelectionAnchor;
187 SMALL_RECT srSelection;
188 } CONSOLE_SELECTION_INFO, *PCONSOLE_SELECTION_INFO;
189
190 typedef struct _CONSOLE_FONT_INFO {
191 DWORD nFont;
192 COORD dwFontSize;
193 } CONSOLE_FONT_INFO, *PCONSOLE_FONT_INFO;
194
195 typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
196 COORD dwSize;
197 COORD dwCursorPosition;
198 WORD wAttributes;
199 SMALL_RECT srWindow;
200 COORD dwMaximumWindowSize;
201 } CONSOLE_SCREEN_BUFFER_INFO,*PCONSOLE_SCREEN_BUFFER_INFO;
202
203 /* Undocumented, see http://blog.airesoft.co.uk/2012/10/things-ms-can-do-that-they-dont-tell-you-about-console-graphics/ */
204 #if defined(_WINGDI_) && !defined(NOGDI)
205 typedef struct _CONSOLE_GRAPHICS_BUFFER_INFO {
206 DWORD dwBitMapInfoLength;
207 LPBITMAPINFO lpBitMapInfo;
208 DWORD dwUsage; // DIB_PAL_COLORS or DIB_RGB_COLORS
209 HANDLE hMutex;
210 PVOID lpBitMap;
211 } CONSOLE_GRAPHICS_BUFFER_INFO, *PCONSOLE_GRAPHICS_BUFFER_INFO;
212 #endif
213
214 typedef BOOL(CALLBACK *PHANDLER_ROUTINE)(_In_ DWORD);
215
216 typedef struct _KEY_EVENT_RECORD {
217 BOOL bKeyDown;
218 WORD wRepeatCount;
219 WORD wVirtualKeyCode;
220 WORD wVirtualScanCode;
221 union {
222 WCHAR UnicodeChar;
223 CHAR AsciiChar;
224 } uChar;
225 DWORD dwControlKeyState;
226 }
227 #ifdef __GNUC__
228 /* gcc's alignment is not what win32 expects */
229 PACKED
230 #endif
231 KEY_EVENT_RECORD;
232
233 typedef struct _MOUSE_EVENT_RECORD {
234 COORD dwMousePosition;
235 DWORD dwButtonState;
236 DWORD dwControlKeyState;
237 DWORD dwEventFlags;
238 } MOUSE_EVENT_RECORD;
239
240 typedef struct _WINDOW_BUFFER_SIZE_RECORD { COORD dwSize; } WINDOW_BUFFER_SIZE_RECORD;
241 typedef struct _MENU_EVENT_RECORD { UINT dwCommandId; } MENU_EVENT_RECORD,*PMENU_EVENT_RECORD;
242 typedef struct _FOCUS_EVENT_RECORD { BOOL bSetFocus; } FOCUS_EVENT_RECORD;
243
244 typedef struct _INPUT_RECORD {
245 WORD EventType;
246 union {
247 KEY_EVENT_RECORD KeyEvent;
248 MOUSE_EVENT_RECORD MouseEvent;
249 WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
250 MENU_EVENT_RECORD MenuEvent;
251 FOCUS_EVENT_RECORD FocusEvent;
252 } Event;
253 } INPUT_RECORD,*PINPUT_RECORD;
254
255 #if (_WIN32_WINNT >= 0x0600)
256 typedef struct _CONSOLE_HISTORY_INFO {
257 UINT cbSize;
258 UINT HistoryBufferSize;
259 UINT NumberOfHistoryBuffers;
260 DWORD dwFlags;
261 } CONSOLE_HISTORY_INFO, *PCONSOLE_HISTORY_INFO;
262
263 typedef struct _CONSOLE_SCREEN_BUFFER_INFOEX {
264 ULONG cbSize;
265 COORD dwSize;
266 COORD dwCursorPosition;
267 WORD wAttributes;
268 SMALL_RECT srWindow;
269 COORD dwMaximumWindowSize;
270 WORD wPopupAttributes;
271 COLORREF ColorTable[16];
272 } CONSOLE_SCREEN_BUFFER_INFOEX, *PCONSOLE_SCREEN_BUFFER_INFOEX;
273
274 #ifndef NOGDI
275 typedef struct _CONSOLE_FONT_INFOEX {
276 ULONG cbSize;
277 DWORD nFont;
278 COORD dwFontSize;
279 UINT FontFamily;
280 UINT FontWeight;
281 WCHAR FaceName[LF_FACESIZE];
282 } CONSOLE_FONT_INFOEX, *PCONSOLE_FONT_INFOEX;
283 #endif
284 #endif
285
286 BOOL WINAPI AllocConsole(VOID);
287
288 #if (_WIN32_WINNT >= 0x0501)
289 BOOL WINAPI AttachConsole(_In_ DWORD);
290
291 BOOL WINAPI AddConsoleAliasA(_In_ LPCSTR, _In_ LPCSTR, _In_ LPCSTR);
292 BOOL WINAPI AddConsoleAliasW(_In_ LPCWSTR, _In_ LPCWSTR, _In_ LPCWSTR);
293
294 DWORD
295 WINAPI
296 GetConsoleAliasA(
297 _In_ LPSTR Source,
298 _Out_writes_(TargetBufferLength) LPSTR TargetBuffer,
299 _In_ DWORD TargetBufferLength,
300 _In_ LPSTR ExeName);
301
302 DWORD
303 WINAPI
304 GetConsoleAliasW(
305 _In_ LPWSTR Source,
306 _Out_writes_(TargetBufferLength) LPWSTR TargetBuffer,
307 _In_ DWORD TargetBufferLength,
308 _In_ LPWSTR ExeName);
309
310 DWORD
311 WINAPI
312 GetConsoleAliasesA(
313 _Out_writes_(AliasBufferLength) LPSTR AliasBuffer,
314 _In_ DWORD AliasBufferLength,
315 _In_ LPSTR ExeName);
316
317 DWORD
318 WINAPI
319 GetConsoleAliasesW(
320 _Out_writes_(AliasBufferLength) LPWSTR AliasBuffer,
321 _In_ DWORD AliasBufferLength,
322 _In_ LPWSTR ExeName);
323
324 DWORD WINAPI GetConsoleAliasesLengthA(_In_ LPSTR ExeName);
325 DWORD WINAPI GetConsoleAliasesLengthW(_In_ LPWSTR ExeName);
326
327 DWORD
328 WINAPI
329 GetConsoleAliasExesA(
330 _Out_writes_(ExeNameBufferLength) LPSTR ExeNameBuffer,
331 _In_ DWORD ExeNameBufferLength);
332
333 DWORD
334 WINAPI
335 GetConsoleAliasExesW(
336 _Out_writes_(ExeNameBufferLength) LPWSTR ExeNameBuffer,
337 _In_ DWORD ExeNameBufferLength);
338
339 DWORD WINAPI GetConsoleAliasExesLengthA(VOID);
340 DWORD WINAPI GetConsoleAliasExesLengthW(VOID);
341 #endif
342
343 HANDLE WINAPI CreateConsoleScreenBuffer(_In_ DWORD, _In_ DWORD, _In_opt_ CONST SECURITY_ATTRIBUTES*, _In_ DWORD, _Reserved_ LPVOID);
344 BOOL WINAPI FillConsoleOutputAttribute(_In_ HANDLE, _In_ WORD, _In_ DWORD, _In_ COORD, _Out_ PDWORD);
345 BOOL WINAPI FillConsoleOutputCharacterA(_In_ HANDLE, _In_ CHAR, _In_ DWORD, _In_ COORD, _Out_ PDWORD);
346 BOOL WINAPI FillConsoleOutputCharacterW(_In_ HANDLE, _In_ WCHAR, _In_ DWORD, _In_ COORD, _Out_ PDWORD);
347 BOOL WINAPI FlushConsoleInputBuffer(_In_ HANDLE);
348 BOOL WINAPI FreeConsole(VOID);
349 BOOL WINAPI GenerateConsoleCtrlEvent(_In_ DWORD, _In_ DWORD);
350 UINT WINAPI GetConsoleCP(VOID);
351 BOOL WINAPI GetConsoleCursorInfo(_In_ HANDLE, _Out_ PCONSOLE_CURSOR_INFO);
352 BOOL WINAPI GetConsoleMode(HANDLE,PDWORD);
353 UINT WINAPI GetConsoleOutputCP(VOID);
354 BOOL WINAPI GetConsoleScreenBufferInfo(_In_ HANDLE, _Out_ PCONSOLE_SCREEN_BUFFER_INFO);
355
356 /* Undocumented, see http://blog.airesoft.co.uk/2012/10/things-ms-can-do-that-they-dont-tell-you-about-console-graphics/ */
357 BOOL WINAPI InvalidateConsoleDIBits(_In_ HANDLE, _In_ PSMALL_RECT);
358
359 DWORD
360 WINAPI
361 GetConsoleTitleA(
362 _Out_writes_(nSize) LPSTR lpConsoleTitle,
363 _In_ DWORD nSize);
364
365 DWORD
366 WINAPI
367 GetConsoleTitleW(
368 _Out_writes_(nSize) LPWSTR lpConsoleTitle,
369 _In_ DWORD nSize);
370
371 #if (_WIN32_WINNT >= 0x0500)
372 HWND WINAPI GetConsoleWindow(VOID);
373 BOOL APIENTRY GetConsoleDisplayMode(_Out_ LPDWORD lpModeFlags);
374 BOOL APIENTRY SetConsoleDisplayMode(_In_ HANDLE hConsoleOutput, _In_ DWORD dwFlags, _Out_opt_ PCOORD lpNewScreenBufferDimensions);
375 #endif
376 COORD WINAPI GetLargestConsoleWindowSize(_In_ HANDLE);
377 BOOL WINAPI GetNumberOfConsoleInputEvents(HANDLE,PDWORD);
378 BOOL WINAPI GetNumberOfConsoleMouseButtons(_Out_ PDWORD);
379
380 BOOL WINAPI PeekConsoleInputA(HANDLE,PINPUT_RECORD,DWORD,PDWORD);
381
382 BOOL
383 WINAPI
384 PeekConsoleInputW(
385 _In_ HANDLE hConsoleInput,
386 _Out_writes_(nLength) PINPUT_RECORD lpBuffer,
387 _In_ DWORD nLength,
388 _Out_ LPDWORD lpNumberOfEventsRead);
389
390 BOOL WINAPI ReadConsoleA(HANDLE,PVOID,DWORD,PDWORD,PCONSOLE_READCONSOLE_CONTROL);
391 BOOL WINAPI ReadConsoleW(HANDLE,PVOID,DWORD,PDWORD,PCONSOLE_READCONSOLE_CONTROL);
392 BOOL WINAPI ReadConsoleInputA(HANDLE,PINPUT_RECORD,DWORD,PDWORD);
393 BOOL WINAPI ReadConsoleInputW(HANDLE,PINPUT_RECORD,DWORD,PDWORD);
394
395 BOOL
396 WINAPI
397 ReadConsoleOutputAttribute(
398 _In_ HANDLE hConsoleOutput,
399 _Out_writes_(nLength) LPWORD lpAttribute,
400 _In_ DWORD nLength,
401 _In_ COORD dwReadCoord,
402 _Out_ LPDWORD lpNumberOfAttrsRead);
403
404 BOOL
405 WINAPI
406 ReadConsoleOutputCharacterA(
407 _In_ HANDLE hConsoleOutput,
408 _Out_writes_(nLength) LPSTR lpCharacter,
409 _In_ DWORD nLength,
410 _In_ COORD dwReadCoord,
411 _Out_ LPDWORD lpNumberOfCharsRead);
412
413 BOOL
414 WINAPI
415 ReadConsoleOutputCharacterW(
416 _In_ HANDLE hConsoleOutput,
417 _Out_writes_(nLength) LPWSTR lpCharacter,
418 _In_ DWORD nLength,
419 _In_ COORD dwReadCoord,
420 _Out_ LPDWORD lpNumberOfCharsRead);
421
422 BOOL
423 WINAPI
424 ReadConsoleOutputA(
425 _In_ HANDLE hConsoleOutput,
426 _Out_writes_(dwBufferSize.X * dwBufferSize.Y) PCHAR_INFO lpBuffer,
427 _In_ COORD dwBufferSize,
428 _In_ COORD dwBufferCoord,
429 _Inout_ PSMALL_RECT lpReadRegion);
430
431 BOOL
432 WINAPI
433 ReadConsoleOutputW(
434 _In_ HANDLE hConsoleOutput,
435 _Out_writes_(dwBufferSize.X * dwBufferSize.Y) PCHAR_INFO lpBuffer,
436 _In_ COORD dwBufferSize,
437 _In_ COORD dwBufferCoord,
438 _Inout_ PSMALL_RECT lpReadRegion);
439
440 BOOL WINAPI ScrollConsoleScreenBufferA(_In_ HANDLE, _In_ const SMALL_RECT*, _In_opt_ const SMALL_RECT*, _In_ COORD, _In_ const CHAR_INFO*);
441 BOOL WINAPI ScrollConsoleScreenBufferW(_In_ HANDLE, _In_ const SMALL_RECT*, _In_opt_ const SMALL_RECT*, _In_ COORD, _In_ const CHAR_INFO*);
442 BOOL WINAPI SetConsoleActiveScreenBuffer(_In_ HANDLE);
443 BOOL WINAPI SetConsoleCP(_In_ UINT);
444 BOOL WINAPI SetConsoleCtrlHandler(PHANDLER_ROUTINE,BOOL);
445 BOOL WINAPI SetConsoleCursorInfo(_In_ HANDLE, _In_ const CONSOLE_CURSOR_INFO*);
446 BOOL WINAPI SetConsoleCursorPosition(_In_ HANDLE, _In_ COORD);
447 BOOL WINAPI SetConsoleMode(HANDLE,DWORD);
448 BOOL WINAPI SetConsoleOutputCP(_In_ UINT);
449 BOOL WINAPI SetConsoleScreenBufferSize(_In_ HANDLE, _In_ COORD);
450 BOOL WINAPI SetConsoleTextAttribute(_In_ HANDLE, _In_ WORD);
451 BOOL WINAPI SetConsoleTitleA(_In_ LPCSTR);
452 BOOL WINAPI SetConsoleTitleW(_In_ LPCWSTR);
453 BOOL WINAPI SetConsoleWindowInfo(_In_ HANDLE, _In_ BOOL, _In_ const SMALL_RECT*);
454
455 /* Undocumented, see http://undoc.airesoft.co.uk/kernel32.dll/ConsoleMenuControl.php */
456 HMENU WINAPI ConsoleMenuControl(_In_ HANDLE, _In_ DWORD, _In_ DWORD);
457 /* Undocumented */
458 BOOL WINAPI SetConsoleMenuClose(_In_ BOOL);
459
460 BOOL WINAPI WriteConsoleA(HANDLE,CONST VOID*,DWORD,LPDWORD,LPVOID);
461 BOOL WINAPI WriteConsoleW(HANDLE,CONST VOID*,DWORD,LPDWORD,LPVOID);
462
463 BOOL
464 WINAPI
465 WriteConsoleInputA(
466 _In_ HANDLE hConsoleInput,
467 _In_reads_(nLength) CONST INPUT_RECORD *lpBuffer,
468 _In_ DWORD nLength,
469 _Out_ LPDWORD lpNumberOfEventsWritten);
470
471 BOOL
472 WINAPI
473 WriteConsoleInputW(
474 _In_ HANDLE hConsoleInput,
475 _In_reads_(nLength) CONST INPUT_RECORD *lpBuffer,
476 _In_ DWORD nLength,
477 _Out_ LPDWORD lpNumberOfEventsWritten);
478
479 BOOL
480 WINAPI
481 WriteConsoleOutputA(
482 _In_ HANDLE hConsoleOutput,
483 _In_reads_(dwBufferSize.X * dwBufferSize.Y) CONST CHAR_INFO *lpBuffer,
484 _In_ COORD dwBufferSize,
485 _In_ COORD dwBufferCoord,
486 _Inout_ PSMALL_RECT lpWriteRegion);
487
488 BOOL
489 WINAPI
490 WriteConsoleOutputW(
491 _In_ HANDLE hConsoleOutput,
492 _In_reads_(dwBufferSize.X * dwBufferSize.Y) CONST CHAR_INFO *lpBuffer,
493 _In_ COORD dwBufferSize,
494 _In_ COORD dwBufferCoord,
495 _Inout_ PSMALL_RECT lpWriteRegion);
496
497 BOOL
498 WINAPI
499 WriteConsoleOutputAttribute(
500 _In_ HANDLE hConsoleOutput,
501 _In_reads_(nLength) CONST WORD *lpAttribute,
502 _In_ DWORD nLength,
503 _In_ COORD dwWriteCoord,
504 _Out_ LPDWORD lpNumberOfAttrsWritten);
505
506 BOOL
507 WINAPI
508 WriteConsoleOutputCharacterA(
509 _In_ HANDLE hConsoleOutput,
510 _In_reads_(nLength) LPCSTR lpCharacter,
511 _In_ DWORD nLength,
512 _In_ COORD dwWriteCoord,
513 _Out_ LPDWORD lpNumberOfCharsWritten);
514
515 BOOL
516 WINAPI
517 WriteConsoleOutputCharacterW(
518 _In_ HANDLE hConsoleOutput,
519 _In_reads_(nLength) LPCWSTR lpCharacter,
520 _In_ DWORD nLength,
521 _In_ COORD dwWriteCoord,
522 _Out_ LPDWORD lpNumberOfCharsWritten);
523
524
525 #ifdef UNICODE
526 #define AddConsoleAlias AddConsoleAliasW
527 #define GetConsoleAlias GetConsoleAliasW
528 #define GetConsoleAliases GetConsoleAliasesW
529 #define GetConsoleAliasesLength GetConsoleAliasesLengthW
530 #define GetConsoleAliasExes GetConsoleAliasExesW
531 #define GetConsoleAliasExesLength GetConsoleAliasExesLengthW
532 #define GetConsoleTitle GetConsoleTitleW
533 #define PeekConsoleInput PeekConsoleInputW
534 #define ReadConsole ReadConsoleW
535 #define ReadConsoleInput ReadConsoleInputW
536 #define ReadConsoleOutput ReadConsoleOutputW
537 #define ReadConsoleOutputCharacter ReadConsoleOutputCharacterW
538 #define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferW
539 #define SetConsoleTitle SetConsoleTitleW
540 #define WriteConsole WriteConsoleW
541 #define WriteConsoleInput WriteConsoleInputW
542 #define WriteConsoleOutput WriteConsoleOutputW
543 #define FillConsoleOutputCharacter FillConsoleOutputCharacterW
544 #define WriteConsoleOutputCharacter WriteConsoleOutputCharacterW
545 #else
546 #define AddConsoleAlias AddConsoleAliasA
547 #define GetConsoleAlias GetConsoleAliasA
548 #define GetConsoleAliases GetConsoleAliasesA
549 #define GetConsoleAliasesLength GetConsoleAliasesLengthA
550 #define GetConsoleAliasExes GetConsoleAliasExesA
551 #define GetConsoleAliasExesLength GetConsoleAliasExesLengthA
552 #define GetConsoleTitle GetConsoleTitleA
553 #define PeekConsoleInput PeekConsoleInputA
554 #define ReadConsole ReadConsoleA
555 #define ReadConsoleInput ReadConsoleInputA
556 #define ReadConsoleOutput ReadConsoleOutputA
557 #define ReadConsoleOutputCharacter ReadConsoleOutputCharacterA
558 #define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferA
559 #define SetConsoleTitle SetConsoleTitleA
560 #define WriteConsole WriteConsoleA
561 #define WriteConsoleInput WriteConsoleInputA
562 #define WriteConsoleOutput WriteConsoleOutputA
563 #define FillConsoleOutputCharacter FillConsoleOutputCharacterA
564 #define WriteConsoleOutputCharacter WriteConsoleOutputCharacterA
565 #endif
566
567 #ifdef _MSC_VER
568 #pragma warning(pop)
569 #endif
570
571 #ifdef __cplusplus
572 }
573 #endif
574 #endif