ReactOS  0.4.14-dev-384-g5b37caa
conio.h
Go to the documentation of this file.
1 /*
2  * COPYRIGHT: See COPYING in the top level directory
3  * PROJECT: ReactOS Console Server DLL
4  * FILE: win32ss/user/winsrv/consrv_new/include/conio.h
5  * PURPOSE: Public Console I/O Interface
6  * PROGRAMMERS: Gé van Geldorp
7  * Jeffrey Morlan
8  * Hermes Belusca-Maito (hermes.belusca@sfr.fr)
9  */
10 
11 #pragma once
12 
13 #define CSR_DEFAULT_CURSOR_SIZE 25
14 
15 /* Default attributes */
16 #define DEFAULT_SCREEN_ATTRIB (FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED)
17 #define DEFAULT_POPUP_ATTRIB (FOREGROUND_BLUE | FOREGROUND_RED | \
18  BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_INTENSITY)
19 
20 /* Object type magic numbers */
22 {
23 // ANY_TYPE_BUFFER = 0x00, // --> Match any types of IO handles
24  TEXTMODE_BUFFER = 0x01, // --> Output-type handles for text SBs
25  GRAPHICS_BUFFER = 0x02, // --> Output-type handles for graphics SBs
26  SCREEN_BUFFER = 0x03, // --> Any SB type
27  INPUT_BUFFER = 0x04 // --> Input-type handles
29 
30 typedef struct _CONSOLE_IO_OBJECT
31 {
33  struct _CONSOLE* /* PCONSOLE */ Console;
38 
39 
40 /******************************************************************************\
41 |* *|
42 |* Abstract "class" for screen-buffers, be they text-mode or graphics *|
43 |* *|
44 \******************************************************************************/
45 
46 /*
47  * See conoutput.c for the implementation
48  */
49 
52 
53 typedef struct _CONSOLE_SCREEN_BUFFER_VTBL
54 {
57 
58 #define GetType(This) (This)->Vtbl->GetType(This)
59 
61 {
62  CONSOLE_IO_OBJECT Header; /* Object header - MUST BE IN FIRST PLACE */
63  PCONSOLE_SCREEN_BUFFER_VTBL Vtbl; /* Virtual table */
64 
65  LIST_ENTRY ListEntry; /* Entry in console's list of buffers */
66 
67  COORD ScreenBufferSize; /* Size of this screen buffer. (Rows, Columns) for text-mode and (Width, Height) for graphics */
68  COORD ViewSize; /* Associated "view" (i.e. console) size */
69 
70  COORD OldScreenBufferSize; /* Old size of this screen buffer */
71  COORD OldViewSize; /* Old associated view size */
72 
73  COORD ViewOrigin; /* Beginning offset for the actual display area */
74 
75 /***** Put that VV in TEXTMODE_SCREEN_BUFFER ?? *****/
76  USHORT VirtualY; /* Top row of buffer being displayed, reported to callers */
77 
78  COORD CursorPosition; /* Current cursor position */
81 // ULONG CursorSize;
82  CONSOLE_CURSOR_INFO CursorInfo; // FIXME: Keep this member or not ??
83 /*********************************************/
84 
85 // WORD ScreenDefaultAttrib; /* Default screen char attribute */
86 // WORD PopupDefaultAttrib; /* Default popup char attribute */
87  USHORT Mode; /* Output buffer modes */
88 };
89 
90 
91 
92 /******************************************************************************\
93 |* *|
94 |* Text-mode and graphics-mode screen-buffer "classes" *|
95 |* *|
96 \******************************************************************************/
97 
98 /*
99  * See text.c for the implementation
100  */
101 
102 /************************************************************************
103  * Screen buffer structure represents the win32 screen buffer object. *
104  * Internally, the portion of the buffer being shown CAN loop past the *
105  * bottom of the virtual buffer and wrap around to the top. Win32 does *
106  * not do this. I decided to do this because it eliminates the need to *
107  * do a massive memcpy() to scroll the contents of the buffer up to *
108  * scroll the screen on output, instead I just shift down the position *
109  * to be displayed, and let it wrap around to the top again. *
110  * The VirtualY member keeps track of the top Y coord that win32 *
111  * clients THINK is currently being displayed, because they think that *
112  * when the display reaches the bottom of the buffer and another line *
113  * being printed causes another line to scroll down, that the buffer IS *
114  * memcpy()'s up, and the bottom of the buffer is still displayed, but *
115  * internally, I just wrap back to the top of the buffer. *
116  ************************************************************************/
117 
118 typedef struct _TEXTMODE_BUFFER_INFO
119 {
126 
127 typedef struct _TEXTMODE_SCREEN_BUFFER
128 {
129  CONSOLE_SCREEN_BUFFER; /* Screen buffer base class - MUST BE IN FIRST PLACE */
130 
131  PCHAR_INFO Buffer; /* Pointer to UNICODE screen buffer (Buffer->Char.UnicodeChar only is valid, not Char.AsciiChar) */
132 
133  WORD ScreenDefaultAttrib; /* Default screen char attribute */
134  WORD PopupDefaultAttrib; /* Default popup char attribute */
136 
137 
138 /*
139  * See graphics.c for the implementation
140  */
141 
142 typedef struct _GRAPHICS_BUFFER_INFO
143 {
144  CONSOLE_GRAPHICS_BUFFER_INFO Info;
146 
147 typedef struct _GRAPHICS_SCREEN_BUFFER
148 {
149  CONSOLE_SCREEN_BUFFER; /* Screen buffer base class - MUST BE IN FIRST PLACE */
150 
151  ULONG BitMapInfoLength; /* Real size of the structure pointed by BitMapInfo */
152  LPBITMAPINFO BitMapInfo; /* Information on the bitmap buffer */
153  ULONG BitMapUsage; /* See the uUsage parameter of GetDIBits */
154  HANDLE hSection; /* Handle to the memory shared section for the bitmap buffer */
155  PVOID BitMap; /* Our bitmap buffer */
156  PVOID ClientBitMap; /* A copy of the client view of our bitmap buffer */
157  HANDLE Mutex; /* Our mutex, used to synchronize read / writes to the bitmap buffer */
158  HANDLE ClientMutex; /* A copy of the client handle to our mutex */
159  HANDLE ClientProcess; /* Handle to the client process who opened the buffer, to unmap the view */
161 
162 
163 
164 typedef struct _CONSOLE_INPUT_BUFFER
165 {
166  CONSOLE_IO_OBJECT Header; /* Object header - MUST BE IN FIRST PLACE */
167 
168  ULONG InputBufferSize; /* Size of this input buffer */
169  LIST_ENTRY InputEvents; /* List head for input event queue */
170  HANDLE ActiveEvent; /* Event set when an input event is added in its queue */
171  LIST_ENTRY ReadWaitQueue; /* List head for the queue of read wait blocks */
172 
173  USHORT Mode; /* Input buffer modes */
175 
176 
177 typedef struct _FRONTEND FRONTEND, *PFRONTEND;
178 /* HACK: */ typedef struct _CONSOLE_INFO *PCONSOLE_INFO;
179 typedef struct _FRONTEND_VTBL
180 {
181  /*
182  * Internal interface (functions called by the console server only)
183  */
184  NTSTATUS (WINAPI *InitFrontEnd)(IN OUT PFRONTEND This,
185  IN struct _CONSOLE* Console);
186  VOID (WINAPI *DeinitFrontEnd)(IN OUT PFRONTEND This);
187 
188  /* Interface used for both text-mode and graphics screen buffers */
190  SMALL_RECT* Region);
191  /* Interface used only for text-mode screen buffers */
192  VOID (WINAPI *WriteStream)(IN OUT PFRONTEND This,
197  PWCHAR Buffer,
198  UINT Length);
199  BOOL (WINAPI *SetCursorInfo)(IN OUT PFRONTEND This,
201  BOOL (WINAPI *SetScreenInfo)(IN OUT PFRONTEND This,
204  SHORT OldCursorY);
205  VOID (WINAPI *ResizeTerminal)(IN OUT PFRONTEND This);
206  BOOL (WINAPI *ProcessKeyCallback)(IN OUT PFRONTEND This,
211  BOOL Down);
212  VOID (WINAPI *RefreshInternalInfo)(IN OUT PFRONTEND This);
213 
214  /*
215  * External interface (functions corresponding to the Console API)
216  */
217  VOID (WINAPI *ChangeTitle)(IN OUT PFRONTEND This);
218  BOOL (WINAPI *ChangeIcon)(IN OUT PFRONTEND This,
220  HWND (WINAPI *GetConsoleWindowHandle)(IN OUT PFRONTEND This);
222  PCOORD pSize);
223  ULONG (WINAPI *GetDisplayMode)(IN OUT PFRONTEND This);
224  BOOL (WINAPI *SetDisplayMode)(IN OUT PFRONTEND This,
225  ULONG NewMode);
226  INT (WINAPI *ShowMouseCursor)(IN OUT PFRONTEND This,
227  BOOL Show);
228  BOOL (WINAPI *SetMouseCursor)(IN OUT PFRONTEND This,
230  HMENU (WINAPI *MenuControl)(IN OUT PFRONTEND This,
232  UINT cmdIdHigh);
233  BOOL (WINAPI *SetMenuClose)(IN OUT PFRONTEND This,
234  BOOL Enable);
235 
236 #if 0 // Possible future front-end interface
237  BOOL (WINAPI *GetFrontEndProperty)(IN OUT PFRONTEND This,
238  ULONG Flag,
239  PVOID Info,
240  ULONG Size);
241  BOOL (WINAPI *SetFrontEndProperty)(IN OUT PFRONTEND This,
242  ULONG Flag,
243  PVOID Info /*,
244  ULONG Size */);
245 #endif
247 
248 struct _FRONTEND
249 {
250  PFRONTEND_VTBL Vtbl; /* Virtual table */
251  struct _CONSOLE* Console; /* Console to which the frontend is attached to */
252  PVOID Data; /* Private data */
253  PVOID OldData; /* Reserved */
254 };
255 
256 /*
257  * WARNING: Change the state of the console ONLY when the console is locked !
258  */
259 typedef enum _CONSOLE_STATE
260 {
261  CONSOLE_INITIALIZING, /* Console is initializing */
262  CONSOLE_RUNNING , /* Console running */
263  CONSOLE_TERMINATING , /* Console about to be destroyed (but still not) */
264  CONSOLE_IN_DESTRUCTION /* Console in destruction */
266 
267 typedef struct _CONSOLE
268 {
269  LONG ReferenceCount; /* Is incremented each time a handle to something in the console (a screen-buffer or the input buffer of this console) gets referenced */
271  CONSOLE_STATE State; /* State of the console */
272 
273  LIST_ENTRY ProcessList; /* List of processes owning the console. The first one is the so-called "Console Leader Process" */
274 
275  FRONTEND TermIFace; /* Frontend-specific interface */
276 
277 /**************************** Input buffer and data ***************************/
278  CONSOLE_INPUT_BUFFER InputBuffer; /* Input buffer of the console */
279 
281  PWCHAR LineBuffer; /* Current line being input, in line buffered mode */
282  WORD LineMaxSize; /* Maximum size of line in characters (including CR+LF) */
283  WORD LineSize; /* Current size of line */
284  WORD LinePos; /* Current position within line */
285  BOOLEAN LineComplete; /* User pressed enter, ready to send back to client */
287  BOOLEAN LineInsertToggle; /* Replace character over cursor instead of inserting */
288  ULONG LineWakeupMask; /* Bitmap of which control characters will end line input */
289  /***************************************************/
290 
294 
295  CONSOLE_SELECTION_INFO Selection; /* Contains information about the selection */
296  COORD dwSelectionCursor; /* Selection cursor position, most of the time different from Selection.dwSelectionAnchor */
297 
298 /******************************* Screen buffers *******************************/
299  LIST_ENTRY BufferList; /* List of all screen buffers for this console */
300  PCONSOLE_SCREEN_BUFFER ActiveBuffer; /* Pointer to currently active screen buffer */
303  LIST_ENTRY WriteWaitQueue; /* List head for the queue of write wait blocks */
305 
306 /**************************** Aliases and Histories ***************************/
309  ULONG HistoryBufferSize; /* Size for newly created history buffers */
310  ULONG NumberOfHistoryBuffers; /* Maximum number of history buffers allowed */
311  BOOLEAN HistoryNoDup; /* Remove old duplicate history entries */
312 
313 /****************************** Other properties ******************************/
314  UNICODE_STRING OriginalTitle; /* Original title of console, the one defined when the console leader is launched; it never changes. Always NULL-terminated */
315  UNICODE_STRING Title; /* Title of console. Always NULL-terminated */
316 
317  COORD ConsoleSize; /* The current size of the console, for text-mode only */
318  BOOLEAN FixedSize; /* TRUE if the console is of fixed size */
319 
320  COLORREF Colors[16]; /* Colour palette */
321 
322 } CONSOLE, *PCONSOLE;
323 
324 /* PauseFlags values (internal only) */
325 #define PAUSED_FROM_KEYBOARD 0x1
326 #define PAUSED_FROM_SCROLLBAR 0x2
327 #define PAUSED_FROM_SELECTION 0x4
328 
329 /* console.c */
332 
335  IN ULONG ProcessGroupId,
336  IN ULONG Event);
337 
338 /* coninput.c */
341  PINPUT_RECORD InputEvent);
342 
343 /* conoutput.c */
344 #define ConioInitRect(Rect, top, left, bottom, right) \
345 do { \
346  ((Rect)->Top) = top; \
347  ((Rect)->Left) = left; \
348  ((Rect)->Bottom) = bottom; \
349  ((Rect)->Right) = right; \
350 } while (0)
351 #define ConioIsRectEmpty(Rect) \
352  (((Rect)->Left > (Rect)->Right) || ((Rect)->Top > (Rect)->Bottom))
353 #define ConioRectHeight(Rect) \
354  (((Rect)->Top) > ((Rect)->Bottom) ? 0 : ((Rect)->Bottom) - ((Rect)->Top) + 1)
355 #define ConioRectWidth(Rect) \
356  (((Rect)->Left) > ((Rect)->Right) ? 0 : ((Rect)->Right) - ((Rect)->Left) + 1)
357 
358 #define ConsoleUnicodeCharToAnsiChar(Console, dChar, sWChar) \
359  WideCharToMultiByte((Console)->OutputCodePage, 0, (sWChar), 1, (dChar), 1, NULL, NULL)
360 
361 #define ConsoleAnsiCharToUnicodeChar(Console, dWChar, sChar) \
362  MultiByteToWideChar((Console)->OutputCodePage, 0, (sChar), 1, (dWChar), 1)
363 
368  COORD Size);
371  PWCHAR Buffer,
372  DWORD Length,
373  BOOL Attrib);
375  DWORD Scale);
376 
377 /* EOF */
CONSOLE_GRAPHICS_BUFFER_INFO Info
Definition: conio.h:167
LONG ExclusiveWrite
Definition: conio.h:56
HANDLE UnpauseEvent
Definition: conio.h:334
struct _GRAPHICS_BUFFER_INFO * PGRAPHICS_BUFFER_INFO
struct _FRONTEND_VTBL FRONTEND_VTBL
COORD dwSelectionCursor
Definition: conio.h:296
#define IN
Definition: typedefs.h:38
MSG BYTE KeyStateMenu
Definition: conio.h:207
static HICON
Definition: imagelist.c:84
VOID FASTCALL ConioUnpause(PCONSOLE Console, UINT Flags)
Definition: console.c:269
struct _CONSOLE * Console
Definition: conio.h:52
WORD LinePos
Definition: conio.h:284
struct _FRONTEND_VTBL * PFRONTEND_VTBL
MSG * msg
Definition: conio.h:207
SMALL_RECT * Block
Definition: conio.h:193
SMALL_RECT SHORT SHORT UINT PWCHAR UINT Length
Definition: conio_winsrv.h:67
#define Y(I)
HWND(NTAPI *GetConsoleWindowHandle)(IN OUT PFRONTEND This)
BOOLEAN CursorBlinkOn
Definition: conio.h:99
PCHAR_INFO ConioCoordToPointer(PTEXTMODE_SCREEN_BUFFER Buff, ULONG X, ULONG Y)
Definition: text.c:140
NTSTATUS(NTAPI *InitFrontEnd)(IN OUT PFRONTEND This
LONG ReferenceCount
Definition: conio.h:325
LIST_ENTRY WriteWaitQueue
Definition: conio.h:303
HANDLE ActiveEvent
Definition: conio.h:194
PVOID OldData
Definition: conio.h:253
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1827
HMENU(NTAPI *MenuControl)(IN OUT PFRONTEND This
SMALL_RECT SHORT SHORT CursorStartY
Definition: conio_winsrv.h:67
LONG NTSTATUS
Definition: precomp.h:26
PCONSOLE_SCREEN_BUFFER ScreenBuffer
Definition: conio_winsrv.h:75
COORD CursorPosition
Definition: conio.h:98
FRONTEND TermIFace
Definition: conio.h:275
ULONG NumberOfHistoryBuffers
Definition: conio.h:310
LONG AccessRead
Definition: conio.h:55
BOOLEAN IsCursorVisible
Definition: conio.h:147
UINT UINT cmdIdHigh
Definition: conio.h:231
UINT cmdIdLow
Definition: conio.h:231
LIST_ENTRY ProcessList
Definition: conio.h:273
BOOLEAN LineUpPressed
Definition: conio.h:286
PWCHAR LineBuffer
Definition: conio.h:281
uint16_t * PWCHAR
Definition: typedefs.h:54
HICON HCURSOR
Definition: windef.h:284
PCONSOLE_SCREEN_BUFFER ActiveBuffer
Definition: conio.h:342
#define FASTCALL
Definition: nt_native.h:50
enum _CONSOLE_STATE * PCONSOLE_STATE
LONG AccessWrite
Definition: conio.h:55
COORD OldScreenBufferSize
Definition: conio.h:90
LIST_ENTRY HistoryBuffers
Definition: conio.h:308
struct TraceInfo Info
COORD ConsoleSize
Definition: conio.h:346
CONSOLE_IO_OBJECT Header
Definition: conio.h:82
struct _CONSOLE_SCREEN_BUFFER_VTBL CONSOLE_SCREEN_BUFFER_VTBL
struct _FRONTEND * PFRONTEND
Definition: conio.h:177
struct _CONSOLE_INPUT_BUFFER * PCONSOLE_INPUT_BUFFER
NTSTATUS ConioResizeBuffer(PCONSOLE Console, PTEXTMODE_SCREEN_BUFFER ScreenBuffer, COORD Size)
Definition: text.c:257
static VOID DrawRegion(PGUI_CONSOLE_DATA GuiData, SMALL_RECT *Region)
Definition: guiterm.c:76
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
VOID FASTCALL ConioPause(PCONSOLE Console, UINT Flags)
Definition: console.c:261
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
LPBITMAPINFO BitMapInfo
Definition: conio.h:175
COORD ScreenBufferSize
Definition: conio.h:87
unsigned int BOOL
Definition: ntddk_ex.h:94
long LONG
Definition: pedump.c:60
MSG BYTE DWORD UINT BOOL Down
Definition: conio.h:207
BOOLEAN HistoryNoDup
Definition: conio.h:311
short SHORT
Definition: pedump.c:59
struct _CONSOLE * Console
Definition: conio.h:251
struct _CONSOLE_SCREEN_BUFFER * PCONSOLE_SCREEN_BUFFER
Definition: conio.h:70
unsigned char BOOLEAN
struct _CONSOLE_IO_OBJECT CONSOLE_IO_OBJECT
CONSOLE_STATE State
Definition: conio.h:331
CONSOLE_IO_OBJECT_TYPE(* GetType)(PCONSOLE_SCREEN_BUFFER This)
Definition: conio.h:75
Definition: bufpool.h:45
MSG BYTE DWORD ShiftState
Definition: conio.h:207
SMALL_RECT * Region
Definition: conio_winsrv.h:64
UINT CodePage
Definition: conio.h:293
struct _CONSOLE_IO_OBJECT * PCONSOLE_IO_OBJECT
BOOLEAN FixedSize
Definition: conio.h:347
UNICODE_STRING OriginalTitle
Definition: conio.h:314
CONSOLE_SELECTION_INFO Selection
Definition: conio.h:295
struct _CONSOLE_INFO * PCONSOLE_INFO
UINT OutputCodePage
Definition: conio.h:343
BOOLEAN QuickEdit
Definition: conio.h:291
DWORD COLORREF
Definition: windef.h:285
struct _CONSOLE CONSOLE
Colors
Definition: ansiprsr.h:4
LIST_ENTRY ReadWaitQueue
Definition: conio.h:171
LIST_ENTRY BufferList
Definition: conio.h:341
#define WINAPI
Definition: msvc.h:8
Definition: xml2sdb.h:79
NTSTATUS FASTCALL ConioProcessInputEvent(PCONSOLE Console, PINPUT_RECORD InputEvent)
Definition: coninput.c:63
unsigned short WORD
Definition: ntddk_ex.h:93
COORD WINAPI DECLSPEC_HOTPATCH GetLargestConsoleWindowSize(HANDLE hConsoleOutput)
Definition: console.c:1675
unsigned long DWORD
Definition: ntddk_ex.h:95
PFRONTEND_VTBL Vtbl
Definition: conio_winsrv.h:117
CONSOLE_INPUT_BUFFER InputBuffer
Definition: conio.h:337
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
CONSOLE_IO_OBJECT Header
Definition: conio.h:190
HICON hWindowIcon
Definition: conio.h:219
struct _GRAPHICS_SCREEN_BUFFER * PGRAPHICS_SCREEN_BUFFER
DWORD FASTCALL ConioEffectiveCursorSize(PCONSOLE Console, DWORD Scale)
Definition: text.c:303
VOID FASTCALL ConioDrawConsole(PCONSOLE Console)
Definition: conoutput.c:136
UNICODE_STRING Title
Definition: conio.h:315
unsigned char BYTE
Definition: mem.h:68
VOID(NTAPI *DeinitFrontEnd)(IN OUT PFRONTEND This)
Definition: typedefs.h:117
struct _TEXTMODE_SCREEN_BUFFER TEXTMODE_SCREEN_BUFFER
ULONG(NTAPI *GetDisplayMode)(IN OUT PFRONTEND This)
BOOLEAN ForceCursorOff
Definition: conio.h:100
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
Definition: bl.h:1338
BOOLEAN LineInsertToggle
Definition: conio.h:287
struct _GRAPHICS_BUFFER_INFO GRAPHICS_BUFFER_INFO
BYTE PauseFlags
Definition: conio.h:301
struct _CONSOLE * PCONSOLE
Definition: conio.h:312
struct _ALIAS_HEADER * Aliases
Definition: conio.h:307
USHORT PopupAttrib
Definition: conio.h:145
enum _CONSOLE_STATE CONSOLE_STATE
LIST_ENTRY ListEntry
Definition: conio.h:85
ULONG InputBufferSize
Definition: conio.h:192
struct _CONSOLE_INPUT_BUFFER CONSOLE_INPUT_BUFFER
WORD LineMaxSize
Definition: conio.h:282
struct _CONSOLE_SCREEN_BUFFER_VTBL * PCONSOLE_SCREEN_BUFFER_VTBL
CRITICAL_SECTION Lock
Definition: conio.h:326
unsigned short USHORT
Definition: pedump.c:61
MSG BYTE DWORD UINT VirtualKeyCode
Definition: conio.h:207
_CONSOLE_IO_OBJECT_TYPE
Definition: conio.h:38
BOOL(NTAPI *SetCursorInfo)(IN OUT PFRONTEND This
SMALL_RECT SHORT SHORT UINT ScrolledLines
Definition: conio_winsrv.h:67
NTSTATUS NTAPI ConDrvConsoleProcessCtrlEvent(IN PCONSOLE Console, IN ULONG ProcessGroupId, IN ULONG Event)
Definition: console.c:1069
BOOLEAN InsertMode
Definition: conio.h:292
unsigned int UINT
Definition: ndis.h:50
struct _TEXTMODE_BUFFER_INFO * PTEXTMODE_BUFFER_INFO
CConsole Console
HCURSOR hCursor
Definition: conio.h:229
BOOLEAN LineComplete
Definition: conio.h:285
#define msg(x)
Definition: auth_time.c:54
PCHAR_INFO Buffer
Definition: conio.h:154
PVOID Data
Definition: conio.h:252
HANDLE ScreenBuffer
Definition: notevil.c:37
#define OUT
Definition: typedefs.h:39
CONSOLE_IO_OBJECT_TYPE Type
Definition: conio.h:50
PCONSOLE_SCREEN_BUFFER SHORT SHORT OldCursorY
Definition: conio_winsrv.h:77
NTSTATUS ConioWriteConsole(PCONSOLE Console, PTEXTMODE_SCREEN_BUFFER Buff, PWCHAR Buffer, DWORD Length, BOOL Attrib)
Definition: text.c:455
unsigned int ULONG
Definition: retypes.h:1
IN struct _CONSOLE * Console
Definition: conio.h:185
PCONSOLE_SCREEN_BUFFER_VTBL Vtbl
Definition: conio.h:83
ULONG HistoryBufferSize
Definition: conio.h:309
ULONG LineWakeupMask
Definition: conio.h:288
VOID WINAPI ConioProcessKey(PCONSOLE Console, MSG *msg)
Definition: input.c:58
SMALL_RECT SHORT SHORT UINT PWCHAR Buffer
Definition: conio_winsrv.h:67
CONSOLE_CURSOR_INFO CursorInfo
Definition: conio.h:102
PCONSOLE_SCREEN_BUFFER SHORT OldCursorX
Definition: conio_winsrv.h:77
LIST_ENTRY InputEvents
Definition: conio.h:193
enum _CONSOLE_IO_OBJECT_TYPE CONSOLE_IO_OBJECT_TYPE
struct _TEXTMODE_SCREEN_BUFFER * PTEXTMODE_SCREEN_BUFFER
COORD ScreenBufferSize
Definition: conio.h:143
SMALL_RECT SHORT CursorStartX
Definition: conio_winsrv.h:67
INT(NTAPI *ShowMouseCursor)(IN OUT PFRONTEND This
WORD LineSize
Definition: conio.h:283
struct _TEXTMODE_BUFFER_INFO TEXTMODE_BUFFER_INFO
LONG ExclusiveRead
Definition: conio.h:56
LONG HandleCount
Definition: conio.h:36
struct _GRAPHICS_SCREEN_BUFFER GRAPHICS_SCREEN_BUFFER
USHORT ScreenAttrib
Definition: conio.h:144