1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef _WINCON_ 7 #define _WINCON_ 8 9 #include <_mingw_unicode.h> 10 11 #include <winapifamily.h> 12 13 #ifdef __cplusplus 14 extern "C" { 15 #endif 16 17 typedef struct _COORD { 18 SHORT X; 19 SHORT Y; 20 } COORD,*PCOORD; 21 22 typedef struct _SMALL_RECT { 23 SHORT Left; 24 SHORT Top; 25 SHORT Right; 26 SHORT Bottom; 27 } SMALL_RECT,*PSMALL_RECT; 28 29 typedef struct _KEY_EVENT_RECORD { 30 WINBOOL bKeyDown; 31 WORD wRepeatCount; 32 WORD wVirtualKeyCode; 33 WORD wVirtualScanCode; 34 union { 35 WCHAR UnicodeChar; 36 CHAR AsciiChar; 37 } uChar; 38 DWORD dwControlKeyState; 39 } KEY_EVENT_RECORD,*PKEY_EVENT_RECORD; 40 41 #define RIGHT_ALT_PRESSED 0x1 42 #define LEFT_ALT_PRESSED 0x2 43 #define RIGHT_CTRL_PRESSED 0x4 44 #define LEFT_CTRL_PRESSED 0x8 45 #define SHIFT_PRESSED 0x10 46 #define NUMLOCK_ON 0x20 47 #define SCROLLLOCK_ON 0x40 48 #define CAPSLOCK_ON 0x80 49 #define ENHANCED_KEY 0x100 50 #define NLS_DBCSCHAR 0x10000 51 #define NLS_ALPHANUMERIC 0x0 52 #define NLS_KATAKANA 0x20000 53 #define NLS_HIRAGANA 0x40000 54 #define NLS_ROMAN 0x400000 55 #define NLS_IME_CONVERSION 0x800000 56 #define NLS_IME_DISABLE 0x20000000 57 58 typedef struct _MOUSE_EVENT_RECORD { 59 COORD dwMousePosition; 60 DWORD dwButtonState; 61 DWORD dwControlKeyState; 62 DWORD dwEventFlags; 63 } MOUSE_EVENT_RECORD,*PMOUSE_EVENT_RECORD; 64 65 #define FROM_LEFT_1ST_BUTTON_PRESSED 0x1 66 #define RIGHTMOST_BUTTON_PRESSED 0x2 67 #define FROM_LEFT_2ND_BUTTON_PRESSED 0x4 68 #define FROM_LEFT_3RD_BUTTON_PRESSED 0x8 69 #define FROM_LEFT_4TH_BUTTON_PRESSED 0x10 70 71 #define MOUSE_MOVED 0x1 72 #define DOUBLE_CLICK 0x2 73 #define MOUSE_WHEELED 0x4 74 #if (_WIN32_WINNT >= 0x0600) 75 #define MOUSE_HWHEELED 0x8 76 #endif 77 78 typedef struct _WINDOW_BUFFER_SIZE_RECORD { 79 COORD dwSize; 80 } WINDOW_BUFFER_SIZE_RECORD,*PWINDOW_BUFFER_SIZE_RECORD; 81 82 typedef struct _MENU_EVENT_RECORD { 83 UINT dwCommandId; 84 } MENU_EVENT_RECORD,*PMENU_EVENT_RECORD; 85 86 typedef struct _FOCUS_EVENT_RECORD { 87 WINBOOL bSetFocus; 88 } FOCUS_EVENT_RECORD,*PFOCUS_EVENT_RECORD; 89 90 typedef struct _INPUT_RECORD { 91 WORD EventType; 92 union { 93 KEY_EVENT_RECORD KeyEvent; 94 MOUSE_EVENT_RECORD MouseEvent; 95 WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent; 96 MENU_EVENT_RECORD MenuEvent; 97 FOCUS_EVENT_RECORD FocusEvent; 98 } Event; 99 } INPUT_RECORD,*PINPUT_RECORD; 100 101 #define KEY_EVENT 0x1 102 #define MOUSE_EVENT 0x2 103 #define WINDOW_BUFFER_SIZE_EVENT 0x4 104 #define MENU_EVENT 0x8 105 #define FOCUS_EVENT 0x10 106 107 typedef struct _CHAR_INFO { 108 union { 109 WCHAR UnicodeChar; 110 CHAR AsciiChar; 111 } Char; 112 WORD Attributes; 113 } CHAR_INFO,*PCHAR_INFO; 114 115 #define FOREGROUND_BLUE 0x1 116 #define FOREGROUND_GREEN 0x2 117 #define FOREGROUND_RED 0x4 118 #define FOREGROUND_INTENSITY 0x8 119 #define BACKGROUND_BLUE 0x10 120 #define BACKGROUND_GREEN 0x20 121 #define BACKGROUND_RED 0x40 122 #define BACKGROUND_INTENSITY 0x80 123 #define COMMON_LVB_LEADING_BYTE 0x100 124 #define COMMON_LVB_TRAILING_BYTE 0x200 125 #define COMMON_LVB_GRID_HORIZONTAL 0x400 126 #define COMMON_LVB_GRID_LVERTICAL 0x800 127 #define COMMON_LVB_GRID_RVERTICAL 0x1000 128 #define COMMON_LVB_REVERSE_VIDEO 0x4000 129 #define COMMON_LVB_UNDERSCORE 0x8000 130 131 #define COMMON_LVB_SBCSDBCS 0x300 132 133 typedef struct _CONSOLE_SCREEN_BUFFER_INFO { 134 COORD dwSize; 135 COORD dwCursorPosition; 136 WORD wAttributes; 137 SMALL_RECT srWindow; 138 COORD dwMaximumWindowSize; 139 } CONSOLE_SCREEN_BUFFER_INFO,*PCONSOLE_SCREEN_BUFFER_INFO; 140 141 typedef struct _CONSOLE_CURSOR_INFO { 142 DWORD dwSize; 143 WINBOOL bVisible; 144 } CONSOLE_CURSOR_INFO,*PCONSOLE_CURSOR_INFO; 145 146 typedef struct _CONSOLE_FONT_INFO { 147 DWORD nFont; 148 COORD dwFontSize; 149 } CONSOLE_FONT_INFO,*PCONSOLE_FONT_INFO; 150 151 typedef struct _CONSOLE_SELECTION_INFO { 152 DWORD dwFlags; 153 COORD dwSelectionAnchor; 154 SMALL_RECT srSelection; 155 } CONSOLE_SELECTION_INFO,*PCONSOLE_SELECTION_INFO; 156 157 #define CONSOLE_NO_SELECTION 0x0 158 #define CONSOLE_SELECTION_IN_PROGRESS 0x1 159 #define CONSOLE_SELECTION_NOT_EMPTY 0x2 160 #define CONSOLE_MOUSE_SELECTION 0x4 161 #define CONSOLE_MOUSE_DOWN 0x8 162 163 typedef WINBOOL (WINAPI *PHANDLER_ROUTINE)(DWORD CtrlType); 164 165 #define CTRL_C_EVENT 0 166 #define CTRL_BREAK_EVENT 1 167 #define CTRL_CLOSE_EVENT 2 168 169 #define CTRL_LOGOFF_EVENT 5 170 #define CTRL_SHUTDOWN_EVENT 6 171 172 #define ENABLE_PROCESSED_INPUT 0x1 173 #define ENABLE_LINE_INPUT 0x2 174 #define ENABLE_ECHO_INPUT 0x4 175 #define ENABLE_WINDOW_INPUT 0x8 176 #define ENABLE_MOUSE_INPUT 0x10 177 #define ENABLE_INSERT_MODE 0x20 178 #define ENABLE_QUICK_EDIT_MODE 0x40 179 #define ENABLE_EXTENDED_FLAGS 0x80 180 #define ENABLE_AUTO_POSITION 0x100 181 182 #define ENABLE_PROCESSED_OUTPUT 0x1 183 #define ENABLE_WRAP_AT_EOL_OUTPUT 0x2 184 185 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) 186 187 #define PeekConsoleInput __MINGW_NAME_AW(PeekConsoleInput) 188 #define ReadConsoleInput __MINGW_NAME_AW(ReadConsoleInput) 189 #define WriteConsoleInput __MINGW_NAME_AW(WriteConsoleInput) 190 #define ReadConsoleOutput __MINGW_NAME_AW(ReadConsoleOutput) 191 #define WriteConsoleOutput __MINGW_NAME_AW(WriteConsoleOutput) 192 #define ReadConsoleOutputCharacter __MINGW_NAME_AW(ReadConsoleOutputCharacter) 193 #define WriteConsoleOutputCharacter __MINGW_NAME_AW(WriteConsoleOutputCharacter) 194 #define FillConsoleOutputCharacter __MINGW_NAME_AW(FillConsoleOutputCharacter) 195 #define ScrollConsoleScreenBuffer __MINGW_NAME_AW(ScrollConsoleScreenBuffer) 196 #define GetConsoleTitle __MINGW_NAME_AW(GetConsoleTitle) 197 #define SetConsoleTitle __MINGW_NAME_AW(SetConsoleTitle) 198 #define ReadConsole __MINGW_NAME_AW(ReadConsole) 199 #define WriteConsole __MINGW_NAME_AW(WriteConsole) 200 #define AddConsoleAlias __MINGW_NAME_AW(AddConsoleAlias) 201 #define GetConsoleAlias __MINGW_NAME_AW(GetConsoleAlias) 202 #define GetConsoleAliasesLength __MINGW_NAME_AW(GetConsoleAliasesLength) 203 #define GetConsoleAliasExesLength __MINGW_NAME_AW(GetConsoleAliasExesLength) 204 #define GetConsoleAliases __MINGW_NAME_AW(GetConsoleAliases) 205 #define GetConsoleAliasExes __MINGW_NAME_AW(GetConsoleAliasExes) 206 207 WINBASEAPI WINBOOL WINAPI PeekConsoleInputA(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead); 208 WINBASEAPI WINBOOL WINAPI PeekConsoleInputW(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead); 209 WINBASEAPI WINBOOL WINAPI ReadConsoleInputA(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead); 210 WINBASEAPI WINBOOL WINAPI ReadConsoleInputW(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead); 211 WINBASEAPI WINBOOL WINAPI WriteConsoleInputA(HANDLE hConsoleInput,CONST INPUT_RECORD *lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsWritten); 212 WINBASEAPI WINBOOL WINAPI WriteConsoleInputW(HANDLE hConsoleInput,CONST INPUT_RECORD *lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsWritten); 213 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputA(HANDLE hConsoleOutput,PCHAR_INFO lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpReadRegion); 214 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputW(HANDLE hConsoleOutput,PCHAR_INFO lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpReadRegion); 215 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputA(HANDLE hConsoleOutput,CONST CHAR_INFO *lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpWriteRegion); 216 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputW(HANDLE hConsoleOutput,CONST CHAR_INFO *lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpWriteRegion); 217 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputCharacterA(HANDLE hConsoleOutput,LPSTR lpCharacter,DWORD nLength,COORD dwReadCoord,LPDWORD lpNumberOfCharsRead); 218 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputCharacterW(HANDLE hConsoleOutput,LPWSTR lpCharacter,DWORD nLength,COORD dwReadCoord,LPDWORD lpNumberOfCharsRead); 219 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputAttribute(HANDLE hConsoleOutput,LPWORD lpAttribute,DWORD nLength,COORD dwReadCoord,LPDWORD lpNumberOfAttrsRead); 220 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputCharacterA(HANDLE hConsoleOutput,LPCSTR lpCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten); 221 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputCharacterW(HANDLE hConsoleOutput,LPCWSTR lpCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten); 222 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputAttribute(HANDLE hConsoleOutput,CONST WORD *lpAttribute,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfAttrsWritten); 223 WINBASEAPI WINBOOL WINAPI FillConsoleOutputCharacterA(HANDLE hConsoleOutput,CHAR cCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten); 224 WINBASEAPI WINBOOL WINAPI FillConsoleOutputCharacterW(HANDLE hConsoleOutput,WCHAR cCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten); 225 WINBASEAPI WINBOOL WINAPI FillConsoleOutputAttribute(HANDLE hConsoleOutput,WORD wAttribute,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfAttrsWritten); 226 WINBASEAPI WINBOOL WINAPI GetConsoleMode(HANDLE hConsoleHandle,LPDWORD lpMode); 227 WINBASEAPI WINBOOL WINAPI GetNumberOfConsoleInputEvents(HANDLE hConsoleInput,LPDWORD lpNumberOfEvents); 228 WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfo(HANDLE hConsoleOutput,PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo); 229 WINBASEAPI COORD WINAPI GetLargestConsoleWindowSize(HANDLE hConsoleOutput); 230 WINBASEAPI WINBOOL WINAPI GetConsoleCursorInfo(HANDLE hConsoleOutput,PCONSOLE_CURSOR_INFO lpConsoleCursorInfo); 231 WINBASEAPI WINBOOL WINAPI GetCurrentConsoleFont(HANDLE hConsoleOutput,WINBOOL bMaximumWindow,PCONSOLE_FONT_INFO lpConsoleCurrentFont); 232 WINBASEAPI COORD WINAPI GetConsoleFontSize(HANDLE hConsoleOutput,DWORD nFont); 233 WINBASEAPI WINBOOL WINAPI GetConsoleSelectionInfo(PCONSOLE_SELECTION_INFO lpConsoleSelectionInfo); 234 WINBASEAPI WINBOOL WINAPI GetNumberOfConsoleMouseButtons(LPDWORD lpNumberOfMouseButtons); 235 WINBASEAPI WINBOOL WINAPI SetConsoleMode(HANDLE hConsoleHandle,DWORD dwMode); 236 WINBASEAPI WINBOOL WINAPI SetConsoleActiveScreenBuffer(HANDLE hConsoleOutput); 237 WINBASEAPI WINBOOL WINAPI FlushConsoleInputBuffer(HANDLE hConsoleInput); 238 WINBASEAPI WINBOOL WINAPI SetConsoleScreenBufferSize(HANDLE hConsoleOutput,COORD dwSize); 239 WINBASEAPI WINBOOL WINAPI SetConsoleCursorPosition(HANDLE hConsoleOutput,COORD dwCursorPosition); 240 WINBASEAPI WINBOOL WINAPI SetConsoleCursorInfo(HANDLE hConsoleOutput,CONST CONSOLE_CURSOR_INFO *lpConsoleCursorInfo); 241 WINBASEAPI WINBOOL WINAPI ScrollConsoleScreenBufferA(HANDLE hConsoleOutput,CONST SMALL_RECT *lpScrollRectangle,CONST SMALL_RECT *lpClipRectangle,COORD dwDestinationOrigin,CONST CHAR_INFO *lpFill); 242 WINBASEAPI WINBOOL WINAPI ScrollConsoleScreenBufferW(HANDLE hConsoleOutput,CONST SMALL_RECT *lpScrollRectangle,CONST SMALL_RECT *lpClipRectangle,COORD dwDestinationOrigin,CONST CHAR_INFO *lpFill); 243 WINBASEAPI WINBOOL WINAPI SetConsoleWindowInfo(HANDLE hConsoleOutput,WINBOOL bAbsolute,CONST SMALL_RECT *lpConsoleWindow); 244 WINBASEAPI WINBOOL WINAPI SetConsoleTextAttribute(HANDLE hConsoleOutput,WORD wAttributes); 245 WINBASEAPI WINBOOL WINAPI SetConsoleCtrlHandler(PHANDLER_ROUTINE HandlerRoutine,WINBOOL Add); 246 WINBASEAPI WINBOOL WINAPI GenerateConsoleCtrlEvent(DWORD dwCtrlEvent,DWORD dwProcessGroupId); 247 WINBASEAPI WINBOOL WINAPI AllocConsole(VOID); 248 WINBASEAPI WINBOOL WINAPI FreeConsole(VOID); 249 WINBASEAPI WINBOOL WINAPI AttachConsole(DWORD dwProcessId); 250 251 #define ATTACH_PARENT_PROCESS ((DWORD)-1) 252 253 WINBASEAPI DWORD WINAPI GetConsoleTitleA(LPSTR lpConsoleTitle,DWORD nSize); 254 WINBASEAPI DWORD WINAPI GetConsoleTitleW(LPWSTR lpConsoleTitle,DWORD nSize); 255 WINBASEAPI WINBOOL WINAPI SetConsoleTitleA(LPCSTR lpConsoleTitle); 256 WINBASEAPI WINBOOL WINAPI SetConsoleTitleW(LPCWSTR lpConsoleTitle); 257 WINBASEAPI WINBOOL WINAPI ReadConsoleA(HANDLE hConsoleInput,LPVOID lpBuffer,DWORD nNumberOfCharsToRead,LPDWORD lpNumberOfCharsRead,LPVOID lpReserved); 258 WINBASEAPI WINBOOL WINAPI ReadConsoleW(HANDLE hConsoleInput,LPVOID lpBuffer,DWORD nNumberOfCharsToRead,LPDWORD lpNumberOfCharsRead,LPVOID lpReserved); 259 WINBASEAPI WINBOOL WINAPI WriteConsoleA(HANDLE hConsoleOutput,CONST VOID *lpBuffer,DWORD nNumberOfCharsToWrite,LPDWORD lpNumberOfCharsWritten,LPVOID lpReserved); 260 WINBASEAPI WINBOOL WINAPI WriteConsoleW(HANDLE hConsoleOutput,CONST VOID *lpBuffer,DWORD nNumberOfCharsToWrite,LPDWORD lpNumberOfCharsWritten,LPVOID lpReserved); 261 262 #define CONSOLE_TEXTMODE_BUFFER 1 263 264 WINBASEAPI HANDLE WINAPI CreateConsoleScreenBuffer(DWORD dwDesiredAccess,DWORD dwShareMode,CONST SECURITY_ATTRIBUTES *lpSecurityAttributes,DWORD dwFlags,LPVOID lpScreenBufferData); 265 WINBASEAPI UINT WINAPI GetConsoleCP(VOID); 266 WINBASEAPI WINBOOL WINAPI SetConsoleCP(UINT wCodePageID); 267 WINBASEAPI UINT WINAPI GetConsoleOutputCP(VOID); 268 WINBASEAPI WINBOOL WINAPI SetConsoleOutputCP(UINT wCodePageID); 269 270 #define CONSOLE_FULLSCREEN 1 271 #define CONSOLE_FULLSCREEN_HARDWARE 2 272 WINBASEAPI WINBOOL WINAPI GetConsoleDisplayMode(LPDWORD lpModeFlags); 273 274 #define CONSOLE_FULLSCREEN_MODE 1 275 #define CONSOLE_WINDOWED_MODE 2 276 WINBASEAPI WINBOOL WINAPI SetConsoleDisplayMode(HANDLE hConsoleOutput, DWORD dwFlags, PCOORD lpNewScreenBufferDimensions); 277 278 WINBASEAPI HWND WINAPI GetConsoleWindow(VOID); 279 WINBASEAPI DWORD WINAPI GetConsoleProcessList(LPDWORD lpdwProcessList,DWORD dwProcessCount); 280 WINBASEAPI WINBOOL WINAPI AddConsoleAliasA(LPSTR Source,LPSTR Target,LPSTR ExeName); 281 WINBASEAPI WINBOOL WINAPI AddConsoleAliasW(LPWSTR Source,LPWSTR Target,LPWSTR ExeName); 282 WINBASEAPI DWORD WINAPI GetConsoleAliasA(LPSTR Source,LPSTR TargetBuffer,DWORD TargetBufferLength,LPSTR ExeName); 283 WINBASEAPI DWORD WINAPI GetConsoleAliasW(LPWSTR Source,LPWSTR TargetBuffer,DWORD TargetBufferLength,LPWSTR ExeName); 284 WINBASEAPI DWORD WINAPI GetConsoleAliasesLengthA(LPSTR ExeName); 285 WINBASEAPI DWORD WINAPI GetConsoleAliasesLengthW(LPWSTR ExeName); 286 WINBASEAPI DWORD WINAPI GetConsoleAliasExesLengthA(VOID); 287 WINBASEAPI DWORD WINAPI GetConsoleAliasExesLengthW(VOID); 288 WINBASEAPI DWORD WINAPI GetConsoleAliasesA(LPSTR AliasBuffer,DWORD AliasBufferLength,LPSTR ExeName); 289 WINBASEAPI DWORD WINAPI GetConsoleAliasesW(LPWSTR AliasBuffer,DWORD AliasBufferLength,LPWSTR ExeName); 290 WINBASEAPI DWORD WINAPI GetConsoleAliasExesA(LPSTR ExeNameBuffer,DWORD ExeNameBufferLength); 291 WINBASEAPI DWORD WINAPI GetConsoleAliasExesW(LPWSTR ExeNameBuffer,DWORD ExeNameBufferLength); 292 293 #ifndef LF_FACESIZE 294 #define LF_FACESIZE 32 295 #endif 296 297 typedef struct _CONSOLE_FONT_INFOEX { 298 ULONG cbSize; 299 DWORD nFont; 300 COORD dwFontSize; 301 UINT FontFamily; 302 UINT FontWeight; 303 WCHAR FaceName[LF_FACESIZE]; 304 } CONSOLE_FONT_INFOEX, *PCONSOLE_FONT_INFOEX; 305 306 typedef struct _CONSOLE_HISTORY_INFO { 307 UINT cbSize; 308 UINT HistoryBufferSize; 309 UINT NumberOfHistoryBuffers; 310 DWORD dwFlags; 311 } CONSOLE_HISTORY_INFO, *PCONSOLE_HISTORY_INFO; 312 313 typedef struct _CONSOLE_READCONSOLE_CONTROL { 314 ULONG nLength; 315 ULONG nInitialChars; 316 ULONG dwCtrlWakeupMask; 317 ULONG dwControlKeyState; 318 } CONSOLE_READCONSOLE_CONTROL, *PCONSOLE_READCONSOLE_CONTROL; 319 320 typedef struct _CONSOLE_SCREEN_BUFFER_INFOEX { 321 ULONG cbSize; 322 COORD dwSize; 323 COORD dwCursorPosition; 324 WORD wAttributes; 325 SMALL_RECT srWindow; 326 COORD dwMaximumWindowSize; 327 WORD wPopupAttributes; 328 WINBOOL bFullscreenSupported; 329 COLORREF ColorTable[16]; 330 } CONSOLE_SCREEN_BUFFER_INFOEX, *PCONSOLE_SCREEN_BUFFER_INFOEX; 331 332 WINBOOL WINAPI GetConsoleHistoryInfo( 333 PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo 334 ); 335 336 #if (_WIN32_WINNT >= 0x0600) 337 #define GetConsoleOriginalTitle __MINGW_NAME_AW(GetConsoleOriginalTitle) 338 339 WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleA( 340 LPSTR lpConsoleTitle, 341 DWORD nSize 342 ); 343 344 WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleW( 345 LPWSTR lpConsoleTitle, 346 DWORD nSize 347 ); 348 #endif /* (_WIN32_WINNT >= 0x0600) */ 349 350 WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfoEx( 351 HANDLE hConsoleOutput, 352 PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx 353 ); 354 355 WINBASEAPI WINBOOL WINAPI GetCurrentConsoleFontEx( 356 HANDLE hConsoleOutput, 357 WINBOOL bMaximumWindow, 358 PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx 359 ); 360 361 WINBASEAPI WINBOOL WINAPI SetConsoleHistoryInfo( 362 PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo 363 ); 364 365 WINBASEAPI WINBOOL WINAPI SetConsoleScreenBufferInfoEx( 366 HANDLE hConsoleOutput, 367 PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx 368 ); 369 370 WINBASEAPI WINBOOL WINAPI SetCurrentConsoleFontEx( 371 HANDLE hConsoleOutput, 372 WINBOOL bMaximumWindow, 373 PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx 374 ); 375 376 #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ 377 378 #ifdef __cplusplus 379 } 380 #endif 381 #endif 382