wincon.h 18 KB

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