--- mstools/h/wincon.h 2018/08/09 18:20:01 1.1.1.1 +++ mstools/h/wincon.h 2018/08/09 18:23:07 1.1.1.4 @@ -4,7 +4,7 @@ Copyright (c) 1989 Microsoft Corporatio Module Name: - console.h + wincon.x Abstract: @@ -22,6 +22,10 @@ Revision History: #ifndef _WINCON_ #define _WINCON_ +#ifdef __cplusplus +extern "C" { +#endif + typedef struct _COORD { SHORT X; SHORT Y; @@ -88,12 +92,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 +118,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 { @@ -146,12 +162,17 @@ typedef struct _CONSOLE_CURSOR_INFO { typedef BOOL -(*PHANDLER_ROUTINE)( - IN ULONG CtrlType +(WINAPI *PHANDLER_ROUTINE)( + DWORD CtrlType ); -#define CTRL_C_EVENT 0 -#define CTRL_BREAK_EVENT 1 +#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: @@ -175,64 +196,145 @@ BOOL // BOOL -APIENTRY -PeekConsoleInput( +WINAPI +PeekConsoleInputA( HANDLE hConsoleInput, PINPUT_RECORD lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsRead ); +BOOL +WINAPI +PeekConsoleInputW( + HANDLE hConsoleInput, + PINPUT_RECORD lpBuffer, + DWORD nLength, + LPDWORD lpNumberOfEventsRead + ); +#ifdef UNICODE +#define PeekConsoleInput PeekConsoleInputW +#else +#define PeekConsoleInput PeekConsoleInputA +#endif // !UNICODE BOOL -APIENTRY -ReadConsoleInput( +WINAPI +ReadConsoleInputA( HANDLE hConsoleInput, PINPUT_RECORD lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsRead ); +BOOL +WINAPI +ReadConsoleInputW( + HANDLE hConsoleInput, + PINPUT_RECORD lpBuffer, + DWORD nLength, + LPDWORD lpNumberOfEventsRead + ); +#ifdef UNICODE +#define ReadConsoleInput ReadConsoleInputW +#else +#define ReadConsoleInput ReadConsoleInputA +#endif // !UNICODE BOOL -APIENTRY -WriteConsoleInput( +WINAPI +WriteConsoleInputA( + HANDLE hConsoleInput, + PINPUT_RECORD lpBuffer, + DWORD nLength, + LPDWORD lpNumberOfEventsWritten + ); +BOOL +WINAPI +WriteConsoleInputW( HANDLE hConsoleInput, PINPUT_RECORD lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsWritten ); +#ifdef UNICODE +#define WriteConsoleInput WriteConsoleInputW +#else +#define WriteConsoleInput WriteConsoleInputA +#endif // !UNICODE BOOL -APIENTRY -ReadConsoleOutput( +WINAPI +ReadConsoleOutputA( HANDLE hConsoleOutput, PCHAR_INFO lpBuffer, COORD dwBufferSize, COORD dwBufferCoord, PSMALL_RECT lpReadRegion ); +BOOL +WINAPI +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( +WINAPI +WriteConsoleOutputA( + HANDLE hConsoleOutput, + PCHAR_INFO lpBuffer, + COORD dwBufferSize, + COORD dwBufferCoord, + PSMALL_RECT lpWriteRegion + ); +BOOL +WINAPI +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( +WINAPI +ReadConsoleOutputCharacterA( HANDLE hConsoleOutput, LPSTR lpCharacter, DWORD nLength, COORD dwReadCoord, LPDWORD lpNumberOfCharsRead ); +BOOL +WINAPI +ReadConsoleOutputCharacterW( + HANDLE hConsoleOutput, + LPWSTR lpCharacter, + DWORD nLength, + COORD dwReadCoord, + LPDWORD lpNumberOfCharsRead + ); +#ifdef UNICODE +#define ReadConsoleOutputCharacter ReadConsoleOutputCharacterW +#else +#define ReadConsoleOutputCharacter ReadConsoleOutputCharacterA +#endif // !UNICODE BOOL -APIENTRY +WINAPI ReadConsoleOutputAttribute( HANDLE hConsoleOutput, LPWORD lpAttribute, @@ -242,17 +344,31 @@ ReadConsoleOutputAttribute( ); BOOL -APIENTRY -WriteConsoleOutputCharacter( +WINAPI +WriteConsoleOutputCharacterA( HANDLE hConsoleOutput, LPSTR lpCharacter, DWORD nLength, COORD dwWriteCoord, LPDWORD lpNumberOfCharsWritten ); +BOOL +WINAPI +WriteConsoleOutputCharacterW( + HANDLE hConsoleOutput, + LPWSTR lpCharacter, + DWORD nLength, + COORD dwWriteCoord, + LPDWORD lpNumberOfCharsWritten + ); +#ifdef UNICODE +#define WriteConsoleOutputCharacter WriteConsoleOutputCharacterW +#else +#define WriteConsoleOutputCharacter WriteConsoleOutputCharacterA +#endif // !UNICODE BOOL -APIENTRY +WINAPI WriteConsoleOutputAttribute( HANDLE hConsoleOutput, LPWORD lpAttribute, @@ -262,17 +378,31 @@ WriteConsoleOutputAttribute( ); BOOL -APIENTRY -FillConsoleOutputCharacter( +WINAPI +FillConsoleOutputCharacterA( + HANDLE hConsoleOutput, + CHAR cCharacter, + DWORD nLength, + COORD dwWriteCoord, + LPDWORD lpNumberOfCharsWritten + ); +BOOL +WINAPI +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 +WINAPI FillConsoleOutputAttribute( HANDLE hConsoleOutput, WORD wAttribute, @@ -282,97 +412,111 @@ FillConsoleOutputAttribute( ); BOOL -APIENTRY +WINAPI GetConsoleMode( HANDLE hConsoleHandle, LPDWORD lpMode ); BOOL -APIENTRY +WINAPI GetNumberOfConsoleInputEvents( HANDLE hConsoleInput, LPDWORD lpNumberOfEvents ); BOOL -APIENTRY +WINAPI GetConsoleScreenBufferInfo( HANDLE hConsoleOutput, PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo ); COORD -APIENTRY +WINAPI GetLargestConsoleWindowSize( HANDLE hConsoleOutput ); BOOL -APIENTRY +WINAPI GetConsoleCursorInfo( HANDLE hConsoleOutput, PCONSOLE_CURSOR_INFO lpConsoleCursorInfo ); BOOL -APIENTRY +WINAPI GetNumberOfConsoleMouseButtons( LPDWORD lpNumberOfMouseButtons ); BOOL -APIENTRY +WINAPI SetConsoleMode( HANDLE hConsoleHandle, DWORD dwMode ); BOOL -APIENTRY +WINAPI SetConsoleActiveScreenBuffer( HANDLE hConsoleOutput ); BOOL -APIENTRY +WINAPI FlushConsoleInputBuffer( HANDLE hConsoleInput ); BOOL -APIENTRY +WINAPI SetConsoleScreenBufferSize( HANDLE hConsoleOutput, COORD dwSize ); BOOL -APIENTRY +WINAPI SetConsoleCursorPosition( HANDLE hConsoleOutput, COORD dwCursorPosition ); BOOL -APIENTRY +WINAPI SetConsoleCursorInfo( HANDLE hConsoleOutput, PCONSOLE_CURSOR_INFO lpConsoleCursorInfo ); BOOL -APIENTRY -ScrollConsoleScreenBuffer( +WINAPI +ScrollConsoleScreenBufferA( HANDLE hConsoleOutput, PSMALL_RECT lpScrollRectangle, PSMALL_RECT lpClipRectangle, COORD dwDestinationOrigin, PCHAR_INFO lpFill ); +BOOL +WINAPI +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 +WINAPI SetConsoleWindowInfo( HANDLE hConsoleOutput, BOOL bAbsolute, @@ -380,51 +524,151 @@ SetConsoleWindowInfo( ); BOOL -APIENTRY +WINAPI SetConsoleTextAttribute( HANDLE hConsoleOutput, WORD wAttributes ); BOOL -APIENTRY +WINAPI SetConsoleCtrlHandler( - IN PHANDLER_ROUTINE HandlerRoutine, - IN BOOL Add + PHANDLER_ROUTINE HandlerRoutine, + BOOL Add ); - + BOOL -APIENTRY +WINAPI +GenerateConsoleCtrlEvent( + DWORD dwCtrlEvent, + DWORD dwProcessGroupId + ); + +BOOL +WINAPI AllocConsole( VOID ); BOOL -APIENTRY +WINAPI FreeConsole( VOID ); DWORD -APIENTRY -GetConsoleTitle( +WINAPI +GetConsoleTitleA( LPSTR lpConsoleTitle, DWORD nSize ); +DWORD +WINAPI +GetConsoleTitleW( + LPWSTR lpConsoleTitle, + DWORD nSize + ); +#ifdef UNICODE +#define GetConsoleTitle GetConsoleTitleW +#else +#define GetConsoleTitle GetConsoleTitleA +#endif // !UNICODE BOOL -APIENTRY -SetConsoleTitle( +WINAPI +SetConsoleTitleA( LPSTR lpConsoleTitle ); +BOOL +WINAPI +SetConsoleTitleW( + LPWSTR lpConsoleTitle + ); +#ifdef UNICODE +#define SetConsoleTitle SetConsoleTitleW +#else +#define SetConsoleTitle SetConsoleTitleA +#endif // !UNICODE + +BOOL +WINAPI +ReadConsoleA( + HANDLE hConsoleInput, + LPVOID lpBuffer, + DWORD nNumberOfCharsToRead, + LPDWORD lpNumberOfCharsRead, + LPVOID lpReserved + ); +BOOL +WINAPI +ReadConsoleW( + HANDLE hConsoleInput, + LPVOID lpBuffer, + DWORD nNumberOfCharsToRead, + LPDWORD lpNumberOfCharsRead, + LPVOID lpReserved + ); +#ifdef UNICODE +#define ReadConsole ReadConsoleW +#else +#define ReadConsole ReadConsoleA +#endif // !UNICODE + +BOOL +WINAPI +WriteConsoleA( + HANDLE hConsoleOutput, + CONST VOID *lpBuffer, + DWORD nNumberOfCharsToWrite, + LPDWORD lpNumberOfCharsWritten, + LPVOID lpReserved + ); +BOOL +WINAPI +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 HANDLE -APIENTRY +WINAPI CreateConsoleScreenBuffer( DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, - IN DWORD dwFlags, - IN PVOID lpScreenBufferData OPTIONAL + DWORD dwFlags, + PVOID lpScreenBufferData + ); + +UINT +WINAPI +GetConsoleCP( VOID ); + +BOOL +WINAPI +SetConsoleCP( + UINT wCodePageID ); +UINT +WINAPI +GetConsoleOutputCP( VOID ); + +BOOL +WINAPI +SetConsoleOutputCP( + UINT wCodePageID + ); + +#ifdef __cplusplus +} +#endif + #endif // _WINCON_