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