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