Synchronize with trunk revision 59781.
[reactos.git] / include / reactos / subsys / win / conmsg.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Console Server DLL
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 WCHAR IconPath[MAX_PATH + 1]; // Path to the file containing the icon
126 INT IconIndex; // Index of the icon
127 } CONSOLE_START_INFO, *PCONSOLE_START_INFO;
128
129 typedef struct _CONSRV_API_CONNECTINFO
130 {
131 BOOL ConsoleNeeded; // Used for GUI apps only.
132
133 /* Adapted from CONSOLE_ALLOCCONSOLE */
134 CONSOLE_START_INFO ConsoleStartInfo;
135
136 HANDLE ConsoleHandle;
137 HANDLE InputHandle;
138 HANDLE OutputHandle;
139 HANDLE ErrorHandle;
140 HANDLE InputWaitHandle;
141 LPTHREAD_START_ROUTINE CtrlDispatcher;
142 LPTHREAD_START_ROUTINE PropDispatcher;
143 } CONSRV_API_CONNECTINFO, *PCONSRV_API_CONNECTINFO;
144
145
146 typedef struct
147 {
148 ULONG nMaxIds;
149 ULONG nProcessIdsTotal;
150 PDWORD pProcessIds;
151 } CONSOLE_GETPROCESSLIST, *PCONSOLE_GETPROCESSLIST;
152
153 typedef struct
154 {
155 HANDLE OutputHandle;
156
157 BOOL Unicode;
158 ULONG NrCharactersToWrite;
159 ULONG NrCharactersWritten;
160
161 ULONG BufferSize;
162 PVOID Buffer;
163 } CONSOLE_WRITECONSOLE, *PCONSOLE_WRITECONSOLE;
164
165 typedef struct
166 {
167 HANDLE InputHandle;
168
169 BOOL Unicode;
170 ULONG NrCharactersToRead;
171 ULONG NrCharactersRead;
172
173 UNICODE_STRING ExeName;
174 DWORD CtrlWakeupMask;
175 DWORD ControlKeyState;
176
177 ULONG BufferSize;
178 PVOID Buffer;
179 } CONSOLE_READCONSOLE, *PCONSOLE_READCONSOLE;
180
181 typedef struct
182 {
183 PCONSOLE_START_INFO ConsoleStartInfo;
184
185 HANDLE ConsoleHandle;
186 HANDLE InputHandle;
187 HANDLE OutputHandle;
188 HANDLE ErrorHandle;
189 HANDLE InputWaitHandle;
190 LPTHREAD_START_ROUTINE CtrlDispatcher;
191 LPTHREAD_START_ROUTINE PropDispatcher;
192 } CONSOLE_ALLOCCONSOLE, *PCONSOLE_ALLOCCONSOLE;
193
194 typedef struct
195 {
196 DWORD ProcessId; // If ProcessId == ATTACH_PARENT_PROCESS == -1, then attach the current process to its parent process console.
197 HANDLE ConsoleHandle;
198 HANDLE InputHandle;
199 HANDLE OutputHandle;
200 HANDLE ErrorHandle;
201 HANDLE InputWaitHandle;
202 LPTHREAD_START_ROUTINE CtrlDispatcher;
203 LPTHREAD_START_ROUTINE PropDispatcher;
204 } CONSOLE_ATTACHCONSOLE, *PCONSOLE_ATTACHCONSOLE;
205
206 typedef struct
207 {
208 ULONG Dummy;
209 } CONSOLE_FREECONSOLE, *PCONSOLE_FREECONSOLE;
210
211 typedef struct
212 {
213 HANDLE OutputHandle;
214 CONSOLE_SCREEN_BUFFER_INFO Info;
215 } CONSOLE_GETSCREENBUFFERINFO, *PCONSOLE_GETSCREENBUFFERINFO;
216
217 typedef struct
218 {
219 HANDLE OutputHandle;
220 COORD Position;
221 } CONSOLE_SETCURSORPOSITION, *PCONSOLE_SETCURSORPOSITION;
222
223 typedef struct
224 {
225 HANDLE OutputHandle;
226 BOOL Show;
227 INT RefCount;
228 } CONSOLE_SHOWCURSOR, *PCONSOLE_SHOWCURSOR;
229
230 typedef struct
231 {
232 HANDLE OutputHandle;
233 HCURSOR hCursor;
234 } CONSOLE_SETCURSOR, *PCONSOLE_SETCURSOR;
235
236 typedef struct
237 {
238 HANDLE OutputHandle;
239 CONSOLE_CURSOR_INFO Info;
240 } CONSOLE_GETSETCURSORINFO, *PCONSOLE_GETSETCURSORINFO;
241
242 typedef struct
243 {
244 HANDLE OutputHandle;
245 WORD Attrib;
246 } CONSOLE_SETTEXTATTRIB, *PCONSOLE_SETTEXTATTRIB;
247
248 typedef struct
249 {
250 HANDLE ConsoleHandle; /* A valid input or output console handle */
251 DWORD ConsoleMode;
252 } CONSOLE_GETSETCONSOLEMODE, *PCONSOLE_GETSETCONSOLEMODE;
253
254 typedef struct
255 {
256 // HANDLE OutputHandle;
257 DWORD DisplayMode;
258 } CONSOLE_GETDISPLAYMODE, *PCONSOLE_GETDISPLAYMODE;
259
260 typedef struct
261 {
262 HANDLE OutputHandle;
263 DWORD DisplayMode;
264 COORD NewSBDim;
265 } CONSOLE_SETDISPLAYMODE, *PCONSOLE_SETDISPLAYMODE;
266
267 /*
268 * Console hardware states.
269 */
270 #define CONSOLE_HARDWARE_STATE_GDI_MANAGED 0
271 #define CONSOLE_HARDWARE_STATE_DIRECT 1
272
273 typedef struct
274 {
275 HANDLE OutputHandle;
276 DWORD State;
277 } CONSOLE_GETSETHWSTATE, *PCONSOLE_GETSETHWSTATE;
278
279
280 typedef struct
281 {
282 HANDLE OutputHandle; /* Handle to newly created screen buffer */
283 DWORD ScreenBufferType; /* Type of the screen buffer: CONSOLE_TEXTMODE_BUFFER or CONSOLE_GRAPHICS_BUFFER */
284 /*
285 * If we are creating a graphics screen buffer,
286 * this structure holds the initialization information.
287 */
288 CONSOLE_GRAPHICS_BUFFER_INFO GraphicsBufferInfo;
289
290 DWORD Access;
291 DWORD ShareMode;
292 BOOL Inheritable;
293 } CONSOLE_CREATESCREENBUFFER, *PCONSOLE_CREATESCREENBUFFER;
294
295 typedef struct
296 {
297 HANDLE OutputHandle; /* Handle to screen buffer to switch to */
298 } CONSOLE_SETACTIVESCREENBUFFER, *PCONSOLE_SETACTIVESCREENBUFFER;
299
300 typedef struct
301 {
302 HANDLE OutputHandle;
303 SMALL_RECT Region;
304 } CONSOLE_INVALIDATEDIBITS, *PCONSOLE_INVALIDATEDIBITS;
305
306 typedef struct
307 {
308 HANDLE OutputHandle;
309 HPALETTE PaletteHandle;
310 UINT Usage;
311 } CONSOLE_SETPALETTE, *PCONSOLE_SETPALETTE;
312
313 typedef struct
314 {
315 DWORD Length;
316 PWCHAR Title;
317 } CONSOLE_GETSETCONSOLETITLE, *PCONSOLE_GETSETCONSOLETITLE;
318
319 typedef struct
320 {
321 HANDLE OutputHandle;
322
323 BOOL Unicode;
324 COORD BufferSize;
325 COORD BufferCoord;
326 SMALL_RECT WriteRegion;
327 PCHAR_INFO CharInfo;
328 } CONSOLE_WRITEOUTPUT, *PCONSOLE_WRITEOUTPUT;
329
330 typedef struct
331 {
332 HANDLE InputHandle;
333 } CONSOLE_FLUSHINPUTBUFFER, *PCONSOLE_FLUSHINPUTBUFFER;
334
335 typedef struct
336 {
337 HANDLE OutputHandle;
338
339 BOOL Unicode;
340 SMALL_RECT ScrollRectangle;
341 BOOL UseClipRectangle;
342 SMALL_RECT ClipRectangle;
343 COORD DestinationOrigin;
344 CHAR_INFO Fill;
345 } CONSOLE_SCROLLSCREENBUFFER, *PCONSOLE_SCROLLSCREENBUFFER;
346
347
348 /*
349 * An attribute or a character are instances of the same entity, namely
350 * a "code" (what would be called an (ANSI) escape sequence). Therefore
351 * encode them inside the same structure.
352 */
353 typedef enum _CODE_TYPE
354 {
355 CODE_ASCII = 0x01,
356 CODE_UNICODE = 0x02,
357 CODE_ATTRIBUTE = 0x03
358 } CODE_TYPE;
359
360 typedef struct
361 {
362 HANDLE OutputHandle;
363
364 DWORD NumCodesToRead;
365 COORD ReadCoord;
366 COORD EndCoord;
367
368 DWORD CodesRead;
369
370 CODE_TYPE CodeType;
371 union
372 {
373 PVOID pCode;
374 PCHAR AsciiChar;
375 PWCHAR UnicodeChar;
376 PWORD Attribute;
377 } pCode; // Either a pointer to a character or to an attribute.
378 } CONSOLE_READOUTPUTCODE, *PCONSOLE_READOUTPUTCODE;
379
380 typedef struct
381 {
382 HANDLE OutputHandle;
383
384 ULONG BufferSize; // Seems unusued
385 WORD Length;
386 COORD Coord;
387 COORD EndCoord;
388
389 ULONG NrCharactersWritten; // Seems unusued
390
391 CODE_TYPE CodeType;
392 union
393 {
394 PVOID pCode;
395 PCHAR AsciiChar;
396 PWCHAR UnicodeChar;
397 PWORD Attribute;
398 } pCode; // Either a pointer to a character or to an attribute.
399 } CONSOLE_WRITEOUTPUTCODE, *PCONSOLE_WRITEOUTPUTCODE;
400
401 typedef struct
402 {
403 HANDLE OutputHandle;
404
405 CODE_TYPE CodeType;
406 union
407 {
408 CHAR AsciiChar;
409 WCHAR UnicodeChar;
410 WORD Attribute;
411 } Code; // Either a character or an attribute.
412
413 COORD Coord;
414 ULONG Length;
415
416 ULONG NrCharactersWritten; // FIXME: Only for chars, is it removable ?
417 } CONSOLE_FILLOUTPUTCODE, *PCONSOLE_FILLOUTPUTCODE;
418
419 typedef struct
420 {
421 HANDLE InputHandle;
422 BOOL Unicode;
423 BOOL bRead; // TRUE --> Read ; FALSE --> Peek
424
425 ULONG InputsRead;
426
427 ULONG Length;
428 PINPUT_RECORD InputRecord;
429 } CONSOLE_GETINPUT, *PCONSOLE_GETINPUT;
430
431 typedef struct
432 {
433 HANDLE OutputHandle;
434
435 BOOL Unicode;
436 COORD BufferSize;
437 COORD BufferCoord;
438 SMALL_RECT ReadRegion;
439 PCHAR_INFO CharInfo;
440 } CONSOLE_READOUTPUT, *PCONSOLE_READOUTPUT;
441
442 typedef struct
443 {
444 HANDLE InputHandle;
445 BOOL Unicode;
446 DWORD Length;
447 INPUT_RECORD* InputRecord;
448 } CONSOLE_WRITEINPUT, *PCONSOLE_WRITEINPUT;
449
450 typedef struct
451 {
452 HANDLE ConsoleHandle;
453 } CONSOLE_CLOSEHANDLE, *PCONSOLE_CLOSEHANDLE;
454
455 typedef struct
456 {
457 HANDLE ConsoleHandle;
458 } CONSOLE_VERIFYHANDLE, *PCONSOLE_VERIFYHANDLE;
459
460 typedef struct
461 {
462 HANDLE ConsoleHandle;
463 DWORD Access;
464 BOOL Inheritable;
465 DWORD Options;
466 } CONSOLE_DUPLICATEHANDLE, *PCONSOLE_DUPLICATEHANDLE;
467
468 /*
469 * Type of handles.
470 */
471 typedef enum _CONSOLE_HANDLE_TYPE
472 {
473 HANDLE_INPUT = 0x01,
474 HANDLE_OUTPUT = 0x02
475 } CONSOLE_HANDLE_TYPE;
476
477 typedef struct
478 {
479 HANDLE ConsoleHandle;
480 CONSOLE_HANDLE_TYPE HandleType;
481 DWORD Access;
482 BOOL Inheritable;
483 DWORD ShareMode;
484 } CONSOLE_OPENCONSOLE, *PCONSOLE_OPENCONSOLE;
485
486
487 typedef struct
488 {
489 HANDLE OutputHandle;
490 COORD Size;
491 } CONSOLE_GETLARGESTWINDOWSIZE, *PCONSOLE_GETLARGESTWINDOWSIZE;
492
493 typedef struct
494 {
495 HANDLE OutputHandle;
496 DWORD dwCmdIdLow;
497 DWORD dwCmdIdHigh;
498 HMENU hMenu;
499 } CONSOLE_MENUCONTROL, *PCONSOLE_MENUCONTROL;
500
501 typedef struct
502 {
503 BOOL Enable;
504 } CONSOLE_SETMENUCLOSE, *PCONSOLE_SETMENUCLOSE;
505
506 typedef struct
507 {
508 HANDLE OutputHandle;
509 BOOL Absolute;
510 SMALL_RECT WindowRect; // New console window position in the screen-buffer frame (Absolute == TRUE)
511 // or in the old window position frame (Absolute == FALSE).
512 } CONSOLE_SETWINDOWINFO, *PCONSOLE_SETWINDOWINFO;
513
514 typedef struct
515 {
516 HWND WindowHandle;
517 } CONSOLE_GETWINDOW, *PCONSOLE_GETWINDOW;
518
519 typedef struct
520 {
521 HICON WindowIcon;
522 } CONSOLE_SETICON, *PCONSOLE_SETICON;
523
524
525
526 typedef struct
527 {
528 ULONG SourceLength;
529 ULONG TargetLength; // Also used for storing the number of bytes written.
530 ULONG ExeLength;
531 LPWSTR Source;
532 LPWSTR Target;
533 LPWSTR Exe;
534 } CONSOLE_ADDGETALIAS, *PCONSOLE_ADDGETALIAS;
535
536 typedef struct
537 {
538 DWORD ExeLength;
539 DWORD AliasesBufferLength;
540 LPWSTR ExeName;
541 LPWSTR AliasesBuffer;
542 } CONSOLE_GETALLALIASES, *PCONSOLE_GETALLALIASES;
543
544 typedef struct
545 {
546 DWORD Length;
547 DWORD ExeLength;
548 LPWSTR ExeName;
549 } CONSOLE_GETALLALIASESLENGTH, *PCONSOLE_GETALLALIASESLENGTH;
550
551 typedef struct
552 {
553 DWORD Length;
554 LPWSTR ExeNames;
555 } CONSOLE_GETALIASESEXES, *PCONSOLE_GETALIASESEXES;
556
557 typedef struct
558 {
559 DWORD Length;
560 } CONSOLE_GETALIASESEXESLENGTH, *PCONSOLE_GETALIASESEXESLENGTH;
561
562
563
564 typedef struct
565 {
566 UNICODE_STRING ExeName;
567 PWCHAR History;
568 DWORD Length;
569 } CONSOLE_GETCOMMANDHISTORY, *PCONSOLE_GETCOMMANDHISTORY;
570
571 typedef struct
572 {
573 UNICODE_STRING ExeName;
574 DWORD Length;
575 } CONSOLE_GETCOMMANDHISTORYLENGTH, *PCONSOLE_GETCOMMANDHISTORYLENGTH;
576
577 typedef struct
578 {
579 UNICODE_STRING ExeName;
580 } CONSOLE_EXPUNGECOMMANDHISTORY, *PCONSOLE_EXPUNGECOMMANDHISTORY;
581
582 typedef struct
583 {
584 UNICODE_STRING ExeName;
585 DWORD NumCommands;
586 } CONSOLE_SETHISTORYNUMBERCOMMANDS, *PCONSOLE_SETHISTORYNUMBERCOMMANDS;
587
588 typedef struct
589 {
590 UINT HistoryBufferSize;
591 UINT NumberOfHistoryBuffers;
592 DWORD dwFlags;
593 } CONSOLE_GETSETHISTORYINFO, *PCONSOLE_GETSETHISTORYINFO;
594
595
596
597 typedef struct
598 {
599 DWORD Event;
600 DWORD ProcessGroup;
601 } CONSOLE_GENERATECTRLEVENT, *PCONSOLE_GENERATECTRLEVENT;
602
603 typedef struct
604 {
605 HANDLE InputHandle;
606 DWORD NumInputEvents;
607 } CONSOLE_GETNUMINPUTEVENTS, *PCONSOLE_GETNUMINPUTEVENTS;
608
609 typedef struct
610 {
611 HANDLE OutputHandle;
612 COORD Size;
613 } CONSOLE_SETSCREENBUFFERSIZE, *PCONSOLE_SETSCREENBUFFERSIZE;
614
615 typedef struct
616 {
617 CONSOLE_SELECTION_INFO Info;
618 } CONSOLE_GETSELECTIONINFO, *PCONSOLE_GETSELECTIONINFO;
619
620 typedef struct
621 {
622 BOOL InputCP; // TRUE : Input Code Page ; FALSE : Output Code Page
623 UINT CodePage;
624 } CONSOLE_GETSETINPUTOUTPUTCP, *PCONSOLE_GETSETINPUTOUTPUTCP;
625
626 typedef struct _CONSOLE_API_MESSAGE
627 {
628 PORT_MESSAGE Header;
629
630 PCSR_CAPTURE_BUFFER CsrCaptureData;
631 CSR_API_NUMBER ApiNumber;
632 NTSTATUS Status;
633 ULONG Reserved;
634 union
635 {
636 /* Console initialization and uninitialization */
637 CONSOLE_ALLOCCONSOLE AllocConsoleRequest;
638 CONSOLE_ATTACHCONSOLE AttachConsoleRequest;
639 CONSOLE_FREECONSOLE FreeConsoleRequest;
640
641 /* Process list */
642 CONSOLE_GETPROCESSLIST GetProcessListRequest;
643
644 /* Handles */
645 CONSOLE_OPENCONSOLE OpenConsoleRequest;
646 CONSOLE_CLOSEHANDLE CloseHandleRequest;
647 CONSOLE_VERIFYHANDLE VerifyHandleRequest;
648 CONSOLE_DUPLICATEHANDLE DuplicateHandleRequest;
649
650 /* Cursor */
651 CONSOLE_SHOWCURSOR ShowCursorRequest;
652 CONSOLE_SETCURSOR SetCursorRequest;
653 CONSOLE_GETSETCURSORINFO CursorInfoRequest;
654 CONSOLE_SETCURSORPOSITION SetCursorPositionRequest;
655
656 /* Screen-buffer */
657 CONSOLE_CREATESCREENBUFFER CreateScreenBufferRequest;
658 CONSOLE_SETACTIVESCREENBUFFER SetScreenBufferRequest;
659 CONSOLE_GETSCREENBUFFERINFO ScreenBufferInfoRequest;
660 CONSOLE_SETSCREENBUFFERSIZE SetScreenBufferSizeRequest;
661 CONSOLE_SCROLLSCREENBUFFER ScrollScreenBufferRequest;
662
663 CONSOLE_GETSELECTIONINFO GetSelectionInfoRequest;
664 CONSOLE_FLUSHINPUTBUFFER FlushInputBufferRequest;
665
666 /* Console mode */
667 CONSOLE_GETSETCONSOLEMODE ConsoleModeRequest;
668 CONSOLE_GETDISPLAYMODE GetDisplayModeRequest;
669 CONSOLE_SETDISPLAYMODE SetDisplayModeRequest;
670 CONSOLE_GETSETHWSTATE HardwareStateRequest;
671
672 /* Console window */
673 CONSOLE_INVALIDATEDIBITS InvalidateDIBitsRequest;
674 CONSOLE_SETPALETTE SetPaletteRequest;
675 CONSOLE_GETSETCONSOLETITLE TitleRequest;
676 CONSOLE_GETLARGESTWINDOWSIZE GetLargestWindowSizeRequest;
677 CONSOLE_MENUCONTROL MenuControlRequest;
678 CONSOLE_SETMENUCLOSE SetMenuCloseRequest;
679 CONSOLE_SETWINDOWINFO SetWindowInfoRequest;
680 CONSOLE_GETWINDOW GetWindowRequest;
681 CONSOLE_SETICON SetIconRequest;
682
683 /* Read */
684 CONSOLE_READCONSOLE ReadConsoleRequest; // SrvReadConsole / ReadConsole
685 CONSOLE_GETINPUT GetInputRequest; // SrvGetConsoleInput / PeekConsoleInput & ReadConsoleInput
686 CONSOLE_READOUTPUT ReadOutputRequest; // SrvReadConsoleOutput / ReadConsoleOutput
687 CONSOLE_READOUTPUTCODE ReadOutputCodeRequest; // SrvReadConsoleOutputString / ReadConsoleOutputAttribute & ReadConsoleOutputCharacter
688
689 /* Write */
690 CONSOLE_WRITECONSOLE WriteConsoleRequest; // SrvWriteConsole / WriteConsole
691 CONSOLE_WRITEINPUT WriteInputRequest;
692 CONSOLE_WRITEOUTPUT WriteOutputRequest;
693 CONSOLE_WRITEOUTPUTCODE WriteOutputCodeRequest;
694
695 CONSOLE_FILLOUTPUTCODE FillOutputRequest;
696 CONSOLE_SETTEXTATTRIB SetTextAttribRequest;
697
698 /* Aliases */
699 CONSOLE_ADDGETALIAS ConsoleAliasRequest;
700 CONSOLE_GETALLALIASES GetAllAliasesRequest;
701 CONSOLE_GETALLALIASESLENGTH GetAllAliasesLengthRequest;
702 CONSOLE_GETALIASESEXES GetAliasesExesRequest;
703 CONSOLE_GETALIASESEXESLENGTH GetAliasesExesLengthRequest;
704
705 /* History */
706 CONSOLE_GETCOMMANDHISTORY GetCommandHistoryRequest;
707 CONSOLE_GETCOMMANDHISTORYLENGTH GetCommandHistoryLengthRequest;
708 CONSOLE_EXPUNGECOMMANDHISTORY ExpungeCommandHistoryRequest;
709 CONSOLE_SETHISTORYNUMBERCOMMANDS SetHistoryNumberCommandsRequest;
710 CONSOLE_GETSETHISTORYINFO HistoryInfoRequest;
711
712 CONSOLE_GENERATECTRLEVENT GenerateCtrlEventRequest;
713 CONSOLE_GETNUMINPUTEVENTS GetNumInputEventsRequest;
714
715 /* Input and Output Code Pages */
716 CONSOLE_GETSETINPUTOUTPUTCP ConsoleCPRequest;
717 } Data;
718 } CONSOLE_API_MESSAGE, *PCONSOLE_API_MESSAGE;
719
720 // Check that a CONSOLE_API_MESSAGE can hold in a CSR_API_MESSAGE.
721 CHECK_API_MSG_SIZE(CONSOLE_API_MESSAGE);
722
723 #endif // _CONMSG_H
724
725 /* EOF */