INTERFACECorresponds to build version 0002 ofWinCon ;
wincon.h
. See that file for
details.
This module contains the public data structures, data types, and procedures exported by the NT console subsystem.
IMPORT Ctypes, WinBase; FROM WinDef IMPORT SHORT, BOOL, WORD, DWORD, UINT, LPDWORD, LPWORD, LPVOID; FROM WinNT IMPORT WCHAR, HANDLE, LPSTR, LPWSTR, PVOID; TYPE PCOORD = UNTRACED REF COORD; COORD = RECORD X: SHORT; Y: SHORT; END; PSMALL_RECT = UNTRACED REF SMALL_RECT; SMALL_RECT = RECORD Left : SHORT; Top : SHORT; Right : SHORT; Bottom: SHORT; END; PKEY_EVENT_RECORD = UNTRACED REF KEY_EVENT_RECORD; KEY_EVENT_RECORD = RECORD bKeyDown : BOOL; wRepeatCount : WORD; wVirtualKeyCode : WORD; wVirtualScanCode: WORD; uChar : WCHAR; (* ??? *) (* union { WCHAR UnicodeChar; CHAR AsciiChar; } uChar; *) dwControlKeyState: DWORD; END;ControlKeyState flags
CONST RIGHT_ALT_PRESSED = 16_0001; (* the right alt key is pressed. *) LEFT_ALT_PRESSED = 16_0002; (* the left alt key is pressed. *) RIGHT_CTRL_PRESSED = 16_0004; (* the right ctrl key is pressed. *) LEFT_CTRL_PRESSED = 16_0008; (* the left ctrl key is pressed. *) SHIFT_PRESSED = 16_0010; (* the shift key is pressed. *) NUMLOCK_ON = 16_0020; (* the numlock light is on. *) SCROLLLOCK_ON = 16_0040; (* the scrolllock light is on. *) CAPSLOCK_ON = 16_0080; (* the capslock light is on. *) ENHANCED_KEY = 16_0100; (* the key is enhanced. *) TYPE PMOUSE_EVENT_RECORD = UNTRACED REF MOUSE_EVENT_RECORD; MOUSE_EVENT_RECORD = RECORD dwMousePosition : COORD; dwButtonState : DWORD; dwControlKeyState: DWORD; dwEventFlags : DWORD; END;ButtonState flags
CONST FROM_LEFT_1ST_BUTTON_PRESSED = 16_0001; RIGHTMOST_BUTTON_PRESSED = 16_0002; FROM_LEFT_2ND_BUTTON_PRESSED = 16_0004; FROM_LEFT_3RD_BUTTON_PRESSED = 16_0008; FROM_LEFT_4TH_BUTTON_PRESSED = 16_0010;EventFlags
CONST MOUSE_MOVED = 16_0001; DOUBLE_CLICK = 16_0002; TYPE WINDOW_BUFFER_SIZE_RECORD = RECORD dwSize: COORD; END; PWINDOW_BUFFER_SIZE_RECORD = UNTRACED REF WINDOW_BUFFER_SIZE_RECORD; MENU_EVENT_RECORD = RECORD dwCommandId: UINT; END; PMENU_EVENT_RECORD = UNTRACED REF MENU_EVENT_RECORD; FOCUS_EVENT_RECORD = RECORD bSetFocus: BOOL; END; PFOCUS_EVENT_RECORD = UNTRACED REF FOCUS_EVENT_RECORD; PINPUT_RECORD = UNTRACED REF INPUT_RECORD; INPUT_RECORD = RECORD EventType: WORD; Event : KEY_EVENT_RECORD; (* !!! *) (* union { KEY_EVENT_RECORD KeyEvent; MOUSE_EVENT_RECORD MouseEvent; WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent; MENU_EVENT_RECORD MenuEvent; FOCUS_EVENT_RECORD FocusEvent; } Event; *) END;EventType flags:
CONST KEY_EVENT = 16_0001; (* Event contains key event record *) MOUSE_EVENT = 16_0002; (* Event contains mouse event record *) WINDOW_BUFFER_SIZE_EVENT = 16_0004; (* Event contains window change event record *) MENU_EVENT = 16_0008; (* Event contains menu event record *) FOCUS_EVENT = 16_0010; (* event contains focus change *) TYPE PCHAR_INFO = UNTRACED REF CHAR_INFO; CHAR_INFO = RECORD Char: WCHAR; (* ??? *) (* union { WCHAR UnicodeChar; CHAR AsciiChar; } Char; *) Attributes: WORD; END;Attributes flags:
CONST FOREGROUND_BLUE = 16_0001; (* text color contains blue. *) FOREGROUND_GREEN = 16_0002; (* text color contains green. *) FOREGROUND_RED = 16_0004; (* text color contains red. *) FOREGROUND_INTENSITY = 16_0008; (* text color is intensified. *) BACKGROUND_BLUE = 16_0010; (* background color contains blue. *) BACKGROUND_GREEN = 16_0020; (* background color contains green. *) BACKGROUND_RED = 16_0040; (* background color contains red. *) BACKGROUND_INTENSITY = 16_0080; (* background color is intensified. *) TYPE PCONSOLE_SCREEN_BUFFER_INFO = UNTRACED REF CONSOLE_SCREEN_BUFFER_INFO; CONSOLE_SCREEN_BUFFER_INFO = RECORD dwSize : COORD; dwCursorPosition : COORD; wAttributes : WORD; srWindow : SMALL_RECT; dwMaximumWindowSize: COORD; END; PCONSOLE_CURSOR_INFO = UNTRACED REF CONSOLE_CURSOR_INFO; CONSOLE_CURSOR_INFO = RECORD dwSize : DWORD; bVisible: BOOL; END;typedef for ctrl-c handler routines
TYPE PHANDLER_ROUTINE = <*WINAPI*> PROCEDURE (CtrlType: DWORD): BOOL; CONST CTRL_C_EVENT = 0; CTRL_BREAK_EVENT = 1; CTRL_CLOSE_EVENT = 2; (* 3 is reserved! *) (* 4 is reserved! *) CTRL_LOGOFF_EVENT = 5; CTRL_SHUTDOWN_EVENT = 6;Input Mode flags:
CONST ENABLE_PROCESSED_INPUT = 16_0001; ENABLE_LINE_INPUT = 16_0002; ENABLE_ECHO_INPUT = 16_0004; ENABLE_WINDOW_INPUT = 16_0008; ENABLE_MOUSE_INPUT = 16_0010;Output Mode flags:
CONST ENABLE_PROCESSED_OUTPUT = 16_0001; ENABLE_WRAP_AT_EOL_OUTPUT = 16_0002;direct API definitions.
<*EXTERNAL PeekConsoleInputA:WINAPI*> PROCEDURE PeekConsoleInputA (hConsoleInput : HANDLE; lpBuffer : PINPUT_RECORD; nLength : DWORD; lpNumberOfEventsRead: LPDWORD ): BOOL; <*EXTERNAL PeekConsoleInputW:WINAPI*> PROCEDURE PeekConsoleInputW (hConsoleInput : HANDLE; lpBuffer : PINPUT_RECORD; nLength : DWORD; lpNumberOfEventsRead: LPDWORD ): BOOL; CONST PeekConsoleInput = PeekConsoleInputA; <*EXTERNAL ReadConsoleInputA:WINAPI*> PROCEDURE ReadConsoleInputA (hConsoleInput : HANDLE; lpBuffer : PINPUT_RECORD; nLength : DWORD; lpNumberOfEventsRead: LPDWORD ): BOOL; <*EXTERNAL ReadConsoleInputW:WINAPI*> PROCEDURE ReadConsoleInputW (hConsoleInput : HANDLE; lpBuffer : PINPUT_RECORD; nLength : DWORD; lpNumberOfEventsRead: LPDWORD ): BOOL; CONST ReadConsoleInput = ReadConsoleInputA; <*EXTERNAL WriteConsoleInputA:WINAPI*> PROCEDURE WriteConsoleInputA (hConsoleInput : HANDLE; lpBuffer : PINPUT_RECORD; nLength : DWORD; lpNumberOfEventsWritten: LPDWORD ): BOOL; <*EXTERNAL WriteConsoleInputW:WINAPI*> PROCEDURE WriteConsoleInputW (hConsoleInput : HANDLE; lpBuffer : PINPUT_RECORD; nLength : DWORD; lpNumberOfEventsWritten: LPDWORD ): BOOL; CONST WriteConsoleInput = WriteConsoleInputA; <*EXTERNAL ReadConsoleOutputA:WINAPI*> PROCEDURE ReadConsoleOutputA (hConsoleOutput: HANDLE; lpBuffer : PCHAR_INFO; dwBufferSize : COORD; dwBufferCoord : COORD; lpReadRegion : PSMALL_RECT ): BOOL; <*EXTERNAL ReadConsoleOutputW:WINAPI*> PROCEDURE ReadConsoleOutputW (hConsoleOutput: HANDLE; lpBuffer : PCHAR_INFO; dwBufferSize : COORD; dwBufferCoord : COORD; lpReadRegion : PSMALL_RECT ): BOOL; CONST ReadConsoleOutput = ReadConsoleOutputA; <*EXTERNAL WriteConsoleOutputA:WINAPI*> PROCEDURE WriteConsoleOutputA (hConsoleOutput: HANDLE; lpBuffer : PCHAR_INFO; dwBufferSize : COORD; dwBufferCoord : COORD; lpWriteRegion : PSMALL_RECT ): BOOL; <*EXTERNAL WriteConsoleOutputW:WINAPI*> PROCEDURE WriteConsoleOutputW (hConsoleOutput: HANDLE; lpBuffer : PCHAR_INFO; dwBufferSize : COORD; dwBufferCoord : COORD; lpWriteRegion : PSMALL_RECT ): BOOL; CONST WriteConsoleOutput = WriteConsoleOutputA; <*EXTERNAL ReadConsoleOutputCharacterA:WINAPI*> PROCEDURE ReadConsoleOutputCharacterA (hConsoleOutput : HANDLE; lpCharacter : LPSTR; nLength : DWORD; dwReadCoord : COORD; lpNumberOfCharsRead: LPDWORD ): BOOL; <*EXTERNAL ReadConsoleOutputCharacterW:WINAPI*> PROCEDURE ReadConsoleOutputCharacterW (hConsoleOutput : HANDLE; lpCharacter : LPWSTR; nLength : DWORD; dwReadCoord : COORD; lpNumberOfCharsRead: LPDWORD ): BOOL; CONST ReadConsoleOutputCharacter = ReadConsoleOutputCharacterA; <*EXTERNAL ReadConsoleOutputAttribute:WINAPI*> PROCEDURE ReadConsoleOutputAttribute (hConsoleOutput : HANDLE; lpAttribute : LPWORD; nLength : DWORD; dwReadCoord : COORD; lpNumberOfAttrsRead: LPDWORD ): BOOL; <*EXTERNAL WriteConsoleOutputCharacterA:WINAPI*> PROCEDURE WriteConsoleOutputCharacterA (hConsoleOutput : HANDLE; lpCharacter : LPSTR; nLength : DWORD; dwWriteCoord : COORD; lpNumberOfCharsWritten: LPDWORD): BOOL; <*EXTERNAL WriteConsoleOutputCharacterW:WINAPI*> PROCEDURE WriteConsoleOutputCharacterW (hConsoleOutput : HANDLE; lpCharacter : LPWSTR; nLength : DWORD; dwWriteCoord : COORD; lpNumberOfCharsWritten: LPDWORD): BOOL; CONST WriteConsoleOutputCharacter = WriteConsoleOutputCharacterA; <*EXTERNAL WriteConsoleOutputAttribute:WINAPI*> PROCEDURE WriteConsoleOutputAttribute (hConsoleOutput : HANDLE; lpAttribute : LPWORD; nLength : DWORD; dwWriteCoord : COORD; lpNumberOfAttrsWritten: LPDWORD): BOOL; <*EXTERNAL FillConsoleOutputCharacterA:WINAPI*> PROCEDURE FillConsoleOutputCharacterA (hConsoleOutput : HANDLE; cCharacter : CHAR; nLength : DWORD; dwWriteCoord : COORD; lpNumberOfCharsWritten: LPDWORD ): BOOL; <*EXTERNAL FillConsoleOutputCharacterW:WINAPI*> PROCEDURE FillConsoleOutputCharacterW (hConsoleOutput : HANDLE; cCharacter : WCHAR; nLength : DWORD; dwWriteCoord : COORD; lpNumberOfCharsWritten: LPDWORD ): BOOL; CONST FillConsoleOutputCharacter = FillConsoleOutputCharacterA; <*EXTERNAL FillConsoleOutputAttribute:WINAPI*> PROCEDURE FillConsoleOutputAttribute (hConsoleOutput : HANDLE; wAttribute : WORD; nLength : DWORD; dwWriteCoord : COORD; lpNumberOfAttrsWritten: LPDWORD ): BOOL; <*EXTERNAL GetConsoleMode:WINAPI*> PROCEDURE GetConsoleMode (hConsoleHandle: HANDLE; lpMode: LPDWORD): BOOL; <*EXTERNAL GetNumberOfConsoleInputEvents:WINAPI*> PROCEDURE GetNumberOfConsoleInputEvents (hConsoleInput : HANDLE; lpNumberOfEvents: LPDWORD ): BOOL; <*EXTERNAL GetConsoleScreenBufferInfo:WINAPI*> PROCEDURE GetConsoleScreenBufferInfo ( hConsoleOutput: HANDLE; lpConsoleScreenBufferInfo: PCONSOLE_SCREEN_BUFFER_INFO): BOOL; <*EXTERNAL GetLargestConsoleWindowSize:WINAPI*> PROCEDURE GetLargestConsoleWindowSize (hConsoleOutput: HANDLE): COORD; <*EXTERNAL GetConsoleCursorInfo:WINAPI*> PROCEDURE GetConsoleCursorInfo ( hConsoleOutput : HANDLE; lpConsoleCursorInfo: PCONSOLE_CURSOR_INFO): BOOL; <*EXTERNAL GetNumberOfConsoleMouseButtons:WINAPI*> PROCEDURE GetNumberOfConsoleMouseButtons ( lpNumberOfMouseButtons: LPDWORD): BOOL; <*EXTERNAL SetConsoleMode:WINAPI*> PROCEDURE SetConsoleMode (hConsoleHandle: HANDLE; dwMode: DWORD): BOOL; <*EXTERNAL SetConsoleActiveScreenBuffer:WINAPI*> PROCEDURE SetConsoleActiveScreenBuffer (hConsoleOutput: HANDLE): BOOL; <*EXTERNAL FlushConsoleInputBuffer:WINAPI*> PROCEDURE FlushConsoleInputBuffer (hConsoleInput: HANDLE): BOOL; <*EXTERNAL SetConsoleScreenBufferSize:WINAPI*> PROCEDURE SetConsoleScreenBufferSize (hConsoleOutput: HANDLE; dwSize : COORD ): BOOL; <*EXTERNAL SetConsoleCursorPosition:WINAPI*> PROCEDURE SetConsoleCursorPosition (hConsoleOutput : HANDLE; dwCursorPosition: COORD ): BOOL; <*EXTERNAL SetConsoleCursorInfo:WINAPI*> PROCEDURE SetConsoleCursorInfo ( hConsoleOutput : HANDLE; lpConsoleCursorInfo: PCONSOLE_CURSOR_INFO): BOOL; <*EXTERNAL ScrollConsoleScreenBufferA:WINAPI*> PROCEDURE ScrollConsoleScreenBufferA (hConsoleOutput : HANDLE; lpScrollRectangle : PSMALL_RECT; lpClipRectangle : PSMALL_RECT; dwDestinationOrigin: COORD; lpFill : PCHAR_INFO ): BOOL; <*EXTERNAL ScrollConsoleScreenBufferW:WINAPI*> PROCEDURE ScrollConsoleScreenBufferW (hConsoleOutput : HANDLE; lpScrollRectangle : PSMALL_RECT; lpClipRectangle : PSMALL_RECT; dwDestinationOrigin: COORD; lpFill : PCHAR_INFO ): BOOL; CONST ScrollConsoleScreenBuffer = ScrollConsoleScreenBufferA; <*EXTERNAL SetConsoleWindowInfo:WINAPI*> PROCEDURE SetConsoleWindowInfo (hConsoleOutput : HANDLE; bAbsolute : BOOL; lpConsoleWindow: PSMALL_RECT): BOOL; <*EXTERNAL SetConsoleTextAttribute:WINAPI*> PROCEDURE SetConsoleTextAttribute (hConsoleOutput: HANDLE; wAttributes : WORD ): BOOL; <*EXTERNAL SetConsoleCtrlHandler:WINAPI*> PROCEDURE SetConsoleCtrlHandler (HandlerRoutine: PHANDLER_ROUTINE; Add : BOOL ): BOOL; <*EXTERNAL GenerateConsoleCtrlEvent:WINAPI*> PROCEDURE GenerateConsoleCtrlEvent (dwCtrlEvent : DWORD; dwProcessGroupId: DWORD ): BOOL; <*EXTERNAL AllocConsole:WINAPI*> PROCEDURE AllocConsole (): BOOL; <*EXTERNAL FreeConsole:WINAPI*> PROCEDURE FreeConsole (): BOOL; <*EXTERNAL GetConsoleTitleA:WINAPI*> PROCEDURE GetConsoleTitleA (lpConsoleTitle: LPSTR; nSize: DWORD): DWORD; <*EXTERNAL GetConsoleTitleW:WINAPI*> PROCEDURE GetConsoleTitleW (lpConsoleTitle: LPWSTR; nSize: DWORD): DWORD; CONST GetConsoleTitle = GetConsoleTitleA; <*EXTERNAL SetConsoleTitleA:WINAPI*> PROCEDURE SetConsoleTitleA (lpConsoleTitle: LPSTR): BOOL; <*EXTERNAL SetConsoleTitleW:WINAPI*> PROCEDURE SetConsoleTitleW (lpConsoleTitle: LPWSTR): BOOL; CONST SetConsoleTitle = SetConsoleTitleA; <*EXTERNAL ReadConsoleA:WINAPI*> PROCEDURE ReadConsoleA (hConsoleInput : HANDLE; lpBuffer : LPVOID; nNumberOfCharsToRead: DWORD; lpNumberOfCharsRead : LPDWORD; lpReserved : LPVOID ): BOOL; <*EXTERNAL ReadConsoleW:WINAPI*> PROCEDURE ReadConsoleW (hConsoleInput : HANDLE; lpBuffer : LPVOID; nNumberOfCharsToRead: DWORD; lpNumberOfCharsRead : LPDWORD; lpReserved : LPVOID ): BOOL; CONST ReadConsole = ReadConsoleA; <*EXTERNAL WriteConsoleA:WINAPI*> PROCEDURE WriteConsoleA (hConsoleOutput : HANDLE; lpBuffer : Ctypes.void_star; nNumberOfCharsToWrite : DWORD; lpNumberOfCharsWritten: LPDWORD; lpReserved : LPVOID ): BOOL; <*EXTERNAL WriteConsoleW:WINAPI*> PROCEDURE WriteConsoleW (hConsoleOutput : HANDLE; lpBuffer : Ctypes.void_star; nNumberOfCharsToWrite : DWORD; lpNumberOfCharsWritten: LPDWORD; lpReserved : LPVOID ): BOOL; CONST WriteConsole = WriteConsoleA; CONST CONSOLE_TEXTMODE_BUFFER = 1; <*EXTERNAL CreateConsoleScreenBuffer:WINAPI*> PROCEDURE CreateConsoleScreenBuffer ( dwDesiredAccess : DWORD; dwShareMode : DWORD; lpSecurityAttributes: WinBase.LPSECURITY_ATTRIBUTES; dwFlags : DWORD; lpScreenBufferData : PVOID ): HANDLE; <*EXTERNAL GetConsoleCP:WINAPI*> PROCEDURE GetConsoleCP (): UINT; <*EXTERNAL SetConsoleCP:WINAPI*> PROCEDURE SetConsoleCP (wCodePageID: UINT): BOOL; <*EXTERNAL GetConsoleOutputCP:WINAPI*> PROCEDURE GetConsoleOutputCP (): UINT; <*EXTERNAL SetConsoleOutputCP:WINAPI*> PROCEDURE SetConsoleOutputCP (wCodePageID: UINT): BOOL; END WinCon.