windows-nt/Source/XPSP1/NT/windows/published/wincon.w
2020-09-26 16:20:57 +08:00

849 lines
19 KiB
OpenEdge ABL

/*++ BUILD Version: 0002 // Increment this if a change has global effects
Copyright (c) Microsoft Corporation. All rights reserved.
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_
#ifndef _WINCONP_ ;internal_NT
#define _WINCONP_ ;internal_NT
;internal_NT
;begin_both
#ifdef __cplusplus
extern "C" {
#endif
;end_both
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.
#define NLS_DBCSCHAR 0x00010000 // DBCS for JPN: SBCS/DBCS mode.
#define NLS_ALPHANUMERIC 0x00000000 // DBCS for JPN: Alphanumeric mode.
#define NLS_KATAKANA 0x00020000 // DBCS for JPN: Katakana mode.
#define NLS_HIRAGANA 0x00040000 // DBCS for JPN: Hiragana mode.
#define NLS_ROMAN 0x00400000 // DBCS for JPN: Roman/Noroman mode.
#define NLS_IME_CONVERSION 0x00800000 // DBCS for JPN: IME conversion.
#define ALTNUMPAD_BIT 0x04000000 // AltNumpad OEM char (copied from ntuser\inc\kbd.h) ;internal_NT
#define NLS_IME_DISABLE 0x20000000 // DBCS for JPN: IME enable/disable.
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
#define MOUSE_WHEELED 0x0004
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.
#define COMMON_LVB_LEADING_BYTE 0x0100 // Leading Byte of DBCS
#define COMMON_LVB_TRAILING_BYTE 0x0200 // Trailing Byte of DBCS
#define COMMON_LVB_GRID_HORIZONTAL 0x0400 // DBCS: Grid attribute: top horizontal.
#define COMMON_LVB_GRID_LVERTICAL 0x0800 // DBCS: Grid attribute: left vertical.
#define COMMON_LVB_GRID_RVERTICAL 0x1000 // DBCS: Grid attribute: right vertical.
#define COMMON_LVB_REVERSE_VIDEO 0x4000 // DBCS: Reverse fore/back ground attribute.
#define COMMON_LVB_UNDERSCORE 0x8000 // DBCS: Underscore.
#define COMMON_LVB_SBCSDBCS 0x0300 // SBCS or DBCS flag.
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 struct _CONSOLE_FONT_INFO {
DWORD nFont;
COORD dwFontSize;
} CONSOLE_FONT_INFO, *PCONSOLE_FONT_INFO;
;begin_if_(_WIN32_WINNT)_500
typedef struct _CONSOLE_SELECTION_INFO {
DWORD dwFlags;
COORD dwSelectionAnchor;
SMALL_RECT srSelection;
} CONSOLE_SELECTION_INFO, *PCONSOLE_SELECTION_INFO;
//
// 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
;begin_internal_NT
#define CONSOLE_SELECTION_INVERTED 0x0010 // selection is inverted (turned off)
#define CONSOLE_SELECTION_VALID (CONSOLE_SELECTION_IN_PROGRESS | \
CONSOLE_SELECTION_NOT_EMPTY | \
CONSOLE_MOUSE_SELECTION | \
CONSOLE_MOUSE_DOWN)
;end_internal_NT
;end_if_(_WIN32_WINNT)_500
//
// 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
;begin_internal_NT
#define ENABLE_INSERT_MODE 0x0020
#define ENABLE_QUICK_EDIT_MODE 0x0040
#define ENABLE_PRIVATE_FLAGS 0x0080
;end_internal_NT
//
// Output Mode flags:
//
#define ENABLE_PROCESSED_OUTPUT 0x0001
#define ENABLE_WRAP_AT_EOL_OUTPUT 0x0002
//
// direct API definitions.
//
WINBASEAPI
BOOL
WINAPI
PeekConsoleInput%(
IN HANDLE hConsoleInput,
OUT PINPUT_RECORD lpBuffer,
IN DWORD nLength,
OUT LPDWORD lpNumberOfEventsRead
);
WINBASEAPI
BOOL
WINAPI
ReadConsoleInput%(
IN HANDLE hConsoleInput,
OUT PINPUT_RECORD lpBuffer,
IN DWORD nLength,
OUT LPDWORD lpNumberOfEventsRead
);
WINBASEAPI
BOOL
WINAPI
WriteConsoleInput%(
IN HANDLE hConsoleInput,
IN CONST INPUT_RECORD *lpBuffer,
IN DWORD nLength,
OUT LPDWORD lpNumberOfEventsWritten
);
WINBASEAPI
BOOL
WINAPI
ReadConsoleOutput%(
IN HANDLE hConsoleOutput,
OUT PCHAR_INFO lpBuffer,
IN COORD dwBufferSize,
IN COORD dwBufferCoord,
IN OUT PSMALL_RECT lpReadRegion
);
WINBASEAPI
BOOL
WINAPI
WriteConsoleOutput%(
IN HANDLE hConsoleOutput,
IN CONST CHAR_INFO *lpBuffer,
IN COORD dwBufferSize,
IN COORD dwBufferCoord,
IN OUT PSMALL_RECT lpWriteRegion
);
WINBASEAPI
BOOL
WINAPI
ReadConsoleOutputCharacter%(
IN HANDLE hConsoleOutput,
OUT LPTSTR% lpCharacter,
IN DWORD nLength,
IN COORD dwReadCoord,
OUT LPDWORD lpNumberOfCharsRead
);
WINBASEAPI
BOOL
WINAPI
ReadConsoleOutputAttribute(
IN HANDLE hConsoleOutput,
OUT LPWORD lpAttribute,
IN DWORD nLength,
IN COORD dwReadCoord,
OUT LPDWORD lpNumberOfAttrsRead
);
WINBASEAPI
BOOL
WINAPI
WriteConsoleOutputCharacter%(
IN HANDLE hConsoleOutput,
IN LPCTSTR% lpCharacter,
IN DWORD nLength,
IN COORD dwWriteCoord,
OUT LPDWORD lpNumberOfCharsWritten
);
WINBASEAPI
BOOL
WINAPI
WriteConsoleOutputAttribute(
IN HANDLE hConsoleOutput,
IN CONST WORD *lpAttribute,
IN DWORD nLength,
IN COORD dwWriteCoord,
OUT LPDWORD lpNumberOfAttrsWritten
);
WINBASEAPI
BOOL
WINAPI
FillConsoleOutputCharacter%(
IN HANDLE hConsoleOutput,
IN TCHAR% cCharacter,
IN DWORD nLength,
IN COORD dwWriteCoord,
OUT LPDWORD lpNumberOfCharsWritten
);
WINBASEAPI
BOOL
WINAPI
FillConsoleOutputAttribute(
IN HANDLE hConsoleOutput,
IN WORD wAttribute,
IN DWORD nLength,
IN COORD dwWriteCoord,
OUT LPDWORD lpNumberOfAttrsWritten
);
WINBASEAPI
BOOL
WINAPI
GetConsoleMode(
IN HANDLE hConsoleHandle,
OUT LPDWORD lpMode
);
WINBASEAPI
BOOL
WINAPI
GetNumberOfConsoleInputEvents(
IN HANDLE hConsoleInput,
OUT LPDWORD lpNumberOfEvents
);
WINBASEAPI
BOOL
WINAPI
GetConsoleScreenBufferInfo(
IN HANDLE hConsoleOutput,
OUT PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo
);
WINBASEAPI
COORD
WINAPI
GetLargestConsoleWindowSize(
IN HANDLE hConsoleOutput
);
WINBASEAPI
BOOL
WINAPI
GetConsoleCursorInfo(
IN HANDLE hConsoleOutput,
OUT PCONSOLE_CURSOR_INFO lpConsoleCursorInfo
);
;begin_if_(_WIN32_WINNT)_500
WINBASEAPI
BOOL
WINAPI
GetCurrentConsoleFont(
IN HANDLE hConsoleOutput,
IN BOOL bMaximumWindow,
OUT PCONSOLE_FONT_INFO lpConsoleCurrentFont
);
WINBASEAPI
COORD
WINAPI
GetConsoleFontSize(
IN HANDLE hConsoleOutput,
IN DWORD nFont
);
WINBASEAPI
BOOL
WINAPI
GetConsoleSelectionInfo(
OUT PCONSOLE_SELECTION_INFO lpConsoleSelectionInfo
);
;end_if_(_WIN32_WINNT)_500
WINBASEAPI
BOOL
WINAPI
GetNumberOfConsoleMouseButtons(
OUT LPDWORD lpNumberOfMouseButtons
);
WINBASEAPI
BOOL
WINAPI
SetConsoleMode(
IN HANDLE hConsoleHandle,
IN DWORD dwMode
);
WINBASEAPI
BOOL
WINAPI
SetConsoleActiveScreenBuffer(
IN HANDLE hConsoleOutput
);
WINBASEAPI
BOOL
WINAPI
FlushConsoleInputBuffer(
IN HANDLE hConsoleInput
);
WINBASEAPI
BOOL
WINAPI
SetConsoleScreenBufferSize(
IN HANDLE hConsoleOutput,
IN COORD dwSize
);
WINBASEAPI
BOOL
WINAPI
SetConsoleCursorPosition(
IN HANDLE hConsoleOutput,
IN COORD dwCursorPosition
);
WINBASEAPI
BOOL
WINAPI
SetConsoleCursorInfo(
IN HANDLE hConsoleOutput,
IN CONST CONSOLE_CURSOR_INFO *lpConsoleCursorInfo
);
WINBASEAPI
BOOL
WINAPI
ScrollConsoleScreenBuffer%(
IN HANDLE hConsoleOutput,
IN CONST SMALL_RECT *lpScrollRectangle,
IN CONST SMALL_RECT *lpClipRectangle,
IN COORD dwDestinationOrigin,
IN CONST CHAR_INFO *lpFill
);
WINBASEAPI
BOOL
WINAPI
SetConsoleWindowInfo(
IN HANDLE hConsoleOutput,
IN BOOL bAbsolute,
IN CONST SMALL_RECT *lpConsoleWindow
);
WINBASEAPI
BOOL
WINAPI
SetConsoleTextAttribute(
IN HANDLE hConsoleOutput,
IN WORD wAttributes
);
WINBASEAPI
BOOL
WINAPI
SetConsoleCtrlHandler(
IN PHANDLER_ROUTINE HandlerRoutine,
IN BOOL Add
);
WINBASEAPI
BOOL
WINAPI
GenerateConsoleCtrlEvent(
IN DWORD dwCtrlEvent,
IN DWORD dwProcessGroupId
);
WINBASEAPI
BOOL
WINAPI
AllocConsole( VOID );
WINBASEAPI
BOOL
WINAPI
FreeConsole( VOID );
;begin_if_(_WIN32_WINNT)_500
WINBASEAPI
BOOL
WINAPI
AttachConsole(
IN DWORD dwProcessId
);
;end_if_(_WIN32_WINNT)_500
WINBASEAPI
DWORD
WINAPI
GetConsoleTitle%(
OUT LPTSTR% lpConsoleTitle,
IN DWORD nSize
);
WINBASEAPI
BOOL
WINAPI
SetConsoleTitle%(
IN LPCTSTR% lpConsoleTitle
);
WINBASEAPI
BOOL
WINAPI
ReadConsole%(
IN HANDLE hConsoleInput,
OUT LPVOID lpBuffer,
IN DWORD nNumberOfCharsToRead,
OUT LPDWORD lpNumberOfCharsRead,
IN LPVOID lpReserved
);
WINBASEAPI
BOOL
WINAPI
WriteConsole%(
IN HANDLE hConsoleOutput,
IN CONST VOID *lpBuffer,
IN DWORD nNumberOfCharsToWrite,
OUT LPDWORD lpNumberOfCharsWritten,
IN LPVOID lpReserved
);
#define CONSOLE_TEXTMODE_BUFFER 1
WINBASEAPI
HANDLE
WINAPI
CreateConsoleScreenBuffer(
IN DWORD dwDesiredAccess,
IN DWORD dwShareMode,
IN CONST SECURITY_ATTRIBUTES *lpSecurityAttributes,
IN DWORD dwFlags,
IN LPVOID lpScreenBufferData
);
WINBASEAPI
UINT
WINAPI
GetConsoleCP( VOID );
WINBASEAPI
BOOL
WINAPI
SetConsoleCP(
IN UINT wCodePageID
);
WINBASEAPI
UINT
WINAPI
GetConsoleOutputCP( VOID );
WINBASEAPI
BOOL
WINAPI
SetConsoleOutputCP(
IN UINT wCodePageID
);
;begin_if_(_WIN32_WINNT)_500
#define CONSOLE_FULLSCREEN 1 // fullscreen console
#define CONSOLE_FULLSCREEN_HARDWARE 2 // console owns the hardware
WINBASEAPI
BOOL
APIENTRY
GetConsoleDisplayMode(
OUT LPDWORD lpModeFlags
);
WINBASEAPI
HWND
APIENTRY
GetConsoleWindow(
VOID
);
;end_if_(_WIN32_WINNT)_500
;begin_if_(_WIN32_WINNT)_501
WINBASEAPI
DWORD
APIENTRY
GetConsoleProcessList(
OUT LPDWORD lpdwProcessList,
IN DWORD dwProcessCount);
;end_if_(_WIN32_WINNT)_501
;begin_internal_NT
WINBASEAPI
BOOL
WINAPI
GetConsoleKeyboardLayoutName%( OUT LPTSTR% );
//
// Registry strings
//
#define CONSOLE_REGISTRY_STRING (L"Console")
#define CONSOLE_REGISTRY_FONTSIZE (L"FontSize")
#define CONSOLE_REGISTRY_FONTFAMILY (L"FontFamily")
#define CONSOLE_REGISTRY_BUFFERSIZE (L"ScreenBufferSize")
#define CONSOLE_REGISTRY_CURSORSIZE (L"CursorSize")
#define CONSOLE_REGISTRY_WINDOWSIZE (L"WindowSize")
#define CONSOLE_REGISTRY_WINDOWPOS (L"WindowPosition")
#define CONSOLE_REGISTRY_FILLATTR (L"ScreenColors")
#define CONSOLE_REGISTRY_POPUPATTR (L"PopupColors")
#define CONSOLE_REGISTRY_FULLSCR (L"FullScreen")
#define CONSOLE_REGISTRY_QUICKEDIT (L"QuickEdit")
#define CONSOLE_REGISTRY_FACENAME (L"FaceName")
#define CONSOLE_REGISTRY_FONTWEIGHT (L"FontWeight")
#define CONSOLE_REGISTRY_INSERTMODE (L"InsertMode")
#define CONSOLE_REGISTRY_HISTORYSIZE (L"HistoryBufferSize")
#define CONSOLE_REGISTRY_HISTORYBUFS (L"NumberOfHistoryBuffers")
#define CONSOLE_REGISTRY_HISTORYNODUP (L"HistoryNoDup")
#define CONSOLE_REGISTRY_COLORTABLE (L"ColorTable%02u")
#define CONSOLE_REGISTRY_EXTENDEDEDITKEY L"ExtendedEditKey"
#define CONSOLE_REGISTRY_EXTENDEDEDITKEY_CUSTOM L"ExtendedEditkeyCustom"
#define CONSOLE_REGISTRY_WORD_DELIM L"WordDelimiters"
#define CONSOLE_REGISTRY_TRIMZEROHEADINGS L"TrimLeadingZeros"
#define CONSOLE_REGISTRY_LOAD_CONIME L"LoadConIme"
#define CONSOLE_REGISTRY_ENABLE_COLOR_SELECTION L"EnableColorSelection"
#if defined(FE_SB) // scotthsu
/*
* Starting code page
*/
#define CONSOLE_REGISTRY_CODEPAGE (L"CodePage")
#endif
#if defined(FE_SB)
//
// registry strings on HKEY_LOCAL_MACHINE
//
#define MACHINE_REGISTRY_CONSOLE (L"\\Registry\\Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Console")
#define MACHINE_REGISTRY_CONSOLEIME (L"ConsoleIME")
#define MACHINE_REGISTRY_CONSOLE_TTFONT (L"\\Registry\\Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Console\\TrueTypeFont")
#define MACHINE_REGISTRY_CONSOLE_NLS (L"\\Registry\\Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Console\\Nls")
#define MACHINE_REGISTRY_CONSOLE_FULLSCREEN (L"\\Registry\\Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Console\\FullScreen")
#define MACHINE_REGISTRY_INITIAL_PALETTE (L"InitialPalette")
#define MACHINE_REGISTRY_COLOR_BUFFER (L"ColorBuffer")
#define MACHINE_REGISTRY_COLOR_BUFFER_NO_TRANSLATE (L"ColorBufferNoTranslate")
#define MACHINE_REGISTRY_MODE_FONT_PAIRS (L"ModeFontPairs")
#define MACHINE_REGISTRY_FS_CODEPAGE (L"CodePage")
#define MACHINE_REGISTRY_EUDC (L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\Nls\\CodePage\\EUDCCodeRange")
//
// TrueType font list
//
// doesn't available bold when add BOLD_MARK on first of face name.
#define BOLD_MARK (L'*')
typedef struct _TT_FONT_LIST {
SINGLE_LIST_ENTRY List;
UINT CodePage;
BOOL fDisableBold;
TCHAR FaceName1[LF_FACESIZE];
TCHAR FaceName2[LF_FACESIZE];
} TTFONTLIST, *LPTTFONTLIST;
#endif // FE_SB
//
// State information structure
//
typedef struct _CONSOLE_STATE_INFO {
UINT Length;
COORD ScreenBufferSize;
COORD WindowSize;
INT WindowPosX;
INT WindowPosY;
COORD FontSize;
UINT FontFamily;
UINT FontWeight;
WCHAR FaceName[LF_FACESIZE];
UINT CursorSize;
BOOL FullScreen;
BOOL QuickEdit;
BOOL AutoPosition;
BOOL InsertMode;
WORD ScreenAttributes;
WORD PopupAttributes;
BOOL HistoryNoDup;
UINT HistoryBufferSize;
UINT NumberOfHistoryBuffers;
COLORREF ColorTable[ 16 ];
#if defined(FE_SB)
/*
* Startting code page
*/
UINT CodePage;
#endif // FE_SB
HWND hWnd;
WCHAR ConsoleTitle[1];
} CONSOLE_STATE_INFO, *PCONSOLE_STATE_INFO;
//
// Messages sent from properties applet to console server
//
#define CM_PROPERTIES_START (WM_USER+200)
#define CM_PROPERTIES_UPDATE (WM_USER+201)
#define CM_PROPERTIES_END (WM_USER+202)
//
// Extended Line Edit
//
#define EK_INVALID ' '
//
// Special key for previous word erase
//
#define EXTKEY_ERASE_PREV_WORD (0x7f)
//
// Ensure the alignment is WORD boundary
//
#include <pshpack2.h>
typedef struct {
WORD wMod;
WORD wVirKey;
WCHAR wUnicodeChar;
} ExtKeySubst;
typedef struct {
ExtKeySubst keys[3]; // 0: Ctrl
// 1: Alt
// 2: Ctrl+Alt
} ExtKeyDef;
typedef ExtKeyDef ExtKeyDefTable['Z' - 'A' + 1];
typedef struct {
DWORD dwVersion;
DWORD dwCheckSum;
ExtKeyDefTable table;
} ExtKeyDefBuf;
//
// Restore the previous alignment
//
#include <poppack.h>
;end_internal_NT
;begin_both
#ifdef __cplusplus
}
#endif
;end_both
#endif // _WINCONP_ ;internal_NT
#endif // _WINCON_