209 lines
6.7 KiB
C
209 lines
6.7 KiB
C
/*++
|
|
|
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
Licensed under the MIT license.
|
|
|
|
Module Name:
|
|
|
|
conmsgl2.h
|
|
|
|
Abstract:
|
|
|
|
This include file defines the layer 2 message formats used to communicate
|
|
between the client and server portions of the CONSOLE portion of the
|
|
Windows subsystem.
|
|
|
|
Author:
|
|
|
|
Therese Stowell (thereses) 10-Nov-1990
|
|
|
|
Revision History:
|
|
|
|
Wedson Almeida Filho (wedsonaf) 23-May-2010
|
|
Modified the messages for use with the console driver.
|
|
|
|
--*/
|
|
|
|
#pragma once
|
|
|
|
typedef struct _CONSOLE_CREATESCREENBUFFER_MSG {
|
|
IN ULONG Flags;
|
|
IN ULONG BitmapInfoLength;
|
|
IN ULONG Usage;
|
|
} CONSOLE_CREATESCREENBUFFER_MSG, *PCONSOLE_CREATESCREENBUFFER_MSG;
|
|
|
|
#define CONSOLE_ASCII 0x1
|
|
#define CONSOLE_REAL_UNICODE 0x2
|
|
#define CONSOLE_ATTRIBUTE 0x3
|
|
#define CONSOLE_FALSE_UNICODE 0x4
|
|
|
|
typedef struct _CONSOLE_FILLCONSOLEOUTPUT_MSG {
|
|
IN COORD WriteCoord;
|
|
IN ULONG ElementType;
|
|
IN USHORT Element;
|
|
IN OUT ULONG Length;
|
|
} CONSOLE_FILLCONSOLEOUTPUT_MSG, *PCONSOLE_FILLCONSOLEOUTPUT_MSG;
|
|
|
|
typedef struct _CONSOLE_CTRLEVENT_MSG {
|
|
IN ULONG CtrlEvent;
|
|
IN ULONG ProcessGroupId;
|
|
} CONSOLE_CTRLEVENT_MSG, *PCONSOLE_CTRLEVENT_MSG;
|
|
|
|
typedef struct _CONSOLE_SETCP_MSG {
|
|
IN ULONG CodePage;
|
|
IN BOOLEAN Output;
|
|
} CONSOLE_SETCP_MSG, *PCONSOLE_SETCP_MSG;
|
|
|
|
typedef struct _CONSOLE_GETCURSORINFO_MSG {
|
|
OUT ULONG CursorSize;
|
|
OUT BOOLEAN Visible;
|
|
} CONSOLE_GETCURSORINFO_MSG, *PCONSOLE_GETCURSORINFO_MSG;
|
|
|
|
typedef struct _CONSOLE_SETCURSORINFO_MSG {
|
|
IN ULONG CursorSize;
|
|
IN BOOLEAN Visible;
|
|
} CONSOLE_SETCURSORINFO_MSG, *PCONSOLE_SETCURSORINFO_MSG;
|
|
|
|
typedef struct _CONSOLE_SCREENBUFFERINFO_MSG {
|
|
IN OUT COORD Size;
|
|
IN OUT COORD CursorPosition;
|
|
IN OUT COORD ScrollPosition;
|
|
IN OUT USHORT Attributes;
|
|
IN OUT COORD CurrentWindowSize;
|
|
IN OUT COORD MaximumWindowSize;
|
|
IN OUT USHORT PopupAttributes;
|
|
IN OUT BOOLEAN FullscreenSupported;
|
|
IN OUT COLORREF ColorTable[16];
|
|
} CONSOLE_SCREENBUFFERINFO_MSG, *PCONSOLE_SCREENBUFFERINFO_MSG;
|
|
|
|
typedef struct _CONSOLE_SETSCREENBUFFERSIZE_MSG {
|
|
IN COORD Size;
|
|
} CONSOLE_SETSCREENBUFFERSIZE_MSG, *PCONSOLE_SETSCREENBUFFERSIZE_MSG;
|
|
|
|
typedef struct _CONSOLE_SETCURSORPOSITION_MSG {
|
|
IN COORD CursorPosition;
|
|
} CONSOLE_SETCURSORPOSITION_MSG, *PCONSOLE_SETCURSORPOSITION_MSG;
|
|
|
|
typedef struct _CONSOLE_GETLARGESTWINDOWSIZE_MSG {
|
|
OUT COORD Size;
|
|
} CONSOLE_GETLARGESTWINDOWSIZE_MSG, *PCONSOLE_GETLARGESTWINDOWSIZE_MSG;
|
|
|
|
typedef struct _CONSOLE_SCROLLSCREENBUFFER_MSG {
|
|
IN SMALL_RECT ScrollRectangle;
|
|
IN SMALL_RECT ClipRectangle;
|
|
IN BOOLEAN Clip;
|
|
IN BOOLEAN Unicode;
|
|
IN COORD DestinationOrigin;
|
|
IN CHAR_INFO Fill;
|
|
} CONSOLE_SCROLLSCREENBUFFER_MSG, *PCONSOLE_SCROLLSCREENBUFFER_MSG;
|
|
|
|
typedef struct _CONSOLE_SETTEXTATTRIBUTE_MSG {
|
|
IN USHORT Attributes;
|
|
} CONSOLE_SETTEXTATTRIBUTE_MSG, *PCONSOLE_SETTEXTATTRIBUTE_MSG;
|
|
|
|
typedef struct _CONSOLE_SETWINDOWINFO_MSG {
|
|
IN BOOLEAN Absolute;
|
|
IN SMALL_RECT Window;
|
|
} CONSOLE_SETWINDOWINFO_MSG, *PCONSOLE_SETWINDOWINFO_MSG;
|
|
|
|
typedef struct _CONSOLE_READCONSOLEOUTPUTSTRING_MSG {
|
|
IN COORD ReadCoord;
|
|
IN ULONG StringType;
|
|
OUT ULONG NumRecords;
|
|
} CONSOLE_READCONSOLEOUTPUTSTRING_MSG, *PCONSOLE_READCONSOLEOUTPUTSTRING_MSG;
|
|
|
|
typedef struct _CONSOLE_WRITECONSOLEINPUT_MSG {
|
|
OUT ULONG NumRecords;
|
|
IN BOOLEAN Unicode;
|
|
IN BOOLEAN Append;
|
|
} CONSOLE_WRITECONSOLEINPUT_MSG, *PCONSOLE_WRITECONSOLEINPUT_MSG;
|
|
|
|
typedef struct _CONSOLE_WRITECONSOLEOUTPUTSTRING_MSG {
|
|
IN COORD WriteCoord;
|
|
IN ULONG StringType;
|
|
OUT ULONG NumRecords;
|
|
} CONSOLE_WRITECONSOLEOUTPUTSTRING_MSG, *PCONSOLE_WRITECONSOLEOUTPUTSTRING_MSG;
|
|
|
|
typedef struct _CONSOLE_WRITECONSOLEOUTPUT_MSG {
|
|
IN OUT SMALL_RECT CharRegion;
|
|
IN BOOLEAN Unicode;
|
|
} CONSOLE_WRITECONSOLEOUTPUT_MSG, *PCONSOLE_WRITECONSOLEOUTPUT_MSG;
|
|
|
|
typedef struct _CONSOLE_READCONSOLEOUTPUT_MSG {
|
|
IN OUT SMALL_RECT CharRegion;
|
|
IN BOOLEAN Unicode;
|
|
} CONSOLE_READCONSOLEOUTPUT_MSG, *PCONSOLE_READCONSOLEOUTPUT_MSG;
|
|
|
|
typedef struct _CONSOLE_GETTITLE_MSG {
|
|
OUT ULONG TitleLength;
|
|
IN BOOLEAN Unicode;
|
|
IN BOOLEAN Original;
|
|
} CONSOLE_GETTITLE_MSG, *PCONSOLE_GETTITLE_MSG;
|
|
|
|
typedef struct _CONSOLE_SETTITLE_MSG {
|
|
IN BOOLEAN Unicode;
|
|
} CONSOLE_SETTITLE_MSG, *PCONSOLE_SETTITLE_MSG;
|
|
|
|
typedef enum _CONSOLE_API_NUMBER_L2 {
|
|
ConsolepFillConsoleOutput = CONSOLE_FIRST_API_NUMBER(2),
|
|
ConsolepGenerateCtrlEvent,
|
|
ConsolepSetActiveScreenBuffer,
|
|
ConsolepFlushInputBuffer,
|
|
ConsolepSetCP,
|
|
ConsolepGetCursorInfo,
|
|
ConsolepSetCursorInfo,
|
|
ConsolepGetScreenBufferInfo,
|
|
ConsolepSetScreenBufferInfo,
|
|
ConsolepSetScreenBufferSize,
|
|
ConsolepSetCursorPosition,
|
|
ConsolepGetLargestWindowSize,
|
|
ConsolepScrollScreenBuffer,
|
|
ConsolepSetTextAttribute,
|
|
ConsolepSetWindowInfo,
|
|
ConsolepReadConsoleOutputString,
|
|
ConsolepWriteConsoleInput,
|
|
ConsolepWriteConsoleOutput,
|
|
ConsolepWriteConsoleOutputString,
|
|
ConsolepReadConsoleOutput,
|
|
ConsolepGetTitle,
|
|
ConsolepSetTitle,
|
|
} CONSOLE_API_NUMBER_L2, *PCONSOLE_API_NUMBER_L2;
|
|
|
|
typedef union _CONSOLE_MSG_BODY_L2 {
|
|
CONSOLE_CTRLEVENT_MSG GenerateConsoleCtrlEvent;
|
|
CONSOLE_FILLCONSOLEOUTPUT_MSG FillConsoleOutput;
|
|
CONSOLE_SETCP_MSG SetConsoleCP;
|
|
CONSOLE_GETCURSORINFO_MSG GetConsoleCursorInfo;
|
|
CONSOLE_SETCURSORINFO_MSG SetConsoleCursorInfo;
|
|
CONSOLE_SCREENBUFFERINFO_MSG GetConsoleScreenBufferInfo;
|
|
CONSOLE_SCREENBUFFERINFO_MSG SetConsoleScreenBufferInfo;
|
|
CONSOLE_SETSCREENBUFFERSIZE_MSG SetConsoleScreenBufferSize;
|
|
CONSOLE_SETCURSORPOSITION_MSG SetConsoleCursorPosition;
|
|
CONSOLE_GETLARGESTWINDOWSIZE_MSG GetLargestConsoleWindowSize;
|
|
CONSOLE_SCROLLSCREENBUFFER_MSG ScrollConsoleScreenBuffer;
|
|
CONSOLE_SETTEXTATTRIBUTE_MSG SetConsoleTextAttribute;
|
|
CONSOLE_SETWINDOWINFO_MSG SetConsoleWindowInfo;
|
|
CONSOLE_READCONSOLEOUTPUTSTRING_MSG ReadConsoleOutputString;
|
|
CONSOLE_WRITECONSOLEINPUT_MSG WriteConsoleInput;
|
|
CONSOLE_WRITECONSOLEOUTPUTSTRING_MSG WriteConsoleOutputString;
|
|
CONSOLE_WRITECONSOLEOUTPUT_MSG WriteConsoleOutput;
|
|
CONSOLE_READCONSOLEOUTPUT_MSG ReadConsoleOutput;
|
|
CONSOLE_SETTITLE_MSG SetConsoleTitle;
|
|
CONSOLE_GETTITLE_MSG GetConsoleTitle;
|
|
} CONSOLE_MSG_BODY_L2, *PCONSOLE_MSG_BODY_L2;
|
|
|
|
#ifndef __cplusplus
|
|
typedef struct _CONSOLE_MSG_L2 {
|
|
CONSOLE_MSG_HEADER Header;
|
|
union {
|
|
CONSOLE_MSG_BODY_L2;
|
|
} u;
|
|
} CONSOLE_MSG_L2, *PCONSOLE_MSG_L2;
|
|
#else
|
|
typedef struct _CONSOLE_MSG_L2 :
|
|
public CONSOLE_MSG_HEADER
|
|
{
|
|
CONSOLE_MSG_BODY_L2 u;
|
|
} CONSOLE_MSG_L2, *PCONSOLE_MSG_L2;
|
|
#endif // __cplusplus
|