[KERNEL32]
[reactos.git] / reactos / 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 _CONSOLE_CONNECTION_INFO
130 {
131 BOOL ConsoleNeeded; // Used for GUI apps only.
132
133 /* Adapted from CONSOLE_ALLOCCONSOLE */
134 CONSOLE_START_INFO ConsoleStartInfo;
135
136 HANDLE Console; // ConsoleHandle // On ReactOS, it is a PCONSOLE
137 HANDLE InputHandle;
138 HANDLE OutputHandle;
139 HANDLE ErrorHandle;
140 HANDLE InputWaitHandle;
141 LPTHREAD_START_ROUTINE CtrlDispatcher;
142 LPTHREAD_START_ROUTINE PropDispatcher;
143 } CONSOLE_CONNECTION_INFO, *PCONSOLE_CONNECTION_INFO;
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 WORD NrCharactersToRead;
171 WORD 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 Console; // ConsoleHandle // On ReactOS, it is a PCONSOLE
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 Console; // ConsoleHandle // On ReactOS, it is a PCONSOLE
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 DWORD Length;
309 PWCHAR Title;
310 } CONSOLE_GETSETCONSOLETITLE, *PCONSOLE_GETSETCONSOLETITLE;
311
312 typedef struct
313 {
314 HANDLE OutputHandle;
315
316 BOOL Unicode;
317 COORD BufferSize;
318 COORD BufferCoord;
319 SMALL_RECT WriteRegion;
320 PCHAR_INFO CharInfo;
321 } CONSOLE_WRITEOUTPUT, *PCONSOLE_WRITEOUTPUT;
322
323 typedef struct
324 {
325 HANDLE InputHandle;
326 } CONSOLE_FLUSHINPUTBUFFER, *PCONSOLE_FLUSHINPUTBUFFER;
327
328 typedef struct
329 {
330 HANDLE OutputHandle;
331
332 BOOL Unicode;
333 SMALL_RECT ScrollRectangle;
334 BOOL UseClipRectangle;
335 SMALL_RECT ClipRectangle;
336 COORD DestinationOrigin;
337 CHAR_INFO Fill;
338 } CONSOLE_SCROLLSCREENBUFFER, *PCONSOLE_SCROLLSCREENBUFFER;
339
340
341 /*
342 * An attribute or a character are instances of the same entity, namely
343 * a "code" (what would be called an (ANSI) escape sequence). Therefore
344 * encode them inside the same structure.
345 */
346 typedef enum _CODE_TYPE
347 {
348 CODE_ASCII = 0x01,
349 CODE_UNICODE = 0x02,
350 CODE_ATTRIBUTE = 0x03
351 } CODE_TYPE;
352
353 typedef struct
354 {
355 HANDLE OutputHandle;
356
357 DWORD NumCodesToRead;
358 COORD ReadCoord;
359 COORD EndCoord;
360
361 DWORD CodesRead;
362
363 CODE_TYPE CodeType;
364 union
365 {
366 PVOID pCode;
367 PCHAR AsciiChar;
368 PWCHAR UnicodeChar;
369 PWORD Attribute;
370 } pCode; // Either a pointer to a character or to an attribute.
371 } CONSOLE_READOUTPUTCODE, *PCONSOLE_READOUTPUTCODE;
372
373 typedef struct
374 {
375 HANDLE OutputHandle;
376
377 ULONG BufferSize; // Seems unusued
378 WORD Length;
379 COORD Coord;
380 COORD EndCoord;
381
382 ULONG NrCharactersWritten; // Seems unusued
383
384 CODE_TYPE CodeType;
385 union
386 {
387 PVOID pCode;
388 PCHAR AsciiChar;
389 PWCHAR UnicodeChar;
390 PWORD Attribute;
391 } pCode; // Either a pointer to a character or to an attribute.
392 } CONSOLE_WRITEOUTPUTCODE, *PCONSOLE_WRITEOUTPUTCODE;
393
394 typedef struct
395 {
396 HANDLE OutputHandle;
397
398 CODE_TYPE CodeType;
399 union
400 {
401 CHAR AsciiChar;
402 WCHAR UnicodeChar;
403 WORD Attribute;
404 } Code; // Either a character or an attribute.
405
406 COORD Coord;
407 ULONG Length;
408
409 ULONG NrCharactersWritten; // FIXME: Only for chars, is it removable ?
410 } CONSOLE_FILLOUTPUTCODE, *PCONSOLE_FILLOUTPUTCODE;
411
412 typedef struct
413 {
414 HANDLE InputHandle;
415 BOOL Unicode;
416 BOOL bRead; // TRUE --> Read ; FALSE --> Peek
417
418 ULONG InputsRead;
419
420 ULONG Length;
421 PINPUT_RECORD InputRecord;
422 } CONSOLE_GETINPUT, *PCONSOLE_GETINPUT;
423
424 typedef struct
425 {
426 HANDLE OutputHandle;
427
428 BOOL Unicode;
429 COORD BufferSize;
430 COORD BufferCoord;
431 SMALL_RECT ReadRegion;
432 PCHAR_INFO CharInfo;
433 } CONSOLE_READOUTPUT, *PCONSOLE_READOUTPUT;
434
435 typedef struct
436 {
437 HANDLE InputHandle;
438 BOOL Unicode;
439 DWORD Length;
440 INPUT_RECORD* InputRecord;
441 } CONSOLE_WRITEINPUT, *PCONSOLE_WRITEINPUT;
442
443 typedef struct
444 {
445 HANDLE ConsoleHandle;
446 } CONSOLE_CLOSEHANDLE, *PCONSOLE_CLOSEHANDLE;
447
448 typedef struct
449 {
450 HANDLE ConsoleHandle;
451 } CONSOLE_VERIFYHANDLE, *PCONSOLE_VERIFYHANDLE;
452
453 typedef struct
454 {
455 HANDLE ConsoleHandle;
456 DWORD Access;
457 BOOL Inheritable;
458 DWORD Options;
459 } CONSOLE_DUPLICATEHANDLE, *PCONSOLE_DUPLICATEHANDLE;
460
461 /*
462 * Type of handles.
463 */
464 typedef enum _CONSOLE_HANDLE_TYPE
465 {
466 HANDLE_INPUT = 0x01,
467 HANDLE_OUTPUT = 0x02
468 } CONSOLE_HANDLE_TYPE;
469
470 typedef struct
471 {
472 HANDLE ConsoleHandle;
473 CONSOLE_HANDLE_TYPE HandleType;
474 DWORD Access;
475 BOOL Inheritable;
476 DWORD ShareMode;
477 } CONSOLE_OPENCONSOLE, *PCONSOLE_OPENCONSOLE;
478
479
480 typedef struct
481 {
482 HANDLE OutputHandle;
483 COORD Size;
484 } CONSOLE_GETLARGESTWINDOWSIZE, *PCONSOLE_GETLARGESTWINDOWSIZE;
485
486 typedef struct
487 {
488 HANDLE OutputHandle;
489 DWORD dwCmdIdLow;
490 DWORD dwCmdIdHigh;
491 HMENU hMenu;
492 } CONSOLE_MENUCONTROL, *PCONSOLE_MENUCONTROL;
493
494 typedef struct
495 {
496 BOOL Enable;
497 } CONSOLE_SETMENUCLOSE, *PCONSOLE_SETMENUCLOSE;
498
499 typedef struct
500 {
501 HANDLE OutputHandle;
502 BOOL Absolute;
503 SMALL_RECT WindowRect; // New console window position in the screen-buffer frame (Absolute == TRUE)
504 // or in the old window position frame (Absolute == FALSE).
505 } CONSOLE_SETWINDOWINFO, *PCONSOLE_SETWINDOWINFO;
506
507 typedef struct
508 {
509 HWND WindowHandle;
510 } CONSOLE_GETWINDOW, *PCONSOLE_GETWINDOW;
511
512 typedef struct
513 {
514 HICON WindowIcon;
515 } CONSOLE_SETICON, *PCONSOLE_SETICON;
516
517
518
519 typedef struct
520 {
521 ULONG SourceLength;
522 ULONG TargetLength; // Also used for storing the number of bytes written.
523 ULONG ExeLength;
524 LPWSTR Source;
525 LPWSTR Target;
526 LPWSTR Exe;
527 } CONSOLE_ADDGETALIAS, *PCONSOLE_ADDGETALIAS;
528
529 typedef struct
530 {
531 DWORD ExeLength;
532 DWORD AliasesBufferLength;
533 LPWSTR ExeName;
534 LPWSTR AliasesBuffer;
535 } CONSOLE_GETALLALIASES, *PCONSOLE_GETALLALIASES;
536
537 typedef struct
538 {
539 DWORD Length;
540 DWORD ExeLength;
541 LPWSTR ExeName;
542 } CONSOLE_GETALLALIASESLENGTH, *PCONSOLE_GETALLALIASESLENGTH;
543
544 typedef struct
545 {
546 DWORD Length;
547 LPWSTR ExeNames;
548 } CONSOLE_GETALIASESEXES, *PCONSOLE_GETALIASESEXES;
549
550 typedef struct
551 {
552 DWORD Length;
553 } CONSOLE_GETALIASESEXESLENGTH, *PCONSOLE_GETALIASESEXESLENGTH;
554
555
556
557 typedef struct
558 {
559 UNICODE_STRING ExeName;
560 PWCHAR History;
561 DWORD Length;
562 } CONSOLE_GETCOMMANDHISTORY, *PCONSOLE_GETCOMMANDHISTORY;
563
564 typedef struct
565 {
566 UNICODE_STRING ExeName;
567 DWORD Length;
568 } CONSOLE_GETCOMMANDHISTORYLENGTH, *PCONSOLE_GETCOMMANDHISTORYLENGTH;
569
570 typedef struct
571 {
572 UNICODE_STRING ExeName;
573 } CONSOLE_EXPUNGECOMMANDHISTORY, *PCONSOLE_EXPUNGECOMMANDHISTORY;
574
575 typedef struct
576 {
577 UNICODE_STRING ExeName;
578 DWORD NumCommands;
579 } CONSOLE_SETHISTORYNUMBERCOMMANDS, *PCONSOLE_SETHISTORYNUMBERCOMMANDS;
580
581 typedef struct
582 {
583 UINT HistoryBufferSize;
584 UINT NumberOfHistoryBuffers;
585 DWORD dwFlags;
586 } CONSOLE_GETSETHISTORYINFO, *PCONSOLE_GETSETHISTORYINFO;
587
588
589
590 typedef struct
591 {
592 DWORD Event;
593 DWORD ProcessGroup;
594 } CONSOLE_GENERATECTRLEVENT, *PCONSOLE_GENERATECTRLEVENT;
595
596 typedef struct
597 {
598 HANDLE InputHandle;
599 DWORD NumInputEvents;
600 } CONSOLE_GETNUMINPUTEVENTS, *PCONSOLE_GETNUMINPUTEVENTS;
601
602 typedef struct
603 {
604 HANDLE OutputHandle;
605 COORD Size;
606 } CONSOLE_SETSCREENBUFFERSIZE, *PCONSOLE_SETSCREENBUFFERSIZE;
607
608 typedef struct
609 {
610 CONSOLE_SELECTION_INFO Info;
611 } CONSOLE_GETSELECTIONINFO, *PCONSOLE_GETSELECTIONINFO;
612
613 typedef struct
614 {
615 BOOL InputCP; // TRUE : Input Code Page ; FALSE : Output Code Page
616 UINT CodePage;
617 } CONSOLE_GETSETINPUTOUTPUTCP, *PCONSOLE_GETSETINPUTOUTPUTCP;
618
619 typedef struct _CONSOLE_API_MESSAGE
620 {
621 PORT_MESSAGE Header;
622
623 PCSR_CAPTURE_BUFFER CsrCaptureData;
624 CSR_API_NUMBER ApiNumber;
625 NTSTATUS Status;
626 ULONG Reserved;
627 union
628 {
629 /* Console initialization and uninitialization */
630 CONSOLE_ALLOCCONSOLE AllocConsoleRequest;
631 CONSOLE_ATTACHCONSOLE AttachConsoleRequest;
632 CONSOLE_FREECONSOLE FreeConsoleRequest;
633
634 /* Process list */
635 CONSOLE_GETPROCESSLIST GetProcessListRequest;
636
637 /* Handles */
638 CONSOLE_OPENCONSOLE OpenConsoleRequest;
639 CONSOLE_CLOSEHANDLE CloseHandleRequest;
640 CONSOLE_VERIFYHANDLE VerifyHandleRequest;
641 CONSOLE_DUPLICATEHANDLE DuplicateHandleRequest;
642
643 /* Cursor */
644 CONSOLE_SHOWCURSOR ShowCursorRequest;
645 CONSOLE_SETCURSOR SetCursorRequest;
646 CONSOLE_GETSETCURSORINFO CursorInfoRequest;
647 CONSOLE_SETCURSORPOSITION SetCursorPositionRequest;
648
649 /* Screen-buffer */
650 CONSOLE_CREATESCREENBUFFER CreateScreenBufferRequest;
651 CONSOLE_SETACTIVESCREENBUFFER SetScreenBufferRequest;
652 CONSOLE_GETSCREENBUFFERINFO ScreenBufferInfoRequest;
653 CONSOLE_SETSCREENBUFFERSIZE SetScreenBufferSizeRequest;
654 CONSOLE_SCROLLSCREENBUFFER ScrollScreenBufferRequest;
655
656 CONSOLE_GETSELECTIONINFO GetSelectionInfoRequest;
657 CONSOLE_FLUSHINPUTBUFFER FlushInputBufferRequest;
658
659 /* Console mode */
660 CONSOLE_GETSETCONSOLEMODE ConsoleModeRequest;
661 CONSOLE_GETDISPLAYMODE GetDisplayModeRequest;
662 CONSOLE_SETDISPLAYMODE SetDisplayModeRequest;
663 CONSOLE_GETSETHWSTATE HardwareStateRequest;
664
665 /* Console window */
666 CONSOLE_INVALIDATEDIBITS InvalidateDIBitsRequest;
667 CONSOLE_GETSETCONSOLETITLE TitleRequest;
668 CONSOLE_GETLARGESTWINDOWSIZE GetLargestWindowSizeRequest;
669 CONSOLE_MENUCONTROL MenuControlRequest;
670 CONSOLE_SETMENUCLOSE SetMenuCloseRequest;
671 CONSOLE_SETWINDOWINFO SetWindowInfoRequest;
672 CONSOLE_GETWINDOW GetWindowRequest;
673 CONSOLE_SETICON SetIconRequest;
674
675 /* Read */
676 CONSOLE_READCONSOLE ReadConsoleRequest; // SrvReadConsole / ReadConsole
677 CONSOLE_GETINPUT GetInputRequest; // SrvGetConsoleInput / PeekConsoleInput & ReadConsoleInput
678 CONSOLE_READOUTPUT ReadOutputRequest; // SrvReadConsoleOutput / ReadConsoleOutput
679 CONSOLE_READOUTPUTCODE ReadOutputCodeRequest; // SrvReadConsoleOutputString / ReadConsoleOutputAttribute & ReadConsoleOutputCharacter
680
681 /* Write */
682 CONSOLE_WRITECONSOLE WriteConsoleRequest; // SrvWriteConsole / WriteConsole
683 CONSOLE_WRITEINPUT WriteInputRequest;
684 CONSOLE_WRITEOUTPUT WriteOutputRequest;
685 CONSOLE_WRITEOUTPUTCODE WriteOutputCodeRequest;
686
687 CONSOLE_FILLOUTPUTCODE FillOutputRequest;
688 CONSOLE_SETTEXTATTRIB SetTextAttribRequest;
689
690 /* Aliases */
691 CONSOLE_ADDGETALIAS ConsoleAliasRequest;
692 CONSOLE_GETALLALIASES GetAllAliasesRequest;
693 CONSOLE_GETALLALIASESLENGTH GetAllAliasesLengthRequest;
694 CONSOLE_GETALIASESEXES GetAliasesExesRequest;
695 CONSOLE_GETALIASESEXESLENGTH GetAliasesExesLengthRequest;
696
697 /* History */
698 CONSOLE_GETCOMMANDHISTORY GetCommandHistoryRequest;
699 CONSOLE_GETCOMMANDHISTORYLENGTH GetCommandHistoryLengthRequest;
700 CONSOLE_EXPUNGECOMMANDHISTORY ExpungeCommandHistoryRequest;
701 CONSOLE_SETHISTORYNUMBERCOMMANDS SetHistoryNumberCommandsRequest;
702 CONSOLE_GETSETHISTORYINFO HistoryInfoRequest;
703
704 CONSOLE_GENERATECTRLEVENT GenerateCtrlEventRequest;
705 CONSOLE_GETNUMINPUTEVENTS GetNumInputEventsRequest;
706
707 /* Input and Output Code Pages */
708 CONSOLE_GETSETINPUTOUTPUTCP ConsoleCPRequest;
709 } Data;
710 } CONSOLE_API_MESSAGE, *PCONSOLE_API_MESSAGE;
711
712 // Check that a CONSOLE_API_MESSAGE can hold in a CSR_API_MESSAGE.
713 CHECK_API_MSG_SIZE(CONSOLE_API_MESSAGE);
714
715 #endif // _CONMSG_H
716
717 /* EOF */