-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconmsgl1.h
More file actions
156 lines (123 loc) · 4.07 KB
/
Copy pathconmsgl1.h
File metadata and controls
156 lines (123 loc) · 4.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
/*++
Copyright (c) Microsoft Corporation. All rights reserved.
Module Name:
conmsgl1.h
Abstract:
This include file defines the layer 1 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
#define CONSOLE_FIRST_API_NUMBER(Layer) \
(Layer << 24) \
typedef struct _CONSOLE_SERVER_MSG {
ULONG IconId;
ULONG HotKey;
ULONG StartupFlags;
USHORT FillAttribute;
USHORT ShowWindow;
COORD ScreenBufferSize;
COORD WindowSize;
COORD WindowOrigin;
ULONG ProcessGroupId;
BOOLEAN ConsoleApp;
BOOLEAN WindowVisible;
USHORT TitleLength;
WCHAR Title[MAX_PATH + 1];
USHORT ApplicationNameLength;
WCHAR ApplicationName[128];
USHORT CurrentDirectoryLength;
WCHAR CurrentDirectory[MAX_PATH + 1];
} CONSOLE_SERVER_MSG, *PCONSOLE_SERVER_MSG;
typedef struct _CONSOLE_BROKER_DATA {
WCHAR DesktopName[MAX_PATH];
} CONSOLE_BROKER_MSG, *PCONSOLE_BROKER_MSG;
typedef struct _CONSOLE_GETCP_MSG {
OUT ULONG CodePage;
IN BOOLEAN Output;
} CONSOLE_GETCP_MSG, *PCONSOLE_GETCP_MSG;
typedef struct _CONSOLE_MODE_MSG {
IN OUT ULONG Mode;
} CONSOLE_MODE_MSG, *PCONSOLE_MODE_MSG;
typedef struct _CONSOLE_GETNUMBEROFINPUTEVENTS_MSG {
OUT ULONG ReadyEvents;
} CONSOLE_GETNUMBEROFINPUTEVENTS_MSG, *PCONSOLE_GETNUMBEROFINPUTEVENTS_MSG;
typedef struct _CONSOLE_GETCONSOLEINPUT_MSG {
OUT ULONG NumRecords;
IN USHORT Flags;
IN BOOLEAN Unicode;
} CONSOLE_GETCONSOLEINPUT_MSG, *PCONSOLE_GETCONSOLEINPUT_MSG;
typedef struct _CONSOLE_READCONSOLE_MSG {
IN BOOLEAN Unicode;
IN BOOLEAN ProcessControlZ;
IN USHORT ExeNameLength;
IN ULONG InitialNumBytes;
IN ULONG CtrlWakeupMask;
OUT ULONG ControlKeyState;
OUT ULONG NumBytes;
} CONSOLE_READCONSOLE_MSG, *PCONSOLE_READCONSOLE_MSG;
typedef struct _CONSOLE_WRITECONSOLE_MSG {
OUT ULONG NumBytes;
IN BOOLEAN Unicode;
} CONSOLE_WRITECONSOLE_MSG, *PCONSOLE_WRITECONSOLE_MSG;
typedef struct _CONSOLE_LANGID_MSG {
OUT LANGID LangId;
} CONSOLE_LANGID_MSG, *PCONSOLE_LANGID_MSG;
typedef struct _CONSOLE_MAPBITMAP_MSG {
OUT HANDLE Mutex;
OUT PVOID Bitmap;
} CONSOLE_MAPBITMAP_MSG, *PCONSOLE_MAPBITMAP_MSG;
typedef struct _CONSOLE_MAPBITMAP_MSG64 {
OUT PVOID64 Mutex;
OUT PVOID64 Bitmap;
} CONSOLE_MAPBITMAP_MSG64, *PCONSOLE_MAPBITMAP_MSG64;
typedef enum _CONSOLE_API_NUMBER_L1 {
ConsolepGetCP = CONSOLE_FIRST_API_NUMBER(1),
ConsolepGetMode,
ConsolepSetMode,
ConsolepGetNumberOfInputEvents,
ConsolepGetConsoleInput,
ConsolepReadConsole,
ConsolepWriteConsole,
ConsolepNotifyLastClose,
ConsolepGetLangId,
ConsolepMapBitmap,
} CONSOLE_API_NUMBER_L1, *PCONSOLE_API_NUMBER_L1;
typedef struct _CONSOLE_MSG_HEADER {
ULONG ApiNumber;
ULONG ApiDescriptorSize;
} CONSOLE_MSG_HEADER, *PCONSOLE_MSG_HEADER;
typedef union _CONSOLE_MSG_BODY_L1 {
CONSOLE_GETCP_MSG GetConsoleCP;
CONSOLE_MODE_MSG GetConsoleMode;
CONSOLE_MODE_MSG SetConsoleMode;
CONSOLE_GETNUMBEROFINPUTEVENTS_MSG GetNumberOfConsoleInputEvents;
CONSOLE_GETCONSOLEINPUT_MSG GetConsoleInput;
CONSOLE_READCONSOLE_MSG ReadConsole;
CONSOLE_WRITECONSOLE_MSG WriteConsole;
CONSOLE_LANGID_MSG GetConsoleLangId;
#if defined(BUILD_WOW6432) && !defined(BUILD_WOW3232)
CONSOLE_MAPBITMAP_MSG64 MapBitmap;
#else
CONSOLE_MAPBITMAP_MSG MapBitmap;
#endif
} CONSOLE_MSG_BODY_L1, *PCONSOLE_MSG_BODY_L1;
#ifndef __cplusplus
typedef struct _CONSOLE_MSG_L1 {
CONSOLE_MSG_HEADER Header;
union {
CONSOLE_MSG_BODY_L1;
} u;
} CONSOLE_MSG_L1, *PCONSOLE_MSG_L1;
#else
typedef struct _CONSOLE_MSG_L1 :
public CONSOLE_MSG_HEADER
{
CONSOLE_MSG_BODY_L1 u;
} CONSOLE_MSG_L1, *PCONSOLE_MSG_L1;
#endif // __cplusplus