Something went wrong. Try again.
Reactos
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045/* * wincon.h * * Console API definitions * * This file is part of the ReactOS PSDK package. * * Contributors: * Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org> * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAIMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */
#ifndef _WINCON_#define _WINCON_
#ifdef __cplusplusextern "C" {#endif
#if (_WIN32_WINNT >= _WIN32_WINNT_VISTA) && !defined(NOGDI)#include "wingdi.h"#endif
#ifdef _MSC_VER#pragma warning(push)#pragma warning(disable:4820)#endif
/* * Special PID for parent process for AttachConsole API */#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)#define ATTACH_PARENT_PROCESS ((DWORD)-1)#endif
/* Special console handle values */#if (_WIN32_WINNT >= _WIN32_WINNT_WIN7)#define CONSOLE_REAL_OUTPUT_HANDLE (LongToHandle(-2))#define CONSOLE_REAL_INPUT_HANDLE (LongToHandle(-3))#endif
/* * Console display modes */// These flags are returned by GetConsoleDisplayMode#define CONSOLE_WINDOWED 0#define CONSOLE_FULLSCREEN 1 /* Fullscreen console */#define CONSOLE_FULLSCREEN_HARDWARE 2 /* Console owns the hardware */
// These flags are given to SetConsoleDisplayMode#define CONSOLE_FULLSCREEN_MODE 1#define CONSOLE_WINDOWED_MODE 2
/* * Color attributes for text and screen background */#define FOREGROUND_BLUE 0x0001#define FOREGROUND_GREEN 0x0002#define FOREGROUND_RED 0x0004#define FOREGROUND_INTENSITY 0x0008#define BACKGROUND_BLUE 0x0010#define BACKGROUND_GREEN 0x0020#define BACKGROUND_RED 0x0040#define BACKGROUND_INTENSITY 0x0080
#define COMMON_LVB_LEADING_BYTE 0x0100 /* DBCS Leading Byte */#define COMMON_LVB_TRAILING_BYTE 0x0200 /* DBCS Trailing Byte */#define COMMON_LVB_GRID_HORIZONTAL 0x0400 /* Grid attribute: Top Horizontal */#define COMMON_LVB_GRID_LVERTICAL 0x0800 /* Grid attribute: Left Vertical */#define COMMON_LVB_GRID_RVERTICAL 0x1000 /* Grid attribute: Right Vertical */#define COMMON_LVB_REVERSE_VIDEO 0x4000 /* Reverse fore/back ground attribute */#define COMMON_LVB_UNDERSCORE 0x8000 /* Underscore */
#define COMMON_LVB_SBCSDBCS \ (COMMON_LVB_LEADING_BYTE | COMMON_LVB_TRAILING_BYTE) /* == 0x0300 */
/* * Screen buffer types */#define CONSOLE_TEXTMODE_BUFFER 1// 2 is reserved!
/* * Control handler codes */#define CTRL_C_EVENT 0#define CTRL_BREAK_EVENT 1#define CTRL_CLOSE_EVENT 2// 3 is reserved!// 4 is reserved!#define CTRL_LOGOFF_EVENT 5#define CTRL_SHUTDOWN_EVENT 6
/* * Input mode flags */#define ENABLE_PROCESSED_INPUT 0x0001#define ENABLE_LINE_INPUT 0x0002#define ENABLE_ECHO_INPUT 0x0004#define ENABLE_WINDOW_INPUT 0x0008#define ENABLE_MOUSE_INPUT 0x0010#define ENABLE_INSERT_MODE 0x0020#define ENABLE_QUICK_EDIT_MODE 0x0040#define ENABLE_EXTENDED_FLAGS 0x0080#if (_WIN32_WINNT >= _WIN32_WINNT_VISTA)#define ENABLE_AUTO_POSITION 0x0100#endif#if (NTDDI_VERSION >= NTDDI_WIN10_RS1) // (_WIN32_WINNT >= _WIN32_WINNT_WIN10)#define ENABLE_VIRTUAL_TERMINAL_INPUT 0x0200#endif
/* * Output mode flags */#define ENABLE_PROCESSED_OUTPUT 0x0001#define ENABLE_WRAP_AT_EOL_OUTPUT 0x0002#if (NTDDI_VERSION >= NTDDI_WIN10_RS1) // (_WIN32_WINNT >= _WIN32_WINNT_WIN10)#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004#define DISABLE_NEWLINE_AUTO_RETURN 0x0008#define ENABLE_LVB_GRID_WORLDWIDE 0x0010#endif
/* * Console selection flags */#define CONSOLE_NO_SELECTION 0x0000#define CONSOLE_SELECTION_IN_PROGRESS 0x0001 /* Selection has begun */#define CONSOLE_SELECTION_NOT_EMPTY 0x0002 /* Non-null select rectangle */#define CONSOLE_MOUSE_SELECTION 0x0004 /* Selecting with mouse */#define CONSOLE_MOUSE_DOWN 0x0008 /* Mouse is down */
/* * History information and mode flags */#if (_WIN32_WINNT >= _WIN32_WINNT_VISTA)// For Get/SetConsoleHistoryInfo#define HISTORY_NO_DUP_FLAG 0x0001// For SetConsoleCommandHistoryMode#define CONSOLE_OVERSTRIKE 0x0001#endif
/* * Event types */#define KEY_EVENT 0x0001#define MOUSE_EVENT 0x0002#define WINDOW_BUFFER_SIZE_EVENT 0x0004#define MENU_EVENT 0x0008#define FOCUS_EVENT 0x0010
/* * ControlKeyState flags */#define RIGHT_ALT_PRESSED 0x0001#define LEFT_ALT_PRESSED 0x0002#define RIGHT_CTRL_PRESSED 0x0004#define LEFT_CTRL_PRESSED 0x0008#define SHIFT_PRESSED 0x0010#define NUMLOCK_ON 0x0020#define SCROLLLOCK_ON 0x0040#define CAPSLOCK_ON 0x0080#define ENHANCED_KEY 0x0100
// NLS Japanese flags#define NLS_DBCSCHAR 0x00010000 /* SBCS/DBCS mode */#define NLS_ALPHANUMERIC 0x00000000 /* Alphanumeric mode */#define NLS_KATAKANA 0x00020000 /* Katakana mode */#define NLS_HIRAGANA 0x00040000 /* Hiragana mode */#define NLS_ROMAN 0x00400000 /* Roman/Noroman mode */#define NLS_IME_CONVERSION 0x00800000 /* IME conversion *//* Reserved for EXTENDED_BIT, DONTCARE_BIT, FAKE_KEYSTROKE, ALTNUMPAD_BIT (kbd.h) */#define ALTNUMPAD_BIT 0x04000000 /* AltNumpad OEM char */#define NLS_IME_DISABLE 0x20000000 /* IME enable/disable */
/* * ButtonState flags */#define FROM_LEFT_1ST_BUTTON_PRESSED 0x0001#define RIGHTMOST_BUTTON_PRESSED 0x0002#define FROM_LEFT_2ND_BUTTON_PRESSED 0x0004#define FROM_LEFT_3RD_BUTTON_PRESSED 0x0008#define FROM_LEFT_4TH_BUTTON_PRESSED 0x0010
/* * Mouse event flags */#define MOUSE_MOVED 0x0001#define DOUBLE_CLICK 0x0002#define MOUSE_WHEELED 0x0004#if (_WIN32_WINNT >= _WIN32_WINNT_VISTA)#define MOUSE_HWHEELED 0x0008#endif
typedef struct _CONSOLE_READCONSOLE_CONTROL { ULONG nLength; ULONG nInitialChars; ULONG dwCtrlWakeupMask; ULONG dwControlKeyState;} CONSOLE_READCONSOLE_CONTROL, *PCONSOLE_READCONSOLE_CONTROL;
typedef struct _CHAR_INFO { union { WCHAR UnicodeChar; CHAR AsciiChar; } Char; WORD Attributes;} CHAR_INFO,*PCHAR_INFO;
typedef struct _SMALL_RECT { SHORT Left; SHORT Top; SHORT Right; SHORT Bottom;} SMALL_RECT,*PSMALL_RECT;
typedef struct _CONSOLE_CURSOR_INFO { DWORD dwSize; BOOL bVisible;} CONSOLE_CURSOR_INFO,*PCONSOLE_CURSOR_INFO;
typedef struct _COORD { SHORT X; SHORT Y;} COORD, *PCOORD;
typedef struct _CONSOLE_SELECTION_INFO { DWORD dwFlags; COORD dwSelectionAnchor; SMALL_RECT srSelection;} CONSOLE_SELECTION_INFO, *PCONSOLE_SELECTION_INFO;
typedef struct _CONSOLE_FONT_INFO { DWORD nFont; COORD dwFontSize;} CONSOLE_FONT_INFO, *PCONSOLE_FONT_INFO;
typedef struct _CONSOLE_SCREEN_BUFFER_INFO { COORD dwSize; COORD dwCursorPosition; WORD wAttributes; SMALL_RECT srWindow; COORD dwMaximumWindowSize;} CONSOLE_SCREEN_BUFFER_INFO,*PCONSOLE_SCREEN_BUFFER_INFO;
typedef BOOL(WINAPI *PHANDLER_ROUTINE)( _In_ DWORD CtrlType);
typedef struct _KEY_EVENT_RECORD { BOOL bKeyDown; WORD wRepeatCount; WORD wVirtualKeyCode; WORD wVirtualScanCode; union { WCHAR UnicodeChar; CHAR AsciiChar; } uChar; DWORD dwControlKeyState;} KEY_EVENT_RECORD, *PKEY_EVENT_RECORD;
C_ASSERT(FIELD_OFFSET(KEY_EVENT_RECORD, uChar) == 0xA);
typedef struct _MOUSE_EVENT_RECORD { COORD dwMousePosition; DWORD dwButtonState; DWORD dwControlKeyState; DWORD dwEventFlags;} MOUSE_EVENT_RECORD, *PMOUSE_EVENT_RECORD;
typedef struct _WINDOW_BUFFER_SIZE_RECORD { COORD dwSize;} WINDOW_BUFFER_SIZE_RECORD, *PWINDOW_BUFFER_SIZE_RECORD;
typedef struct _MENU_EVENT_RECORD { UINT dwCommandId;} MENU_EVENT_RECORD, *PMENU_EVENT_RECORD;
typedef struct _FOCUS_EVENT_RECORD { BOOL bSetFocus;} FOCUS_EVENT_RECORD, *PFOCUS_EVENT_RECORD;
typedef struct _INPUT_RECORD { WORD EventType; union { KEY_EVENT_RECORD KeyEvent; MOUSE_EVENT_RECORD MouseEvent; WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent; MENU_EVENT_RECORD MenuEvent; FOCUS_EVENT_RECORD FocusEvent; } Event;} INPUT_RECORD, *PINPUT_RECORD;
#if (_WIN32_WINNT >= _WIN32_WINNT_VISTA)typedef struct _CONSOLE_HISTORY_INFO { UINT cbSize; UINT HistoryBufferSize; UINT NumberOfHistoryBuffers; DWORD dwFlags;} CONSOLE_HISTORY_INFO, *PCONSOLE_HISTORY_INFO;
typedef struct _CONSOLE_SCREEN_BUFFER_INFOEX { ULONG cbSize; COORD dwSize; COORD dwCursorPosition; WORD wAttributes; SMALL_RECT srWindow; COORD dwMaximumWindowSize; WORD wPopupAttributes; BOOL bFullscreenSupported; COLORREF ColorTable[16];} CONSOLE_SCREEN_BUFFER_INFOEX, *PCONSOLE_SCREEN_BUFFER_INFOEX;
#ifndef NOGDItypedef struct _CONSOLE_FONT_INFOEX { ULONG cbSize; DWORD nFont; COORD dwFontSize; UINT FontFamily; UINT FontWeight; WCHAR FaceName[LF_FACESIZE];} CONSOLE_FONT_INFOEX, *PCONSOLE_FONT_INFOEX;#endif#endif // (_WIN32_WINNT >= _WIN32_WINNT_VISTA)
WINBASEAPIBOOLWINAPIAllocConsole(VOID);
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)WINBASEAPIBOOLWINAPIAttachConsole( _In_ DWORD dwProcessId);#endif
#if (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
WINBASEAPIDWORDWINAPIGetConsoleProcessList( _Out_writes_(dwProcessCount) LPDWORD lpdwProcessList, _In_ DWORD dwProcessCount);
WINBASEAPIBOOLWINAPIAddConsoleAliasA( _In_ LPCSTR Source, _In_ LPCSTR Target, _In_ LPCSTR ExeName);
WINBASEAPIBOOLWINAPIAddConsoleAliasW( _In_ LPCWSTR Source, _In_ LPCWSTR Target, _In_ LPCWSTR ExeName);
WINBASEAPIDWORDWINAPIGetConsoleAliasA( _In_ LPCSTR Source, _Out_writes_(TargetBufferLength) LPSTR TargetBuffer, _In_ DWORD TargetBufferLength, _In_ LPCSTR ExeName);
WINBASEAPIDWORDWINAPIGetConsoleAliasW( _In_ LPCWSTR Source, _Out_writes_(TargetBufferLength) LPWSTR TargetBuffer, _In_ DWORD TargetBufferLength, _In_ LPCWSTR ExeName);
WINBASEAPIDWORDWINAPIGetConsoleAliasesA( _Out_writes_(AliasBufferLength) LPSTR AliasBuffer, _In_ DWORD AliasBufferLength, _In_ LPCSTR ExeName);
WINBASEAPIDWORDWINAPIGetConsoleAliasesW( _Out_writes_(AliasBufferLength) LPWSTR AliasBuffer, _In_ DWORD AliasBufferLength, _In_ LPCWSTR ExeName);
WINBASEAPIDWORDWINAPIGetConsoleAliasesLengthA( _In_ LPCSTR ExeName);
WINBASEAPIDWORDWINAPIGetConsoleAliasesLengthW( _In_ LPCWSTR ExeName);
WINBASEAPIDWORDWINAPIGetConsoleAliasExesA( _Out_writes_(ExeNameBufferLength) LPSTR ExeNameBuffer, _In_ DWORD ExeNameBufferLength);
WINBASEAPIDWORDWINAPIGetConsoleAliasExesW( _Out_writes_(ExeNameBufferLength) LPWSTR ExeNameBuffer, _In_ DWORD ExeNameBufferLength);
WINBASEAPIDWORDWINAPIGetConsoleAliasExesLengthA(VOID);
WINBASEAPIDWORDWINAPIGetConsoleAliasExesLengthW(VOID);
#endif // (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
WINBASEAPIHANDLEWINAPICreateConsoleScreenBuffer( _In_ DWORD dwDesiredAccess, _In_ DWORD dwShareMode, _In_opt_ CONST SECURITY_ATTRIBUTES *lpSecurityAttributes, _In_ DWORD dwFlags, _Reserved_ LPVOID lpScreenBufferData);
WINBASEAPIBOOLWINAPIFillConsoleOutputAttribute( _In_ HANDLE hConsoleOutput, _In_ WORD wAttribute, _In_ DWORD nLength, _In_ COORD dwWriteCoord, _Out_ LPDWORD lpNumberOfAttrsWritten);
WINBASEAPIBOOLWINAPIFillConsoleOutputCharacterA( _In_ HANDLE hConsoleOutput, _In_ CHAR cCharacter, _In_ DWORD nLength, _In_ COORD dwWriteCoord, _Out_ LPDWORD lpNumberOfCharsWritten);
WINBASEAPIBOOLWINAPIFillConsoleOutputCharacterW( _In_ HANDLE hConsoleOutput, _In_ WCHAR cCharacter, _In_ DWORD nLength, _In_ COORD dwWriteCoord, _Out_ LPDWORD lpNumberOfCharsWritten);
WINBASEAPIBOOLWINAPIFlushConsoleInputBuffer( _In_ HANDLE hConsoleInput);
WINBASEAPIBOOLWINAPIFreeConsole(VOID);
WINBASEAPIBOOLWINAPIGenerateConsoleCtrlEvent( _In_ DWORD dwCtrlEvent, _In_ DWORD dwProcessGroupId);
WINBASEAPIUINTWINAPIGetConsoleCP(VOID);
WINBASEAPIBOOLWINAPIGetConsoleCursorInfo( _In_ HANDLE hConsoleOutput, _Out_ PCONSOLE_CURSOR_INFO lpConsoleCursorInfo);
WINBASEAPIBOOLWINAPIGetConsoleMode( _In_ HANDLE hConsoleHandle, _Out_ LPDWORD lpMode);
WINBASEAPIUINTWINAPIGetConsoleOutputCP(VOID);
WINBASEAPIBOOLWINAPIGetConsoleScreenBufferInfo( _In_ HANDLE hConsoleOutput, _Out_ PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo);
#if (_WIN32_WINNT >= _WIN32_WINNT_VISTA)WINBASEAPIBOOLWINAPIGetConsoleScreenBufferInfoEx( _In_ HANDLE hConsoleOutput, _Inout_ PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx);
WINBASEAPIBOOLWINAPISetConsoleScreenBufferInfoEx( _In_ HANDLE hConsoleOutput, _In_ PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx);#endif // (_WIN32_WINNT >= _WIN32_WINNT_VISTA)
WINBASEAPIDWORDWINAPIGetConsoleTitleA( _Out_writes_(nSize) LPSTR lpConsoleTitle, _In_ DWORD nSize);
WINBASEAPIDWORDWINAPIGetConsoleTitleW( _Out_writes_(nSize) LPWSTR lpConsoleTitle, _In_ DWORD nSize);
#if (_WIN32_WINNT >= _WIN32_WINNT_VISTA)
WINBASEAPIDWORDWINAPIGetConsoleOriginalTitleA( _Out_writes_(nSize) LPSTR lpConsoleTitle, _In_ DWORD nSize);
WINBASEAPIDWORDWINAPIGetConsoleOriginalTitleW( _Out_writes_(nSize) LPWSTR lpConsoleTitle, _In_ DWORD nSize);
#ifndef NOGDIWINBASEAPIBOOLWINAPIGetCurrentConsoleFontEx( _In_ HANDLE hConsoleOutput, _In_ BOOL bMaximumWindow, _Out_ PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx);
WINBASEAPIBOOLWINAPISetCurrentConsoleFontEx( _In_ HANDLE hConsoleOutput, _In_ BOOL bMaximumWindow, _In_ PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx);#endif
WINBASEAPIBOOLWINAPIGetConsoleHistoryInfo( _Out_ PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo);
WINBASEAPIBOOLWINAPISetConsoleHistoryInfo( _In_ PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo);
#endif // (_WIN32_WINNT >= _WIN32_WINNT_VISTA)
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
WINBASEAPIBOOLWINAPIGetCurrentConsoleFont( _In_ HANDLE hConsoleOutput, _In_ BOOL bMaximumWindow, _Out_ PCONSOLE_FONT_INFO lpConsoleCurrentFont);
WINBASEAPICOORDWINAPIGetConsoleFontSize( _In_ HANDLE hConsoleOutput, _In_ DWORD nFont);
WINBASEAPIBOOLWINAPIGetConsoleSelectionInfo( _Out_ PCONSOLE_SELECTION_INFO lpConsoleSelectionInfo);
WINBASEAPIHWNDWINAPIGetConsoleWindow(VOID);
WINBASEAPIBOOLWINAPIGetConsoleDisplayMode( _Out_ LPDWORD lpModeFlags);
WINBASEAPIBOOLWINAPISetConsoleDisplayMode( _In_ HANDLE hConsoleOutput, _In_ DWORD dwFlags, _Out_opt_ PCOORD lpNewScreenBufferDimensions);
#endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
WINBASEAPICOORDWINAPIGetLargestConsoleWindowSize( _In_ HANDLE hConsoleOutput);
WINBASEAPIBOOLWINAPIGetNumberOfConsoleInputEvents( _In_ HANDLE hConsoleInput, _Out_ LPDWORD lpNumberOfEvents);
WINBASEAPIBOOLWINAPIGetNumberOfConsoleMouseButtons( _Out_ LPDWORD lpNumberOfMouseButtons);
WINBASEAPI_Success_(return != FALSE)BOOLWINAPI PeekConsoleInputA( _In_ HANDLE hConsoleInput, _Out_writes_(nLength) PINPUT_RECORD lpBuffer, _In_ DWORD nLength, _Out_ LPDWORD lpNumberOfEventsRead);
WINBASEAPI_Success_(return != FALSE)BOOLWINAPIPeekConsoleInputW( _In_ HANDLE hConsoleInput, _Out_writes_(nLength) PINPUT_RECORD lpBuffer, _In_ DWORD nLength, _Out_ LPDWORD lpNumberOfEventsRead);
WINBASEAPI_Success_(return != FALSE)BOOLWINAPIReadConsoleA( _In_ HANDLE hConsoleInput, _Out_writes_bytes_to_(nNumberOfCharsToRead * sizeof(CHAR), *lpNumberOfCharsRead * sizeof(CHAR)) LPVOID lpBuffer, _In_ DWORD nNumberOfCharsToRead, _Out_ _Deref_out_range_(<=, nNumberOfCharsToRead) LPDWORD lpNumberOfCharsRead, _In_opt_ PCONSOLE_READCONSOLE_CONTROL pInputControl);
WINBASEAPI_Success_(return != FALSE)BOOLWINAPIReadConsoleW( _In_ HANDLE hConsoleInput, _Out_writes_bytes_to_(nNumberOfCharsToRead * sizeof(WCHAR), *lpNumberOfCharsRead * sizeof(WCHAR)) LPVOID lpBuffer, _In_ DWORD nNumberOfCharsToRead, _Out_ _Deref_out_range_(<=, nNumberOfCharsToRead) LPDWORD lpNumberOfCharsRead, _In_opt_ PCONSOLE_READCONSOLE_CONTROL pInputControl);
WINBASEAPI_Success_(return != FALSE)BOOLWINAPIReadConsoleInputA( _In_ HANDLE hConsoleInput, _Out_writes_to_(nLength, *lpNumberOfEventsRead) PINPUT_RECORD lpBuffer, _In_ DWORD nLength, _Out_ _Deref_out_range_(<=, nLength) LPDWORD lpNumberOfEventsRead);
WINBASEAPI_Success_(return != FALSE)BOOLWINAPIReadConsoleInputW( _In_ HANDLE hConsoleInput, _Out_writes_to_(nLength, *lpNumberOfEventsRead) PINPUT_RECORD lpBuffer, _In_ DWORD nLength, _Out_ _Deref_out_range_(<=, nLength) LPDWORD lpNumberOfEventsRead);
WINBASEAPIBOOLWINAPIReadConsoleOutputAttribute( _In_ HANDLE hConsoleOutput, _Out_writes_(nLength) LPWORD lpAttribute, _In_ DWORD nLength, _In_ COORD dwReadCoord, _Out_ LPDWORD lpNumberOfAttrsRead);
WINBASEAPIBOOLWINAPIReadConsoleOutputCharacterA( _In_ HANDLE hConsoleOutput, _Out_writes_(nLength) LPSTR lpCharacter, _In_ DWORD nLength, _In_ COORD dwReadCoord, _Out_ LPDWORD lpNumberOfCharsRead);
WINBASEAPIBOOLWINAPIReadConsoleOutputCharacterW( _In_ HANDLE hConsoleOutput, _Out_writes_(nLength) LPWSTR lpCharacter, _In_ DWORD nLength, _In_ COORD dwReadCoord, _Out_ LPDWORD lpNumberOfCharsRead);
WINBASEAPIBOOLWINAPIReadConsoleOutputA( _In_ HANDLE hConsoleOutput, _Out_writes_(dwBufferSize.X * dwBufferSize.Y) PCHAR_INFO lpBuffer, _In_ COORD dwBufferSize, _In_ COORD dwBufferCoord, _Inout_ PSMALL_RECT lpReadRegion);
WINBASEAPIBOOLWINAPIReadConsoleOutputW( _In_ HANDLE hConsoleOutput, _Out_writes_(dwBufferSize.X * dwBufferSize.Y) PCHAR_INFO lpBuffer, _In_ COORD dwBufferSize, _In_ COORD dwBufferCoord, _Inout_ PSMALL_RECT lpReadRegion);
WINBASEAPIBOOLWINAPIScrollConsoleScreenBufferA( _In_ HANDLE hConsoleOutput, _In_ CONST SMALL_RECT *lpScrollRectangle, _In_opt_ CONST SMALL_RECT *lpClipRectangle, _In_ COORD dwDestinationOrigin, _In_ CONST CHAR_INFO *lpFill);
WINBASEAPIBOOLWINAPIScrollConsoleScreenBufferW( _In_ HANDLE hConsoleOutput, _In_ CONST SMALL_RECT *lpScrollRectangle, _In_opt_ CONST SMALL_RECT *lpClipRectangle, _In_ COORD dwDestinationOrigin, _In_ CONST CHAR_INFO *lpFill);
WINBASEAPIBOOLWINAPISetConsoleActiveScreenBuffer( _In_ HANDLE hConsoleOutput);
WINBASEAPIBOOLWINAPISetConsoleCP( _In_ UINT wCodePageID);
WINBASEAPIBOOLWINAPISetConsoleCtrlHandler( _In_opt_ PHANDLER_ROUTINE HandlerRoutine, _In_ BOOL Add);
WINBASEAPIBOOLWINAPISetConsoleCursorInfo( _In_ HANDLE hConsoleOutput, _In_ CONST CONSOLE_CURSOR_INFO *lpConsoleCursorInfo);
WINBASEAPIBOOLWINAPISetConsoleCursorPosition( _In_ HANDLE hConsoleOutput, _In_ COORD dwCursorPosition);
WINBASEAPIBOOLWINAPISetConsoleMode( _In_ HANDLE hConsoleHandle, _In_ DWORD dwMode);
WINBASEAPIBOOLWINAPISetConsoleOutputCP( _In_ UINT wCodePageID);
WINBASEAPIBOOLWINAPISetConsoleScreenBufferSize( _In_ HANDLE hConsoleOutput, _In_ COORD dwSize);
WINBASEAPIBOOLWINAPISetConsoleTextAttribute( _In_ HANDLE hConsoleOutput, _In_ WORD wAttributes);
WINBASEAPIBOOLWINAPISetConsoleTitleA( _In_ LPCSTR lpConsoleTitle);
WINBASEAPIBOOLWINAPISetConsoleTitleW( _In_ LPCWSTR lpConsoleTitle);
WINBASEAPIBOOLWINAPISetConsoleWindowInfo( _In_ HANDLE hConsoleOutput, _In_ BOOL bAbsolute, _In_ CONST SMALL_RECT *lpConsoleWindow);
WINBASEAPIBOOLWINAPIWriteConsoleA( _In_ HANDLE hConsoleOutput, _In_reads_(nNumberOfCharsToWrite) CONST VOID *lpBuffer, _In_ DWORD nNumberOfCharsToWrite, _Out_opt_ LPDWORD lpNumberOfCharsWritten, _Reserved_ LPVOID lpReserved);
WINBASEAPIBOOLWINAPIWriteConsoleW( _In_ HANDLE hConsoleOutput, _In_reads_(nNumberOfCharsToWrite) CONST VOID *lpBuffer, _In_ DWORD nNumberOfCharsToWrite, _Out_opt_ LPDWORD lpNumberOfCharsWritten, _Reserved_ LPVOID lpReserved);
WINBASEAPIBOOLWINAPIWriteConsoleInputA( _In_ HANDLE hConsoleInput, _In_reads_(nLength) CONST INPUT_RECORD *lpBuffer, _In_ DWORD nLength, _Out_ LPDWORD lpNumberOfEventsWritten);
WINBASEAPIBOOLWINAPIWriteConsoleInputW( _In_ HANDLE hConsoleInput, _In_reads_(nLength) CONST INPUT_RECORD *lpBuffer, _In_ DWORD nLength, _Out_ LPDWORD lpNumberOfEventsWritten);
WINBASEAPIBOOLWINAPIWriteConsoleOutputA( _In_ HANDLE hConsoleOutput, _In_reads_(dwBufferSize.X * dwBufferSize.Y) CONST CHAR_INFO *lpBuffer, _In_ COORD dwBufferSize, _In_ COORD dwBufferCoord, _Inout_ PSMALL_RECT lpWriteRegion);
WINBASEAPIBOOLWINAPIWriteConsoleOutputW( _In_ HANDLE hConsoleOutput, _In_reads_(dwBufferSize.X * dwBufferSize.Y) CONST CHAR_INFO *lpBuffer, _In_ COORD dwBufferSize, _In_ COORD dwBufferCoord, _Inout_ PSMALL_RECT lpWriteRegion);
WINBASEAPIBOOLWINAPIWriteConsoleOutputAttribute( _In_ HANDLE hConsoleOutput, _In_reads_(nLength) CONST WORD *lpAttribute, _In_ DWORD nLength, _In_ COORD dwWriteCoord, _Out_ LPDWORD lpNumberOfAttrsWritten);
WINBASEAPIBOOLWINAPIWriteConsoleOutputCharacterA( _In_ HANDLE hConsoleOutput, _In_reads_(nLength) LPCSTR lpCharacter, _In_ DWORD nLength, _In_ COORD dwWriteCoord, _Out_ LPDWORD lpNumberOfCharsWritten);
WINBASEAPIBOOLWINAPIWriteConsoleOutputCharacterW( _In_ HANDLE hConsoleOutput, _In_reads_(nLength) LPCWSTR lpCharacter, _In_ DWORD nLength, _In_ COORD dwWriteCoord, _Out_ LPDWORD lpNumberOfCharsWritten);
#if (NTDDI_VERSION >= NTDDI_WIN10_RS5)// typedef VOID *HPCON;// CreatePseudoConsole()// ResizePseudoConsole()// ClosePseudoConsole()#endif // (NTDDI_VERSION >= NTDDI_WIN10_RS5)
#if (NTDDI_VERSION >= NTDDI_WIN11_GE)/* See https://github.com/microsoft/terminal/blob/main/doc/specs/%237335%20-%20Console%20Allocation%20Policy.md * and https://github.com/MicrosoftDocs/Console-Docs/pull/323 */// ALLOC_CONSOLE_MODE, ALLOC_CONSOLE_OPTIONS, ALLOC_CONSOLE_RESULT// AllocConsoleWithOptions()// ReleasePseudoConsole()#endif // (NTDDI_VERSION >= NTDDI_WIN11_GE)
#ifdef UNICODE#define AddConsoleAlias AddConsoleAliasW#define GetConsoleAlias GetConsoleAliasW#define GetConsoleAliases GetConsoleAliasesW#define GetConsoleAliasesLength GetConsoleAliasesLengthW#define GetConsoleAliasExes GetConsoleAliasExesW#define GetConsoleAliasExesLength GetConsoleAliasExesLengthW#define GetConsoleTitle GetConsoleTitleW#define GetConsoleOriginalTitle GetConsoleOriginalTitleW#define PeekConsoleInput PeekConsoleInputW#define ReadConsole ReadConsoleW#define ReadConsoleInput ReadConsoleInputW#define ReadConsoleOutput ReadConsoleOutputW#define ReadConsoleOutputCharacter ReadConsoleOutputCharacterW#define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferW#define SetConsoleTitle SetConsoleTitleW#define WriteConsole WriteConsoleW#define WriteConsoleInput WriteConsoleInputW#define WriteConsoleOutput WriteConsoleOutputW#define FillConsoleOutputCharacter FillConsoleOutputCharacterW#define WriteConsoleOutputCharacter WriteConsoleOutputCharacterW#else#define AddConsoleAlias AddConsoleAliasA#define GetConsoleAlias GetConsoleAliasA#define GetConsoleAliases GetConsoleAliasesA#define GetConsoleAliasesLength GetConsoleAliasesLengthA#define GetConsoleAliasExes GetConsoleAliasExesA#define GetConsoleAliasExesLength GetConsoleAliasExesLengthA#define GetConsoleTitle GetConsoleTitleA#define GetConsoleOriginalTitle GetConsoleOriginalTitleA#define PeekConsoleInput PeekConsoleInputA#define ReadConsole ReadConsoleA#define ReadConsoleInput ReadConsoleInputA#define ReadConsoleOutput ReadConsoleOutputA#define ReadConsoleOutputCharacter ReadConsoleOutputCharacterA#define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferA#define SetConsoleTitle SetConsoleTitleA#define WriteConsole WriteConsoleA#define WriteConsoleInput WriteConsoleInputA#define WriteConsoleOutput WriteConsoleOutputA#define FillConsoleOutputCharacter FillConsoleOutputCharacterA#define WriteConsoleOutputCharacter WriteConsoleOutputCharacterA#endif
#ifdef _MSC_VER#pragma warning(pop)#endif
#ifdef __cplusplus}#endif
#endif /* _WINCON_ */