From e611b132f9b8abe35b362e5870b74bce94a1e58e Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 16 May 2020 20:51:50 -0700 Subject: initial commit --- public/sdk/inc/wincon.h | 726 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 726 insertions(+) create mode 100644 public/sdk/inc/wincon.h (limited to 'public/sdk/inc/wincon.h') diff --git a/public/sdk/inc/wincon.h b/public/sdk/inc/wincon.h new file mode 100644 index 000000000..04f6b3887 --- /dev/null +++ b/public/sdk/inc/wincon.h @@ -0,0 +1,726 @@ +/*++ BUILD Version: 0002 // Increment this if a change has global effects + +Copyright (c) 1989-1996 Microsoft Corporation + +Module Name: + + wincon.h + +Abstract: + + This module contains the public data structures, data types, + and procedures exported by the NT console subsystem. + +Created: + + 26-Oct-1990 + +Revision History: + +--*/ + +#ifndef _WINCON_ +#define _WINCON_ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _COORD { + SHORT X; + SHORT Y; +} COORD, *PCOORD; + +typedef struct _SMALL_RECT { + SHORT Left; + SHORT Top; + SHORT Right; + SHORT Bottom; +} SMALL_RECT, *PSMALL_RECT; + +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; + +// +// ControlKeyState flags +// + +#define RIGHT_ALT_PRESSED 0x0001 // the right alt key is pressed. +#define LEFT_ALT_PRESSED 0x0002 // the left alt key is pressed. +#define RIGHT_CTRL_PRESSED 0x0004 // the right ctrl key is pressed. +#define LEFT_CTRL_PRESSED 0x0008 // the left ctrl key is pressed. +#define SHIFT_PRESSED 0x0010 // the shift key is pressed. +#define NUMLOCK_ON 0x0020 // the numlock light is on. +#define SCROLLLOCK_ON 0x0040 // the scrolllock light is on. +#define CAPSLOCK_ON 0x0080 // the capslock light is on. +#define ENHANCED_KEY 0x0100 // the key is enhanced. + +typedef struct _MOUSE_EVENT_RECORD { + COORD dwMousePosition; + DWORD dwButtonState; + DWORD dwControlKeyState; + DWORD dwEventFlags; +} MOUSE_EVENT_RECORD, *PMOUSE_EVENT_RECORD; + +// +// 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 + +// +// EventFlags +// + +#define MOUSE_MOVED 0x0001 +#define DOUBLE_CLICK 0x0002 + +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; + +// +// EventType flags: +// + +#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 { + WCHAR UnicodeChar; + CHAR AsciiChar; + } Char; + WORD Attributes; +} CHAR_INFO, *PCHAR_INFO; + +// +// Attributes flags: +// + +#define FOREGROUND_BLUE 0x0001 // text color contains blue. +#define FOREGROUND_GREEN 0x0002 // text color contains green. +#define FOREGROUND_RED 0x0004 // text color contains red. +#define FOREGROUND_INTENSITY 0x0008 // text color is intensified. +#define BACKGROUND_BLUE 0x0010 // background color contains blue. +#define BACKGROUND_GREEN 0x0020 // background color contains green. +#define BACKGROUND_RED 0x0040 // background color contains red. +#define BACKGROUND_INTENSITY 0x0080 // background color is intensified. + + +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 struct _CONSOLE_CURSOR_INFO { + DWORD dwSize; + BOOL bVisible; +} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO; + +// +// typedef for ctrl-c handler routines +// + +typedef +BOOL +(WINAPI *PHANDLER_ROUTINE)( + DWORD CtrlType + ); + +#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 + +// +// Output Mode flags: +// + +#define ENABLE_PROCESSED_OUTPUT 0x0001 +#define ENABLE_WRAP_AT_EOL_OUTPUT 0x0002 + +// +// direct API definitions. +// + +WINBASEAPI +BOOL +WINAPI +PeekConsoleInputA( + HANDLE hConsoleInput, + PINPUT_RECORD lpBuffer, + DWORD nLength, + LPDWORD lpNumberOfEventsRead + ); +WINBASEAPI +BOOL +WINAPI +PeekConsoleInputW( + HANDLE hConsoleInput, + PINPUT_RECORD lpBuffer, + DWORD nLength, + LPDWORD lpNumberOfEventsRead + ); +#ifdef UNICODE +#define PeekConsoleInput PeekConsoleInputW +#else +#define PeekConsoleInput PeekConsoleInputA +#endif // !UNICODE + +WINBASEAPI +BOOL +WINAPI +ReadConsoleInputA( + HANDLE hConsoleInput, + PINPUT_RECORD lpBuffer, + DWORD nLength, + LPDWORD lpNumberOfEventsRead + ); +WINBASEAPI +BOOL +WINAPI +ReadConsoleInputW( + HANDLE hConsoleInput, + PINPUT_RECORD lpBuffer, + DWORD nLength, + LPDWORD lpNumberOfEventsRead + ); +#ifdef UNICODE +#define ReadConsoleInput ReadConsoleInputW +#else +#define ReadConsoleInput ReadConsoleInputA +#endif // !UNICODE + +WINBASEAPI +BOOL +WINAPI +WriteConsoleInputA( + HANDLE hConsoleInput, + CONST INPUT_RECORD *lpBuffer, + DWORD nLength, + LPDWORD lpNumberOfEventsWritten + ); +WINBASEAPI +BOOL +WINAPI +WriteConsoleInputW( + HANDLE hConsoleInput, + CONST INPUT_RECORD *lpBuffer, + DWORD nLength, + LPDWORD lpNumberOfEventsWritten + ); +#ifdef UNICODE +#define WriteConsoleInput WriteConsoleInputW +#else +#define WriteConsoleInput WriteConsoleInputA +#endif // !UNICODE + +WINBASEAPI +BOOL +WINAPI +ReadConsoleOutputA( + HANDLE hConsoleOutput, + PCHAR_INFO lpBuffer, + COORD dwBufferSize, + COORD dwBufferCoord, + PSMALL_RECT lpReadRegion + ); +WINBASEAPI +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 + +WINBASEAPI +BOOL +WINAPI +WriteConsoleOutputA( + HANDLE hConsoleOutput, + CONST CHAR_INFO *lpBuffer, + COORD dwBufferSize, + COORD dwBufferCoord, + PSMALL_RECT lpWriteRegion + ); +WINBASEAPI +BOOL +WINAPI +WriteConsoleOutputW( + HANDLE hConsoleOutput, + CONST CHAR_INFO *lpBuffer, + COORD dwBufferSize, + COORD dwBufferCoord, + PSMALL_RECT lpWriteRegion + ); +#ifdef UNICODE +#define WriteConsoleOutput WriteConsoleOutputW +#else +#define WriteConsoleOutput WriteConsoleOutputA +#endif // !UNICODE + +WINBASEAPI +BOOL +WINAPI +ReadConsoleOutputCharacterA( + HANDLE hConsoleOutput, + LPSTR lpCharacter, + DWORD nLength, + COORD dwReadCoord, + LPDWORD lpNumberOfCharsRead + ); +WINBASEAPI +BOOL +WINAPI +ReadConsoleOutputCharacterW( + HANDLE hConsoleOutput, + LPWSTR lpCharacter, + DWORD nLength, + COORD dwReadCoord, + LPDWORD lpNumberOfCharsRead + ); +#ifdef UNICODE +#define ReadConsoleOutputCharacter ReadConsoleOutputCharacterW +#else +#define ReadConsoleOutputCharacter ReadConsoleOutputCharacterA +#endif // !UNICODE + +WINBASEAPI +BOOL +WINAPI +ReadConsoleOutputAttribute( + HANDLE hConsoleOutput, + LPWORD lpAttribute, + DWORD nLength, + COORD dwReadCoord, + LPDWORD lpNumberOfAttrsRead + ); + +WINBASEAPI +BOOL +WINAPI +WriteConsoleOutputCharacterA( + HANDLE hConsoleOutput, + LPCSTR lpCharacter, + DWORD nLength, + COORD dwWriteCoord, + LPDWORD lpNumberOfCharsWritten + ); +WINBASEAPI +BOOL +WINAPI +WriteConsoleOutputCharacterW( + HANDLE hConsoleOutput, + LPCWSTR lpCharacter, + DWORD nLength, + COORD dwWriteCoord, + LPDWORD lpNumberOfCharsWritten + ); +#ifdef UNICODE +#define WriteConsoleOutputCharacter WriteConsoleOutputCharacterW +#else +#define WriteConsoleOutputCharacter WriteConsoleOutputCharacterA +#endif // !UNICODE + +WINBASEAPI +BOOL +WINAPI +WriteConsoleOutputAttribute( + HANDLE hConsoleOutput, + CONST WORD *lpAttribute, + DWORD nLength, + COORD dwWriteCoord, + LPDWORD lpNumberOfAttrsWritten + ); + +WINBASEAPI +BOOL +WINAPI +FillConsoleOutputCharacterA( + HANDLE hConsoleOutput, + CHAR cCharacter, + DWORD nLength, + COORD dwWriteCoord, + LPDWORD lpNumberOfCharsWritten + ); +WINBASEAPI +BOOL +WINAPI +FillConsoleOutputCharacterW( + HANDLE hConsoleOutput, + WCHAR cCharacter, + DWORD nLength, + COORD dwWriteCoord, + LPDWORD lpNumberOfCharsWritten + ); +#ifdef UNICODE +#define FillConsoleOutputCharacter FillConsoleOutputCharacterW +#else +#define FillConsoleOutputCharacter FillConsoleOutputCharacterA +#endif // !UNICODE + +WINBASEAPI +BOOL +WINAPI +FillConsoleOutputAttribute( + HANDLE hConsoleOutput, + WORD wAttribute, + DWORD nLength, + COORD dwWriteCoord, + LPDWORD lpNumberOfAttrsWritten + ); + +WINBASEAPI +BOOL +WINAPI +GetConsoleMode( + HANDLE hConsoleHandle, + LPDWORD lpMode + ); + +WINBASEAPI +BOOL +WINAPI +GetNumberOfConsoleInputEvents( + HANDLE hConsoleInput, + LPDWORD lpNumberOfEvents + ); + +WINBASEAPI +BOOL +WINAPI +GetConsoleScreenBufferInfo( + HANDLE hConsoleOutput, + PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo + ); + +WINBASEAPI +COORD +WINAPI +GetLargestConsoleWindowSize( + HANDLE hConsoleOutput + ); + +WINBASEAPI +BOOL +WINAPI +GetConsoleCursorInfo( + HANDLE hConsoleOutput, + PCONSOLE_CURSOR_INFO lpConsoleCursorInfo + ); + +WINBASEAPI +BOOL +WINAPI +GetNumberOfConsoleMouseButtons( + LPDWORD lpNumberOfMouseButtons + ); + +WINBASEAPI +BOOL +WINAPI +SetConsoleMode( + HANDLE hConsoleHandle, + DWORD dwMode + ); + +WINBASEAPI +BOOL +WINAPI +SetConsoleActiveScreenBuffer( + HANDLE hConsoleOutput + ); + +WINBASEAPI +BOOL +WINAPI +FlushConsoleInputBuffer( + HANDLE hConsoleInput + ); + +WINBASEAPI +BOOL +WINAPI +SetConsoleScreenBufferSize( + HANDLE hConsoleOutput, + COORD dwSize + ); + +WINBASEAPI +BOOL +WINAPI +SetConsoleCursorPosition( + HANDLE hConsoleOutput, + COORD dwCursorPosition + ); + +WINBASEAPI +BOOL +WINAPI +SetConsoleCursorInfo( + HANDLE hConsoleOutput, + CONST CONSOLE_CURSOR_INFO *lpConsoleCursorInfo + ); + +WINBASEAPI +BOOL +WINAPI +ScrollConsoleScreenBufferA( + HANDLE hConsoleOutput, + CONST SMALL_RECT *lpScrollRectangle, + CONST SMALL_RECT *lpClipRectangle, + COORD dwDestinationOrigin, + CONST CHAR_INFO *lpFill + ); +WINBASEAPI +BOOL +WINAPI +ScrollConsoleScreenBufferW( + HANDLE hConsoleOutput, + CONST SMALL_RECT *lpScrollRectangle, + CONST SMALL_RECT *lpClipRectangle, + COORD dwDestinationOrigin, + CONST CHAR_INFO *lpFill + ); +#ifdef UNICODE +#define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferW +#else +#define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferA +#endif // !UNICODE + +WINBASEAPI +BOOL +WINAPI +SetConsoleWindowInfo( + HANDLE hConsoleOutput, + BOOL bAbsolute, + CONST SMALL_RECT *lpConsoleWindow + ); + +WINBASEAPI +BOOL +WINAPI +SetConsoleTextAttribute( + HANDLE hConsoleOutput, + WORD wAttributes + ); + +WINBASEAPI +BOOL +WINAPI +SetConsoleCtrlHandler( + PHANDLER_ROUTINE HandlerRoutine, + BOOL Add + ); + +WINBASEAPI +BOOL +WINAPI +GenerateConsoleCtrlEvent( + DWORD dwCtrlEvent, + DWORD dwProcessGroupId + ); + +WINBASEAPI +BOOL +WINAPI +AllocConsole( VOID ); + +WINBASEAPI +BOOL +WINAPI +FreeConsole( VOID ); + + +WINBASEAPI +DWORD +WINAPI +GetConsoleTitleA( + LPSTR lpConsoleTitle, + DWORD nSize + ); +WINBASEAPI +DWORD +WINAPI +GetConsoleTitleW( + LPWSTR lpConsoleTitle, + DWORD nSize + ); +#ifdef UNICODE +#define GetConsoleTitle GetConsoleTitleW +#else +#define GetConsoleTitle GetConsoleTitleA +#endif // !UNICODE + +WINBASEAPI +BOOL +WINAPI +SetConsoleTitleA( + LPCSTR lpConsoleTitle + ); +WINBASEAPI +BOOL +WINAPI +SetConsoleTitleW( + LPCWSTR lpConsoleTitle + ); +#ifdef UNICODE +#define SetConsoleTitle SetConsoleTitleW +#else +#define SetConsoleTitle SetConsoleTitleA +#endif // !UNICODE + +WINBASEAPI +BOOL +WINAPI +ReadConsoleA( + HANDLE hConsoleInput, + LPVOID lpBuffer, + DWORD nNumberOfCharsToRead, + LPDWORD lpNumberOfCharsRead, + LPVOID lpReserved + ); +WINBASEAPI +BOOL +WINAPI +ReadConsoleW( + HANDLE hConsoleInput, + LPVOID lpBuffer, + DWORD nNumberOfCharsToRead, + LPDWORD lpNumberOfCharsRead, + LPVOID lpReserved + ); +#ifdef UNICODE +#define ReadConsole ReadConsoleW +#else +#define ReadConsole ReadConsoleA +#endif // !UNICODE + +WINBASEAPI +BOOL +WINAPI +WriteConsoleA( + HANDLE hConsoleOutput, + CONST VOID *lpBuffer, + DWORD nNumberOfCharsToWrite, + LPDWORD lpNumberOfCharsWritten, + LPVOID lpReserved + ); +WINBASEAPI +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 + +WINBASEAPI +HANDLE +WINAPI +CreateConsoleScreenBuffer( + DWORD dwDesiredAccess, + DWORD dwShareMode, + CONST SECURITY_ATTRIBUTES *lpSecurityAttributes, + DWORD dwFlags, + LPVOID lpScreenBufferData + ); + +WINBASEAPI +UINT +WINAPI +GetConsoleCP( VOID ); + +WINBASEAPI +BOOL +WINAPI +SetConsoleCP( + UINT wCodePageID + ); + +WINBASEAPI +UINT +WINAPI +GetConsoleOutputCP( VOID ); + +WINBASEAPI +BOOL +WINAPI +SetConsoleOutputCP( + UINT wCodePageID + ); + +#ifdef __cplusplus +} +#endif + +#endif // _WINCON_ -- cgit v1.2.3