43884d112060c35c924480781d3455bdc439518b
[reactos.git] / include / reactos / subsys / win / conmsg.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Client/Server Runtime SubSystem
4 * FILE: include/reactos/subsys/win/conmsg.h
5 * PURPOSE: Public definitions for communication
6 * between Console API Clients and Servers
7 * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
8 */
9
10 #ifndef _CONMSG_H
11 #define _CONMSG_H
12
13 #pragma once
14
15 #define CONSRV_SERVERDLL_INDEX 2
16 #define CONSRV_FIRST_API_NUMBER 512
17
18 // Windows Server 2003 table from http://j00ru.vexillium.org/csrss_list/api_list.html#Windows_2k3
19 // plus a little bit of Windows 7.
20 typedef enum _CONSRV_API_NUMBER
21 {
22 ConsolepOpenConsole = CONSRV_FIRST_API_NUMBER,
23 ConsolepGetConsoleInput,
24 ConsolepWriteConsoleInput,
25 ConsolepReadConsoleOutput,
26 ConsolepWriteConsoleOutput,
27 ConsolepReadConsoleOutputString,
28 ConsolepWriteConsoleOutputString,
29 ConsolepFillConsoleOutput,
30 ConsolepGetMode,
31 // ConsolepGetNumberOfFonts,
32 ConsolepGetNumberOfInputEvents,
33 ConsolepGetScreenBufferInfo,
34 ConsolepGetCursorInfo,
35 // ConsolepGetMouseInfo,
36 // ConsolepGetFontInfo,
37 // ConsolepGetFontSize,
38 // ConsolepGetCurrentFont,
39 ConsolepSetMode,
40 ConsolepSetActiveScreenBuffer,
41 ConsolepFlushInputBuffer,
42 ConsolepGetLargestWindowSize,
43 ConsolepSetScreenBufferSize,
44 ConsolepSetCursorPosition,
45 ConsolepSetCursorInfo,
46 ConsolepSetWindowInfo,
47 ConsolepScrollScreenBuffer,
48 ConsolepSetTextAttribute,
49 // ConsolepSetFont,
50 ConsolepSetIcon,
51 ConsolepReadConsole,
52 ConsolepWriteConsole,
53 ConsolepDuplicateHandle,
54 // ConsolepGetHandleInformation,
55 // ConsolepSetHandleInformation,
56 ConsolepCloseHandle,
57 ConsolepVerifyIoHandle,
58 ConsolepAlloc,
59 ConsolepFree,
60 ConsolepGetTitle,
61 ConsolepSetTitle,
62 ConsolepCreateScreenBuffer,
63 // ConsolepInvalidateBitMapRect,
64 // ConsolepVDMOperation,
65 // ConsolepSetCursor,
66 // ConsolepShowCursor,
67 // ConsolepMenuControl,
68 // ConsolepSetPalette,
69 ConsolepSetDisplayMode,
70 // ConsolepRegisterVDM,
71 ConsolepGetHardwareState,
72 ConsolepSetHardwareState,
73 ConsolepGetDisplayMode,
74 ConsolepAddAlias,
75 ConsolepGetAlias,
76 ConsolepGetAliasesLength,
77 ConsolepGetAliasExesLength,
78 ConsolepGetAliases,
79 ConsolepGetAliasExes,
80 ConsolepExpungeCommandHistory,
81 ConsolepSetNumberOfCommands,
82 ConsolepGetCommandHistoryLength,
83 ConsolepGetCommandHistory,
84 // ConsolepSetCommandHistoryMode,
85 ConsolepGetCP,
86 ConsolepSetCP,
87 // ConsolepSetKeyShortcuts,
88 // ConsolepSetMenuClose,
89 // ConsolepNotifyLastClose,
90 ConsolepGenerateCtrlEvent,
91 // ConsolepGetKeyboardLayoutName,
92 ConsolepGetConsoleWindow,
93 // ConsolepCharType,
94 // ConsolepSetLocalEUDC,
95 // ConsolepSetCursorMode,
96 // ConsolepGetCursorMode,
97 // ConsolepRegisterOS2,
98 // ConsolepSetOS2OemFormat,
99 // ConsolepGetNlsMode,
100 // ConsolepSetNlsMode,
101 // ConsolepRegisterConsoleIME,
102 // ConsolepUnregisterConsoleIME,
103 // ConsolepGetLangId,
104 ConsolepAttach,
105 ConsolepGetSelectionInfo,
106 ConsolepGetProcessList,
107 ConsolepGetHistory,
108 ConsolepSetHistory,
109
110 ConsolepMaxApiNumber
111 } CONSRV_API_NUMBER, *PCONSRV_API_NUMBER;
112
113
114 typedef struct _CONSOLE_START_INFO
115 {
116 DWORD dwStartupFlags;
117 DWORD FillAttribute;
118 COORD ScreenBufferSize;
119 WORD ShowWindow;
120 POINT ConsoleWindowOrigin;
121 SIZE ConsoleWindowSize;
122 // UNICODE_STRING ConsoleTitle;
123 WCHAR ConsoleTitle[MAX_PATH + 1]; // Console title or full path to the startup shortcut
124 WCHAR AppPath[MAX_PATH + 1]; // Full path of the launched app
125 } CONSOLE_START_INFO, *PCONSOLE_START_INFO;
126
127 typedef struct _CONSOLE_CONNECTION_INFO
128 {
129 BOOL ConsoleNeeded; // Used for GUI apps only.
130
131 /* Adapted from CONSOLE_ALLOCCONSOLE */
132 CONSOLE_START_INFO ConsoleStartInfo;
133
134 HANDLE Console; // ConsoleHandle // In fact, it is a PCSRSS_CONSOLE <-- correct that !!
135 HANDLE InputHandle;
136 HANDLE OutputHandle;
137 HANDLE ErrorHandle;
138 HANDLE InputWaitHandle;
139 LPTHREAD_START_ROUTINE CtrlDispatcher;
140 LPTHREAD_START_ROUTINE PropDispatcher;
141 } CONSOLE_CONNECTION_INFO, *PCONSOLE_CONNECTION_INFO;
142
143
144 typedef struct
145 {
146 USHORT nMaxIds;
147 ULONG nProcessIdsTotal;
148 PDWORD pProcessIds;
149 } CONSOLE_GETPROCESSLIST, *PCONSOLE_GETPROCESSLIST;
150
151 typedef struct
152 {
153 HANDLE OutputHandle;
154
155 BOOL Unicode;
156 ULONG NrCharactersToWrite;
157 ULONG NrCharactersWritten;
158
159 ULONG BufferSize;
160 PVOID Buffer;
161 } CONSOLE_WRITECONSOLE, *PCONSOLE_WRITECONSOLE;
162
163 typedef struct
164 {
165 HANDLE InputHandle;
166
167 BOOL Unicode;
168 WORD NrCharactersToRead;
169 WORD NrCharactersRead;
170
171 UNICODE_STRING ExeName;
172 DWORD CtrlWakeupMask;
173 DWORD ControlKeyState;
174
175 ULONG BufferSize;
176 PVOID Buffer;
177 } CONSOLE_READCONSOLE, *PCONSOLE_READCONSOLE;
178
179 typedef struct
180 {
181 PCONSOLE_START_INFO ConsoleStartInfo;
182
183 HANDLE Console; // ConsoleHandle // In fact, it is a PCSRSS_CONSOLE <-- correct that !!
184 HANDLE InputHandle;
185 HANDLE OutputHandle;
186 HANDLE ErrorHandle;
187 HANDLE InputWaitHandle;
188 LPTHREAD_START_ROUTINE CtrlDispatcher;
189 LPTHREAD_START_ROUTINE PropDispatcher;
190 } CONSOLE_ALLOCCONSOLE, *PCONSOLE_ALLOCCONSOLE;
191
192 typedef struct
193 {
194 DWORD ProcessId; // If ProcessId == ATTACH_PARENT_PROCESS == -1, then attach the current process to its parent process console.
195 HANDLE Console; // ConsoleHandle // In fact, it is a PCSRSS_CONSOLE <-- correct that !!
196 HANDLE InputHandle;
197 HANDLE OutputHandle;
198 HANDLE ErrorHandle;
199 HANDLE InputWaitHandle;
200 LPTHREAD_START_ROUTINE CtrlDispatcher;
201 LPTHREAD_START_ROUTINE PropDispatcher;
202 } CONSOLE_ATTACHCONSOLE, *PCONSOLE_ATTACHCONSOLE;
203
204 typedef struct
205 {
206 ULONG Dummy;
207 } CONSOLE_FREECONSOLE, *PCONSOLE_FREECONSOLE;
208
209 typedef struct
210 {
211 HANDLE OutputHandle;
212 CONSOLE_SCREEN_BUFFER_INFO Info;
213 } CONSOLE_GETSCREENBUFFERINFO, *PCONSOLE_GETSCREENBUFFERINFO;
214
215 typedef struct
216 {
217 HANDLE OutputHandle;
218 COORD Position;
219 } CONSOLE_SETCURSORPOSITION, *PCONSOLE_SETCURSORPOSITION;
220
221 typedef struct
222 {
223 HANDLE OutputHandle;
224 CONSOLE_CURSOR_INFO Info;
225 } CONSOLE_GETSETCURSORINFO, *PCONSOLE_GETSETCURSORINFO;
226
227 typedef struct
228 {
229 HANDLE OutputHandle;
230 WORD Attrib;
231 } CONSOLE_SETTEXTATTRIB, *PCONSOLE_SETTEXTATTRIB;
232
233 typedef struct
234 {
235 HANDLE ConsoleHandle; /* A valid input or output console handle */
236 DWORD ConsoleMode;
237 } CONSOLE_GETSETCONSOLEMODE, *PCONSOLE_GETSETCONSOLEMODE;
238
239
240 #define CONSOLE_WINDOWED 0 /* Internal console hardware state */
241 typedef struct
242 {
243 // HANDLE OutputHandle;
244 DWORD DisplayMode;
245 } CONSOLE_GETDISPLAYMODE, *PCONSOLE_GETDISPLAYMODE;
246
247 typedef struct
248 {
249 HANDLE OutputHandle;
250 DWORD DisplayMode;
251 COORD NewSBDim;
252 } CONSOLE_SETDISPLAYMODE, *PCONSOLE_SETDISPLAYMODE;
253
254 /*
255 * Console hardware states.
256 */
257 #define CONSOLE_HARDWARE_STATE_GDI_MANAGED 0
258 #define CONSOLE_HARDWARE_STATE_DIRECT 1
259
260 typedef struct
261 {
262 HANDLE OutputHandle;
263 DWORD State;
264 } CONSOLE_GETSETHWSTATE, *PCONSOLE_GETSETHWSTATE;
265
266
267 typedef struct
268 {
269 HANDLE OutputHandle; /* Handle to newly created screen buffer */
270
271 DWORD Access;
272 DWORD ShareMode;
273 BOOL Inheritable;
274 } CONSOLE_CREATESCREENBUFFER, *PCONSOLE_CREATESCREENBUFFER;
275
276 typedef struct
277 {
278 HANDLE OutputHandle; /* Handle to screen buffer to switch to */
279 } CONSOLE_SETACTIVESCREENBUFFER, *PCONSOLE_SETACTIVESCREENBUFFER;
280
281 typedef struct
282 {
283 DWORD Length;
284 PWCHAR Title;
285 } CONSOLE_GETSETCONSOLETITLE, *PCONSOLE_GETSETCONSOLETITLE;
286
287 typedef struct
288 {
289 HANDLE OutputHandle;
290
291 BOOL Unicode;
292 COORD BufferSize;
293 COORD BufferCoord;
294 SMALL_RECT WriteRegion;
295 CHAR_INFO* CharInfo;
296 } CONSOLE_WRITEOUTPUT, *PCONSOLE_WRITEOUTPUT;
297
298 typedef struct
299 {
300 HANDLE InputHandle;
301 } CONSOLE_FLUSHINPUTBUFFER, *PCONSOLE_FLUSHINPUTBUFFER;
302
303 typedef struct
304 {
305 HANDLE OutputHandle;
306
307 BOOL Unicode;
308 SMALL_RECT ScrollRectangle;
309 BOOL UseClipRectangle;
310 SMALL_RECT ClipRectangle;
311 COORD DestinationOrigin;
312 CHAR_INFO Fill;
313 } CONSOLE_SCROLLSCREENBUFFER, *PCONSOLE_SCROLLSCREENBUFFER;
314
315
316 /*
317 * An attribute or a character are instances of the same entity, namely
318 * a "code" (what would be called an (ANSI) escape sequence). Therefore
319 * encode them inside the same structure.
320 */
321 typedef enum _CODE_TYPE
322 {
323 CODE_ASCII = 0x01,
324 CODE_UNICODE = 0x02,
325 CODE_ATTRIBUTE = 0x03
326 } CODE_TYPE;
327
328 typedef struct
329 {
330 HANDLE OutputHandle;
331
332 DWORD NumCodesToRead;
333 COORD ReadCoord;
334 COORD EndCoord;
335
336 DWORD CodesRead;
337
338 CODE_TYPE CodeType;
339 union
340 {
341 PVOID pCode;
342 PCHAR AsciiChar;
343 PWCHAR UnicodeChar;
344 PWORD Attribute;
345 } pCode; // Either a pointer to a character or to an attribute.
346 } CONSOLE_READOUTPUTCODE, *PCONSOLE_READOUTPUTCODE;
347
348 typedef struct
349 {
350 HANDLE OutputHandle;
351
352 ULONG BufferSize;
353 WORD Length;
354 COORD Coord;
355 COORD EndCoord;
356
357 ULONG NrCharactersWritten;
358
359 USHORT CodeType;
360 union
361 {
362 // PVOID String;
363 PVOID pCode;
364 PCHAR AsciiChar;
365 PWCHAR UnicodeChar;
366 PWORD Attribute;
367 } pCode; // Either a pointer to a character or to an attribute.
368 } CONSOLE_WRITEOUTPUTCODE, *PCONSOLE_WRITEOUTPUTCODE;
369
370 typedef struct
371 {
372 HANDLE OutputHandle;
373
374 CODE_TYPE CodeType;
375 union
376 {
377 CHAR AsciiChar;
378 WCHAR UnicodeChar;
379 WORD Attribute;
380 } Code; // Either a character or an attribute.
381
382 COORD Coord;
383 ULONG Length;
384
385 ULONG NrCharactersWritten; // FIXME: Only for chars, is it removable ?
386 } CONSOLE_FILLOUTPUTCODE, *PCONSOLE_FILLOUTPUTCODE;
387
388 typedef struct
389 {
390 HANDLE InputHandle;
391 BOOL Unicode;
392 BOOL bRead; // TRUE --> Read ; FALSE --> Peek
393
394 ULONG InputsRead;
395
396 ULONG Length;
397 PINPUT_RECORD InputRecord;
398 } CONSOLE_GETINPUT, *PCONSOLE_GETINPUT;
399
400 typedef struct
401 {
402 HANDLE OutputHandle;
403
404 BOOL Unicode;
405 COORD BufferSize;
406 COORD BufferCoord;
407 SMALL_RECT ReadRegion;
408 CHAR_INFO* CharInfo;
409 } CONSOLE_READOUTPUT, *PCONSOLE_READOUTPUT;
410
411 typedef struct
412 {
413 HANDLE InputHandle;
414 BOOL Unicode;
415 DWORD Length;
416 INPUT_RECORD* InputRecord;
417 } CONSOLE_WRITEINPUT, *PCONSOLE_WRITEINPUT;
418
419 typedef struct
420 {
421 HANDLE ConsoleHandle;
422 } CONSOLE_CLOSEHANDLE, *PCONSOLE_CLOSEHANDLE;
423
424 typedef struct
425 {
426 HANDLE ConsoleHandle;
427 } CONSOLE_VERIFYHANDLE, *PCONSOLE_VERIFYHANDLE;
428
429 typedef struct
430 {
431 HANDLE ConsoleHandle;
432 DWORD Access;
433 BOOL Inheritable;
434 DWORD Options;
435 } CONSOLE_DUPLICATEHANDLE, *PCONSOLE_DUPLICATEHANDLE;
436
437 /*
438 * Type of handles.
439 */
440 typedef enum _CONSOLE_HANDLE_TYPE
441 {
442 HANDLE_INPUT = 0x01,
443 HANDLE_OUTPUT = 0x02
444 } CONSOLE_HANDLE_TYPE;
445
446 typedef struct
447 {
448 HANDLE ConsoleHandle;
449 CONSOLE_HANDLE_TYPE HandleType;
450 DWORD Access;
451 BOOL Inheritable;
452 DWORD ShareMode;
453 } CONSOLE_OPENCONSOLE, *PCONSOLE_OPENCONSOLE;
454
455
456 typedef struct
457 {
458 HANDLE OutputHandle;
459 COORD Size;
460 } CONSOLE_GETLARGESTWINDOWSIZE, *PCONSOLE_GETLARGESTWINDOWSIZE;
461
462 typedef struct
463 {
464 HANDLE OutputHandle;
465 BOOL Absolute;
466 SMALL_RECT WindowRect; // New console window position in the screen-buffer frame (Absolute == TRUE)
467 // or in the old window position frame (Absolute == FALSE).
468 } CONSOLE_SETWINDOWINFO, *PCONSOLE_SETWINDOWINFO;
469
470 typedef struct
471 {
472 HWND WindowHandle;
473 } CONSOLE_GETWINDOW, *PCONSOLE_GETWINDOW;
474
475 typedef struct
476 {
477 HICON WindowIcon;
478 } CONSOLE_SETICON, *PCONSOLE_SETICON;
479
480
481
482 typedef struct
483 {
484 ULONG SourceLength;
485 ULONG TargetLength; // Also used for storing the number of bytes written.
486 ULONG ExeLength;
487 LPWSTR Source;
488 LPWSTR Target;
489 LPWSTR Exe;
490 } CONSOLE_ADDGETALIAS, *PCONSOLE_ADDGETALIAS;
491
492 typedef struct
493 {
494 DWORD ExeLength;
495 DWORD AliasesBufferLength;
496 LPWSTR ExeName;
497 LPWSTR AliasesBuffer;
498 } CONSOLE_GETALLALIASES, *PCONSOLE_GETALLALIASES;
499
500 typedef struct
501 {
502 DWORD Length;
503 DWORD ExeLength;
504 LPWSTR ExeName;
505 } CONSOLE_GETALLALIASESLENGTH, *PCONSOLE_GETALLALIASESLENGTH;
506
507 typedef struct
508 {
509 DWORD Length;
510 LPWSTR ExeNames;
511 } CONSOLE_GETALIASESEXES, *PCONSOLE_GETALIASESEXES;
512
513 typedef struct
514 {
515 DWORD Length;
516 } CONSOLE_GETALIASESEXESLENGTH, *PCONSOLE_GETALIASESEXESLENGTH;
517
518
519
520 typedef struct
521 {
522 UNICODE_STRING ExeName;
523 PWCHAR History;
524 DWORD Length;
525 } CONSOLE_GETCOMMANDHISTORY, *PCONSOLE_GETCOMMANDHISTORY;
526
527 typedef struct
528 {
529 UNICODE_STRING ExeName;
530 DWORD Length;
531 } CONSOLE_GETCOMMANDHISTORYLENGTH, *PCONSOLE_GETCOMMANDHISTORYLENGTH;
532
533 typedef struct
534 {
535 UNICODE_STRING ExeName;
536 } CONSOLE_EXPUNGECOMMANDHISTORY, *PCONSOLE_EXPUNGECOMMANDHISTORY;
537
538 typedef struct
539 {
540 UNICODE_STRING ExeName;
541 DWORD NumCommands;
542 } CONSOLE_SETHISTORYNUMBERCOMMANDS, *PCONSOLE_SETHISTORYNUMBERCOMMANDS;
543
544 typedef struct
545 {
546 UINT HistoryBufferSize;
547 UINT NumberOfHistoryBuffers;
548 DWORD dwFlags;
549 } CONSOLE_GETSETHISTORYINFO, *PCONSOLE_GETSETHISTORYINFO;
550
551
552
553 typedef struct
554 {
555 DWORD Event;
556 DWORD ProcessGroup;
557 } CONSOLE_GENERATECTRLEVENT, *PCONSOLE_GENERATECTRLEVENT;
558
559 typedef struct
560 {
561 HANDLE InputHandle;
562 DWORD NumInputEvents;
563 } CONSOLE_GETNUMINPUTEVENTS, *PCONSOLE_GETNUMINPUTEVENTS;
564
565 typedef struct
566 {
567 HANDLE OutputHandle;
568 COORD Size;
569 } CONSOLE_SETSCREENBUFFERSIZE, *PCONSOLE_SETSCREENBUFFERSIZE;
570
571 typedef struct
572 {
573 CONSOLE_SELECTION_INFO Info;
574 } CONSOLE_GETSELECTIONINFO, *PCONSOLE_GETSELECTIONINFO;
575
576 typedef struct
577 {
578 BOOL InputCP; // TRUE : Input Code Page ; FALSE : Output Code Page
579 UINT CodePage;
580 } CONSOLE_GETSETINPUTOUTPUTCP, *PCONSOLE_GETSETINPUTOUTPUTCP;
581
582 typedef struct _CONSOLE_API_MESSAGE
583 {
584 PORT_MESSAGE Header;
585
586 PCSR_CAPTURE_BUFFER CsrCaptureData;
587 CSR_API_NUMBER ApiNumber;
588 NTSTATUS Status; // ReturnValue;
589 ULONG Reserved;
590 union
591 {
592 /* Console initialization and uninitialization */
593 CONSOLE_ALLOCCONSOLE AllocConsoleRequest;
594 CONSOLE_ATTACHCONSOLE AttachConsoleRequest;
595 CONSOLE_FREECONSOLE FreeConsoleRequest;
596
597 /* Process list */
598 CONSOLE_GETPROCESSLIST GetProcessListRequest;
599
600 /* Handles */
601 CONSOLE_OPENCONSOLE OpenConsoleRequest;
602 CONSOLE_CLOSEHANDLE CloseHandleRequest;
603 CONSOLE_VERIFYHANDLE VerifyHandleRequest;
604 CONSOLE_DUPLICATEHANDLE DuplicateHandleRequest;
605
606 /* Cursor */
607 CONSOLE_GETSETCURSORINFO CursorInfoRequest;
608 CONSOLE_SETCURSORPOSITION SetCursorPositionRequest;
609
610 /* Screen-buffer */
611 CONSOLE_CREATESCREENBUFFER CreateScreenBufferRequest;
612 CONSOLE_SETACTIVESCREENBUFFER SetScreenBufferRequest;
613 CONSOLE_GETSCREENBUFFERINFO ScreenBufferInfoRequest;
614 CONSOLE_SETSCREENBUFFERSIZE SetScreenBufferSizeRequest;
615 CONSOLE_SCROLLSCREENBUFFER ScrollScreenBufferRequest;
616
617 CONSOLE_GETSELECTIONINFO GetSelectionInfoRequest;
618 CONSOLE_FLUSHINPUTBUFFER FlushInputBufferRequest;
619
620 /* Console mode */
621 CONSOLE_GETSETCONSOLEMODE ConsoleModeRequest;
622 CONSOLE_GETDISPLAYMODE GetDisplayModeRequest;
623 CONSOLE_SETDISPLAYMODE SetDisplayModeRequest;
624 CONSOLE_GETSETHWSTATE HardwareStateRequest;
625
626 /* Console window */
627 CONSOLE_GETSETCONSOLETITLE TitleRequest;
628 CONSOLE_GETLARGESTWINDOWSIZE GetLargestWindowSizeRequest;
629 CONSOLE_SETWINDOWINFO SetWindowInfoRequest;
630 CONSOLE_GETWINDOW GetWindowRequest;
631 CONSOLE_SETICON SetIconRequest;
632
633 /* Read */
634 CONSOLE_READCONSOLE ReadConsoleRequest; // SrvReadConsole / ReadConsole
635 CONSOLE_GETINPUT GetInputRequest; // SrvGetConsoleInput / PeekConsoleInput & ReadConsoleInput
636 CONSOLE_READOUTPUT ReadOutputRequest; // SrvReadConsoleOutput / ReadConsoleOutput
637 CONSOLE_READOUTPUTCODE ReadOutputCodeRequest; // SrvReadConsoleOutputString / ReadConsoleOutputAttribute & ReadConsoleOutputCharacter
638
639 /* Write */
640 CONSOLE_WRITECONSOLE WriteConsoleRequest; // SrvWriteConsole / WriteConsole
641 CONSOLE_WRITEINPUT WriteInputRequest;
642 CONSOLE_WRITEOUTPUT WriteOutputRequest;
643 CONSOLE_WRITEOUTPUTCODE WriteOutputCodeRequest;
644
645 CONSOLE_FILLOUTPUTCODE FillOutputRequest;
646 CONSOLE_SETTEXTATTRIB SetTextAttribRequest;
647
648 /* Aliases */
649 CONSOLE_ADDGETALIAS ConsoleAliasRequest;
650 CONSOLE_GETALLALIASES GetAllAliasesRequest;
651 CONSOLE_GETALLALIASESLENGTH GetAllAliasesLengthRequest;
652 CONSOLE_GETALIASESEXES GetAliasesExesRequest;
653 CONSOLE_GETALIASESEXESLENGTH GetAliasesExesLengthRequest;
654
655 /* History */
656 CONSOLE_GETCOMMANDHISTORY GetCommandHistoryRequest;
657 CONSOLE_GETCOMMANDHISTORYLENGTH GetCommandHistoryLengthRequest;
658 CONSOLE_EXPUNGECOMMANDHISTORY ExpungeCommandHistoryRequest;
659 CONSOLE_SETHISTORYNUMBERCOMMANDS SetHistoryNumberCommandsRequest;
660 CONSOLE_GETSETHISTORYINFO HistoryInfoRequest;
661
662 CONSOLE_GENERATECTRLEVENT GenerateCtrlEventRequest;
663 CONSOLE_GETNUMINPUTEVENTS GetNumInputEventsRequest;
664
665 /* Input and Output Code Pages */
666 CONSOLE_GETSETINPUTOUTPUTCP ConsoleCPRequest;
667 } Data;
668 } CONSOLE_API_MESSAGE, *PCONSOLE_API_MESSAGE;
669
670 // Check that a CONSOLE_API_MESSAGE can hold in a CSR_API_MESSAGE.
671 CHECK_API_MSG_SIZE(CONSOLE_API_MESSAGE);
672
673 #endif // _CONMSG_H
674
675 /* EOF */