[NTDLL/KERNEL32/CSRSRV/WIN32K/USER32/WIN32CSR]
[reactos.git] / include / reactos / subsys / csrss / csrcons.h
1 /*
2 * CSRSS Console management structures.
3 */
4
5 #ifndef __CSRCONS_H__
6 #define __CSRCONS_H__
7
8 #include <drivers/blue/ntddblue.h>
9
10 typedef struct
11 {
12 HANDLE ConsoleHandle;
13 BOOL Unicode;
14 ULONG NrCharactersToWrite;
15 ULONG NrCharactersWritten;
16 HANDLE UnpauseEvent;
17 BYTE Buffer[0];
18 } CSRSS_WRITE_CONSOLE, *PCSRSS_WRITE_CONSOLE;
19
20 typedef struct
21 {
22 HANDLE ConsoleHandle;
23 BOOL Unicode;
24 WORD NrCharactersToRead;
25 WORD NrCharactersRead;
26 HANDLE EventHandle;
27 PVOID Buffer;
28 UNICODE_STRING ExeName;
29 DWORD CtrlWakeupMask;
30 DWORD ControlKeyState;
31 } CSRSS_READ_CONSOLE, *PCSRSS_READ_CONSOLE;
32
33 typedef struct
34 {
35 PCONTROLDISPATCHER CtrlDispatcher;
36 BOOLEAN ConsoleNeeded;
37 INT ShowCmd;
38 HANDLE Console;
39 HANDLE InputHandle;
40 HANDLE OutputHandle;
41 } CSRSS_ALLOC_CONSOLE, *PCSRSS_ALLOC_CONSOLE;
42
43 typedef struct
44 {
45 ULONG Dummy;
46 } CSRSS_FREE_CONSOLE, *PCSRSS_FREE_CONSOLE;
47
48 typedef struct
49 {
50 HANDLE ConsoleHandle;
51 CONSOLE_SCREEN_BUFFER_INFO Info;
52 } CSRSS_SCREEN_BUFFER_INFO, *PCSRSS_SCREEN_BUFFER_INFO;
53
54 typedef struct
55 {
56 HANDLE ConsoleHandle;
57 COORD Position;
58 } CSRSS_SET_CURSOR, *PCSRSS_SET_CURSOR;
59
60 typedef struct
61 {
62 HANDLE ConsoleHandle;
63 BOOL Unicode;
64 union
65 {
66 CHAR AsciiChar;
67 WCHAR UnicodeChar;
68 } Char;
69 COORD Position;
70 WORD Length;
71 ULONG NrCharactersWritten;
72 } CSRSS_FILL_OUTPUT, *PCSRSS_FILL_OUTPUT;
73
74 typedef struct
75 {
76 HANDLE ConsoleHandle;
77 CHAR Attribute;
78 COORD Coord;
79 WORD Length;
80 } CSRSS_FILL_OUTPUT_ATTRIB, *PCSRSS_FILL_OUTPUT_ATTRIB;
81
82 typedef struct
83 {
84 HANDLE ConsoleHandle;
85 BOOL Unicode;
86 INPUT_RECORD Input;
87 BOOL MoreEvents;
88 HANDLE Event;
89 } CSRSS_READ_INPUT, *PCSRSS_READ_INPUT;
90
91 typedef struct
92 {
93 HANDLE ConsoleHandle;
94 BOOL Unicode;
95 WORD Length;
96 COORD Coord;
97 COORD EndCoord;
98 ULONG NrCharactersWritten;
99 CHAR String[0];
100 } CSRSS_WRITE_CONSOLE_OUTPUT_CHAR, *PCSRSS_WRITE_CONSOLE_OUTPUT_CHAR;
101
102 typedef struct
103 {
104 HANDLE ConsoleHandle;
105 WORD Length;
106 COORD Coord;
107 COORD EndCoord;
108 WORD Attribute[0];
109 } CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB, *PCSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB;
110
111 typedef struct
112 {
113 HANDLE ConsoleHandle;
114 CONSOLE_CURSOR_INFO Info;
115 } CSRSS_GET_CURSOR_INFO, *PCSRSS_GET_CURSOR_INFO;
116
117 typedef struct
118 {
119 HANDLE ConsoleHandle;
120 CONSOLE_CURSOR_INFO Info;
121 } CSRSS_SET_CURSOR_INFO, *PCSRSS_SET_CURSOR_INFO;
122
123 typedef struct
124 {
125 HANDLE ConsoleHandle;
126 WORD Attrib;
127 } CSRSS_SET_ATTRIB, *PCSRSS_SET_ATTRIB;
128
129 typedef struct
130 {
131 HANDLE ConsoleHandle;
132 DWORD Mode;
133 } CSRSS_SET_CONSOLE_MODE, *PCSRSS_SET_CONSOLE_MODE;
134
135 typedef struct
136 {
137 HANDLE ConsoleHandle;
138 DWORD ConsoleMode;
139 } CSRSS_GET_CONSOLE_MODE, *PCSRSS_GET_CONSOLE_MODE;
140
141 typedef struct
142 {
143 DWORD Access;
144 DWORD ShareMode;
145 BOOL Inheritable;
146 HANDLE OutputHandle; /* handle to newly created screen buffer */
147 } CSRSS_CREATE_SCREEN_BUFFER, *PCSRSS_CREATE_SCREEN_BUFFER;
148
149 typedef struct
150 {
151 HANDLE OutputHandle; /* handle to screen buffer to switch to */
152 } CSRSS_SET_SCREEN_BUFFER, *PCSRSS_SET_SCREEN_BUFFER;
153
154 typedef struct
155 {
156 DWORD Length;
157 PWCHAR Title;
158 } CSRSS_SET_TITLE, *PCSRSS_SET_TITLE;
159
160 typedef struct
161 {
162 DWORD Length;
163 PWCHAR Title;
164 } CSRSS_GET_TITLE, *PCSRSS_GET_TITLE;
165
166 typedef struct
167 {
168 HANDLE ConsoleHandle;
169 BOOL Unicode;
170 COORD BufferSize;
171 COORD BufferCoord;
172 SMALL_RECT WriteRegion;
173 CHAR_INFO* CharInfo;
174 } CSRSS_WRITE_CONSOLE_OUTPUT, *PCSRSS_WRITE_CONSOLE_OUTPUT;
175
176 typedef struct
177 {
178 HANDLE ConsoleInput;
179 } CSRSS_FLUSH_INPUT_BUFFER, *PCSRSS_FLUSH_INPUT_BUFFER;
180
181 typedef struct
182 {
183 HANDLE ConsoleHandle;
184 BOOL Unicode;
185 SMALL_RECT ScrollRectangle;
186 BOOLEAN UseClipRectangle;
187 SMALL_RECT ClipRectangle;
188 COORD DestinationOrigin;
189 CHAR_INFO Fill;
190 } CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER, *PCSRSS_SCROLL_CONSOLE_SCREEN_BUFFER;
191
192 typedef struct
193 {
194 HANDLE ConsoleHandle;
195 BOOL Unicode;
196 DWORD NumCharsToRead;
197 COORD ReadCoord;
198 COORD EndCoord;
199 DWORD CharsRead;
200 CHAR String[0];
201 } CSRSS_READ_CONSOLE_OUTPUT_CHAR, *PCSRSS_READ_CONSOLE_OUTPUT_CHAR;
202
203 typedef struct
204 {
205 HANDLE ConsoleHandle;
206 DWORD NumAttrsToRead;
207 COORD ReadCoord;
208 COORD EndCoord;
209 WORD Attribute[0];
210 } CSRSS_READ_CONSOLE_OUTPUT_ATTRIB, *PCSRSS_READ_CONSOLE_OUTPUT_ATTRIB;
211
212
213 typedef struct
214 {
215 HANDLE ConsoleHandle;
216 BOOL Unicode;
217 DWORD Length;
218 INPUT_RECORD* InputRecord;
219 } CSRSS_PEEK_CONSOLE_INPUT, *PCSRSS_PEEK_CONSOLE_INPUT;
220
221 typedef struct
222 {
223 HANDLE ConsoleHandle;
224 BOOL Unicode;
225 COORD BufferSize;
226 COORD BufferCoord;
227 SMALL_RECT ReadRegion;
228 CHAR_INFO* CharInfo;
229 } CSRSS_READ_CONSOLE_OUTPUT, *PCSRSS_READ_CONSOLE_OUTPUT;
230
231 typedef struct
232 {
233 HANDLE ConsoleHandle;
234 BOOL Unicode;
235 DWORD Length;
236 INPUT_RECORD* InputRecord;
237 } CSRSS_WRITE_CONSOLE_INPUT, *PCSRSS_WRITE_CONSOLE_INPUT;
238
239 typedef struct
240 {
241 DWORD Access;
242 BOOL Inheritable;
243 HANDLE Handle;
244 DWORD ShareMode;
245 } CSRSS_GET_INPUT_HANDLE, *PCSRSS_GET_INPUT_HANDLE,
246 CSRSS_GET_OUTPUT_HANDLE, *PCSRSS_GET_OUTPUT_HANDLE;
247
248
249 #define CONSOLE_HARDWARE_STATE_GET 0
250 #define CONSOLE_HARDWARE_STATE_SET 1
251
252 #define CONSOLE_HARDWARE_STATE_GDI_MANAGED 0
253 #define CONSOLE_HARDWARE_STATE_DIRECT 1
254
255 typedef struct
256 {
257 HANDLE ConsoleHandle;
258 DWORD SetGet; /* 0=get; 1=set */
259 DWORD State;
260 } CSRSS_SETGET_CONSOLE_HW_STATE, *PCSRSS_SETGET_CONSOLE_HW_STATE;
261
262 typedef struct
263 {
264 HWND WindowHandle;
265 } CSRSS_GET_CONSOLE_WINDOW, *PCSRSS_GET_CONSOLE_WINDOW;
266
267 typedef struct
268 {
269 HICON WindowIcon;
270 } CSRSS_SET_CONSOLE_ICON, *PCSRSS_SET_CONSOLE_ICON;
271
272 typedef struct
273 {
274 ULONG SourceLength;
275 ULONG ExeLength;
276 ULONG TargetLength;
277 } CSRSS_ADD_CONSOLE_ALIAS, *PCSRSS_ADD_CONSOLE_ALIAS;
278
279 typedef struct
280 {
281 ULONG SourceLength;
282 ULONG ExeLength;
283 ULONG BytesWritten;
284 ULONG TargetBufferLength;
285 PVOID TargetBuffer;
286 } CSRSS_GET_CONSOLE_ALIAS, *PCSRSS_GET_CONSOLE_ALIAS;
287
288 typedef struct
289 {
290 LPWSTR lpExeName;
291 DWORD BytesWritten;
292 DWORD AliasBufferLength;
293 LPWSTR AliasBuffer;
294 } CSRSS_GET_ALL_CONSOLE_ALIASES, *PCSRSS_GET_ALL_CONSOLE_ALIAS;
295
296 typedef struct
297 {
298 LPWSTR lpExeName;
299 DWORD Length;
300 } CSRSS_GET_ALL_CONSOLE_ALIASES_LENGTH, *PCSRSS_GET_ALL_CONSOLE_ALIASES_LENGTH;
301
302 typedef struct
303 {
304 DWORD BytesWritten;
305 DWORD Length;
306 LPWSTR ExeNames;
307 } CSRSS_GET_CONSOLE_ALIASES_EXES, *PCSRSS_GET_CONSOLE_ALIASES_EXES;
308
309 typedef struct
310 {
311 DWORD Length;
312 } CSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH, *PCSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH;
313
314 typedef struct
315 {
316 DWORD Event;
317 DWORD ProcessGroup;
318 } CSRSS_GENERATE_CTRL_EVENT, *PCSRSS_GENERATE_CTRL_EVENT;
319
320 typedef struct
321 {
322 HANDLE ConsoleHandle;
323 DWORD NumInputEvents;
324 } CSRSS_GET_NUM_INPUT_EVENTS, *PCSRSS_GET_NUM_INPUT_EVENTS;
325
326 typedef struct
327 {
328 HANDLE OutputHandle;
329 COORD Size;
330 } CSRSS_SET_SCREEN_BUFFER_SIZE, *PCSRSS_SET_SCREEN_BUFFER_SIZE;
331
332 typedef struct
333 {
334 CONSOLE_SELECTION_INFO Info;
335 } CSRSS_GET_CONSOLE_SELECTION_INFO, *PCSRSS_GET_CONSOLE_SELECTION_INFO;
336
337 typedef struct
338 {
339 UNICODE_STRING ExeName;
340 DWORD Length;
341 } CSRSS_GET_COMMAND_HISTORY_LENGTH, *PCSRSS_GET_COMMAND_HISTORY_LENGTH;
342
343 typedef struct
344 {
345 UNICODE_STRING ExeName;
346 PWCHAR History;
347 DWORD Length;
348 } CSRSS_GET_COMMAND_HISTORY, *PCSRSS_GET_COMMAND_HISTORY;
349
350 typedef struct
351 {
352 UNICODE_STRING ExeName;
353 } CSRSS_EXPUNGE_COMMAND_HISTORY, *PCSRSS_EXPUNGE_COMMAND_HISTORY;
354
355 typedef struct
356 {
357 UNICODE_STRING ExeName;
358 DWORD NumCommands;
359 } CSRSS_SET_HISTORY_NUMBER_COMMANDS, *PCSRSS_SET_HISTORY_NUMBER_COMMANDS;
360
361 typedef struct
362 {
363 DWORD HistoryBufferSize;
364 DWORD NumberOfHistoryBuffers;
365 DWORD dwFlags;
366 } CSRSS_GET_HISTORY_INFO, *PCSRSS_GET_HISTORY_INFO,
367 CSRSS_SET_HISTORY_INFO, *PCSRSS_SET_HISTORY_INFO;;
368
369
370 typedef struct
371 {
372 UINT CodePage;
373 } CSRSS_GET_CONSOLE_CP, *PCSRSS_GET_CONSOLE_CP;
374
375 typedef struct
376 {
377 UINT CodePage;
378 } CSRSS_SET_CONSOLE_CP, *PCSRSS_SET_CONSOLE_CP;
379
380 typedef struct
381 {
382 UINT CodePage;
383 } CSRSS_GET_CONSOLE_OUTPUT_CP, *PCSRSS_GET_CONSOLE_OUTPUT_CP;
384
385 typedef struct
386 {
387 UINT CodePage;
388 } CSRSS_SET_CONSOLE_OUTPUT_CP, *PCSRSS_SET_CONSOLE_OUTPUT_CP;
389
390 #endif // __CSRCONS_H__
391
392 /* EOF */