--- mstools/h/wincon.h 2018/08/09 18:20:01 1.1 +++ mstools/h/wincon.h 2018/08/09 18:20:33 1.1.1.2 @@ -4,7 +4,7 @@ Copyright (c) 1989 Microsoft Corporatio Module Name: - console.h + wincon.x Abstract: @@ -88,12 +88,22 @@ typedef struct _WINDOW_BUFFER_SIZE_RECOR 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; @@ -104,6 +114,8 @@ typedef struct _INPUT_RECORD { #define KEY_EVENT 0x0001 // Event contains key event record #define MOUSE_EVENT 0x0002 // Event contains mouse event record #define WINDOW_BUFFER_SIZE_EVENT 0x0004 // Event contains window change event record +#define MENU_EVENT 0x0008 // Event contains menu event record +#define FOCUS_EVENT 0x0010 // event contains focus change typedef struct _CHAR_INFO { union { @@ -147,11 +159,12 @@ typedef struct _CONSOLE_CURSOR_INFO { typedef BOOL (*PHANDLER_ROUTINE)( - IN ULONG CtrlType + DWORD CtrlType ); #define CTRL_C_EVENT 0 #define CTRL_BREAK_EVENT 1 +#define CTRL_CLOSE_EVENT 2 // // Input Mode flags: @@ -176,60 +189,141 @@ BOOL BOOL APIENTRY -PeekConsoleInput( +PeekConsoleInputA( + HANDLE hConsoleInput, + PINPUT_RECORD lpBuffer, + DWORD nLength, + LPDWORD lpNumberOfEventsRead + ); +BOOL +APIENTRY +PeekConsoleInputW( HANDLE hConsoleInput, PINPUT_RECORD lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsRead ); +#ifdef UNICODE +#define PeekConsoleInput PeekConsoleInputW +#else +#define PeekConsoleInput PeekConsoleInputA +#endif // !UNICODE BOOL APIENTRY -ReadConsoleInput( +ReadConsoleInputA( HANDLE hConsoleInput, PINPUT_RECORD lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsRead ); +BOOL +APIENTRY +ReadConsoleInputW( + HANDLE hConsoleInput, + PINPUT_RECORD lpBuffer, + DWORD nLength, + LPDWORD lpNumberOfEventsRead + ); +#ifdef UNICODE +#define ReadConsoleInput ReadConsoleInputW +#else +#define ReadConsoleInput ReadConsoleInputA +#endif // !UNICODE BOOL APIENTRY -WriteConsoleInput( +WriteConsoleInputA( HANDLE hConsoleInput, PINPUT_RECORD lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsWritten ); +BOOL +APIENTRY +WriteConsoleInputW( + HANDLE hConsoleInput, + PINPUT_RECORD lpBuffer, + DWORD nLength, + LPDWORD lpNumberOfEventsWritten + ); +#ifdef UNICODE +#define WriteConsoleInput WriteConsoleInputW +#else +#define WriteConsoleInput WriteConsoleInputA +#endif // !UNICODE BOOL APIENTRY -ReadConsoleOutput( +ReadConsoleOutputA( HANDLE hConsoleOutput, PCHAR_INFO lpBuffer, COORD dwBufferSize, COORD dwBufferCoord, PSMALL_RECT lpReadRegion ); +BOOL +APIENTRY +ReadConsoleOutputW( + HANDLE hConsoleOutput, + PCHAR_INFO lpBuffer, + COORD dwBufferSize, + COORD dwBufferCoord, + PSMALL_RECT lpReadRegion + ); +#ifdef UNICODE +#define ReadConsoleOutput ReadConsoleOutputW +#else +#define ReadConsoleOutput ReadConsoleOutputA +#endif // !UNICODE BOOL APIENTRY -WriteConsoleOutput( +WriteConsoleOutputA( + HANDLE hConsoleOutput, + PCHAR_INFO lpBuffer, + COORD dwBufferSize, + COORD dwBufferCoord, + PSMALL_RECT lpWriteRegion + ); +BOOL +APIENTRY +WriteConsoleOutputW( HANDLE hConsoleOutput, PCHAR_INFO lpBuffer, COORD dwBufferSize, COORD dwBufferCoord, PSMALL_RECT lpWriteRegion ); +#ifdef UNICODE +#define WriteConsoleOutput WriteConsoleOutputW +#else +#define WriteConsoleOutput WriteConsoleOutputA +#endif // !UNICODE BOOL APIENTRY -ReadConsoleOutputCharacter( +ReadConsoleOutputCharacterA( HANDLE hConsoleOutput, LPSTR lpCharacter, DWORD nLength, COORD dwReadCoord, LPDWORD lpNumberOfCharsRead ); +BOOL +APIENTRY +ReadConsoleOutputCharacterW( + HANDLE hConsoleOutput, + LPWSTR lpCharacter, + DWORD nLength, + COORD dwReadCoord, + LPDWORD lpNumberOfCharsRead + ); +#ifdef UNICODE +#define ReadConsoleOutputCharacter ReadConsoleOutputCharacterW +#else +#define ReadConsoleOutputCharacter ReadConsoleOutputCharacterA +#endif // !UNICODE BOOL APIENTRY @@ -243,13 +337,27 @@ ReadConsoleOutputAttribute( BOOL APIENTRY -WriteConsoleOutputCharacter( +WriteConsoleOutputCharacterA( HANDLE hConsoleOutput, LPSTR lpCharacter, DWORD nLength, COORD dwWriteCoord, LPDWORD lpNumberOfCharsWritten ); +BOOL +APIENTRY +WriteConsoleOutputCharacterW( + HANDLE hConsoleOutput, + LPWSTR lpCharacter, + DWORD nLength, + COORD dwWriteCoord, + LPDWORD lpNumberOfCharsWritten + ); +#ifdef UNICODE +#define WriteConsoleOutputCharacter WriteConsoleOutputCharacterW +#else +#define WriteConsoleOutputCharacter WriteConsoleOutputCharacterA +#endif // !UNICODE BOOL APIENTRY @@ -263,13 +371,27 @@ WriteConsoleOutputAttribute( BOOL APIENTRY -FillConsoleOutputCharacter( +FillConsoleOutputCharacterA( + HANDLE hConsoleOutput, + CHAR cCharacter, + DWORD nLength, + COORD dwWriteCoord, + LPDWORD lpNumberOfCharsWritten + ); +BOOL +APIENTRY +FillConsoleOutputCharacterW( HANDLE hConsoleOutput, - CHAR cCharacter, + WCHAR cCharacter, DWORD nLength, COORD dwWriteCoord, LPDWORD lpNumberOfCharsWritten ); +#ifdef UNICODE +#define FillConsoleOutputCharacter FillConsoleOutputCharacterW +#else +#define FillConsoleOutputCharacter FillConsoleOutputCharacterA +#endif // !UNICODE BOOL APIENTRY @@ -363,13 +485,27 @@ SetConsoleCursorInfo( BOOL APIENTRY -ScrollConsoleScreenBuffer( +ScrollConsoleScreenBufferA( + HANDLE hConsoleOutput, + PSMALL_RECT lpScrollRectangle, + PSMALL_RECT lpClipRectangle, + COORD dwDestinationOrigin, + PCHAR_INFO lpFill + ); +BOOL +APIENTRY +ScrollConsoleScreenBufferW( HANDLE hConsoleOutput, PSMALL_RECT lpScrollRectangle, PSMALL_RECT lpClipRectangle, COORD dwDestinationOrigin, PCHAR_INFO lpFill ); +#ifdef UNICODE +#define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferW +#else +#define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferA +#endif // !UNICODE BOOL APIENTRY @@ -389,10 +525,10 @@ SetConsoleTextAttribute( BOOL APIENTRY SetConsoleCtrlHandler( - IN PHANDLER_ROUTINE HandlerRoutine, - IN BOOL Add + PHANDLER_ROUTINE HandlerRoutine, + BOOL Add ); - + BOOL APIENTRY AllocConsole( VOID ); @@ -404,16 +540,81 @@ FreeConsole( VOID ); DWORD APIENTRY -GetConsoleTitle( +GetConsoleTitleA( LPSTR lpConsoleTitle, DWORD nSize ); +DWORD +APIENTRY +GetConsoleTitleW( + LPWSTR lpConsoleTitle, + DWORD nSize + ); +#ifdef UNICODE +#define GetConsoleTitle GetConsoleTitleW +#else +#define GetConsoleTitle GetConsoleTitleA +#endif // !UNICODE BOOL APIENTRY -SetConsoleTitle( +SetConsoleTitleA( LPSTR lpConsoleTitle ); +BOOL +APIENTRY +SetConsoleTitleW( + LPWSTR lpConsoleTitle + ); +#ifdef UNICODE +#define SetConsoleTitle SetConsoleTitleW +#else +#define SetConsoleTitle SetConsoleTitleA +#endif // !UNICODE + +BOOL +ReadConsoleA( + HANDLE hConsoleInput, + LPVOID lpBuffer, + DWORD nNumberOfCharsToRead, + LPDWORD lpNumberOfCharsRead, + LPVOID lpReserved + ); +BOOL +ReadConsoleW( + HANDLE hConsoleInput, + LPVOID lpBuffer, + DWORD nNumberOfCharsToRead, + LPDWORD lpNumberOfCharsRead, + LPVOID lpReserved + ); +#ifdef UNICODE +#define ReadConsole ReadConsoleW +#else +#define ReadConsole ReadConsoleA +#endif // !UNICODE + +BOOL +WriteConsoleA( + HANDLE hConsoleOutput, + CONST VOID *lpBuffer, + DWORD nNumberOfCharsToWrite, + LPDWORD lpNumberOfCharsWritten, + LPVOID lpReserved + ); +BOOL +WriteConsoleW( + HANDLE hConsoleOutput, + CONST VOID *lpBuffer, + DWORD nNumberOfCharsToWrite, + LPDWORD lpNumberOfCharsWritten, + LPVOID lpReserved + ); +#ifdef UNICODE +#define WriteConsole WriteConsoleW +#else +#define WriteConsole WriteConsoleA +#endif // !UNICODE #define CONSOLE_TEXTMODE_BUFFER 1 @@ -423,8 +624,24 @@ CreateConsoleScreenBuffer( DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, - IN DWORD dwFlags, - IN PVOID lpScreenBufferData OPTIONAL + DWORD dwFlags, + PVOID lpScreenBufferData + ); + +UINT +GetConsoleCP( VOID ); + +BOOL +SetConsoleCP( + UINT wCodePageID + ); + +UINT +GetConsoleOutputCP( VOID ); + +BOOL +SetConsoleOutputCP( + UINT wCodePageID ); #endif // _WINCON_