ReactOS  0.4.15-dev-1201-gb2cf5a4
consup.c
Go to the documentation of this file.
1 /*
2  * ReactOS kernel
3  * Copyright (C) 2002 ReactOS Team
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 /*
20  * COPYRIGHT: See COPYING in the top level directory
21  * PROJECT: ReactOS text-mode setup
22  * FILE: base/setup/usetup/consup.c
23  * PURPOSE: Console support functions
24  * PROGRAMMER:
25  */
26 
27 /* INCLUDES ******************************************************************/
28 
29 #include <usetup.h>
30 
31 #define NDEBUG
32 #include <debug.h>
33 
34 /* GLOBALS ******************************************************************/
35 
38 
41 
42 /* FUNCTIONS *****************************************************************/
43 
44 BOOLEAN
46 {
48  if (!AllocConsole())
49  return FALSE;
50 
54  return FALSE;
55  xScreen = csbi.dwSize.X;
56  yScreen = csbi.dwSize.Y;
57  return TRUE;
58 }
59 
60 VOID
63 {
64  DWORD Read;
65 
66  while (TRUE)
67  {
68  /* Wait for a key press */
70 
71  if ((Buffer->EventType == KEY_EVENT) &&
72  (Buffer->Event.KeyEvent.bKeyDown != FALSE))
73  {
74  break;
75  }
76  }
77 }
78 
79 BOOLEAN
82 {
83  DWORD Read = 0;
84 
85  while (TRUE)
86  {
87  /* Try to get a key press without blocking */
89  return FALSE;
90  if (Read == 0)
91  return FALSE;
92 
93  /* Consume it */
95 
96  if ((Buffer->EventType == KEY_EVENT) &&
97  (Buffer->Event.KeyEvent.bKeyDown != FALSE))
98  {
99  return TRUE;
100  }
101  }
102 }
103 
104 VOID
106  IN CHAR c)
107 {
108  DWORD Written;
109 
111  &c,
112  1,
113  &Written,
114  NULL);
115 }
116 
117 VOID
119  IN LPCSTR szText)
120 {
121  DWORD Written;
122 
124  szText,
125  (ULONG)strlen(szText),
126  &Written,
127  NULL);
129  "\n",
130  1,
131  &Written,
132  NULL);
133 }
134 
135 VOID
137  IN LPCSTR szFormat,
138  IN va_list args)
139 {
140  CHAR szOut[256];
141  DWORD dwWritten;
142 
143  vsprintf(szOut, szFormat, args);
144 
146  szOut,
147  (ULONG)strlen(szOut),
148  &dwWritten,
149  NULL);
150 }
151 
152 VOID
153 __cdecl
155  IN LPCSTR szFormat,
156  ...)
157 {
158  va_list arg_ptr;
159 
160  va_start(arg_ptr, szFormat);
161  CONSOLE_ConOutPrintfV(szFormat, arg_ptr);
162  va_end(arg_ptr);
163 }
164 
165 BOOL
167 {
169 }
170 
171 VOID
173  OUT PSHORT x,
174  OUT PSHORT y)
175 {
177 
179 
180  *x = csbi.dwCursorPosition.X;
181  *y = csbi.dwCursorPosition.Y;
182 }
183 
184 SHORT
186 {
188 
190 
191  return csbi.dwCursorPosition.X;
192 }
193 
194 SHORT
196 {
198 
200 
201  return csbi.dwCursorPosition.Y;
202 }
203 
204 VOID
206  IN BOOL bInsert,
207  IN BOOL bVisible)
208 {
210 
211  cci.dwSize = bInsert ? 10 : 99;
212  cci.bVisible = bVisible;
213 
215 }
216 
217 VOID
219  IN SHORT x,
220  IN SHORT y)
221 {
222  COORD coPos;
223 
224  coPos.X = x;
225  coPos.Y = y;
227 }
228 
229 VOID
231 {
232  COORD coPos;
233  DWORD Written;
234 
235  coPos.X = 0;
236  coPos.Y = 0;
237 
238  /*
239  * Hide everything under the same foreground & background colors, so that
240  * the actual color and text blanking reset does not create a visual "blinking".
241  * We do this because we cannot do the screen scrolling trick that would
242  * allow to change both the text and the colors at the same time (the
243  * function is currently not available in our console "emulation" layer).
244  */
247  xScreen * yScreen,
248  coPos,
249  &Written);
250 
251  /* Blank the text */
253  ' ',
254  xScreen * yScreen,
255  coPos,
256  &Written);
257 
258  /* Reset the actual foreground & background colors */
261  xScreen * yScreen,
262  coPos,
263  &Written);
264 }
265 
266 VOID
268  IN SHORT x,
269  IN SHORT y,
270  IN SHORT col,
271  IN SHORT row)
272 {
273  COORD coPos;
274  DWORD Written;
275 
276  for (coPos.Y = y; coPos.Y < y + row; coPos.Y++)
277  {
278  coPos.X = x;
279 
282  col,
283  coPos,
284  &Written);
285  }
286 }
287 
288 VOID
290  IN SHORT x,
291  IN SHORT y,
292  IN SHORT col,
293  IN SHORT row)
294 {
295  COORD coPos;
296  DWORD Written;
297 
298  for (coPos.Y = y; coPos.Y < y + row; coPos.Y++)
299  {
300  coPos.X = x;
301 
304  col,
305  coPos,
306  &Written);
307  }
308 }
309 
310 VOID
312  IN SHORT x,
313  IN SHORT y,
314  IN LPCSTR Text)
315 {
316  COORD coPos;
317  DWORD Written;
318 
319  coPos.X = x;
320  coPos.Y = y;
321 
323  Text,
324  (ULONG)strlen(Text),
325  coPos,
326  &Written);
327 }
328 
329 VOID
331  IN SHORT y,
332  IN SHORT Length)
333 {
334  COORD coPos;
335  DWORD Written;
336 
337  coPos.X = x;
338  coPos.Y = y;
339 
341  ' ',
342  Length,
343  coPos,
344  &Written);
345 }
346 
347 VOID
349  IN SHORT x,
350  IN SHORT y,
351  IN SHORT len,
352  IN LPCWSTR Text)
353 {
354  COORD coPos;
355  SHORT Length;
356  DWORD Written;
357 
358  coPos.X = x;
359  coPos.Y = y;
360 
361  Length = (SHORT)wcslen(Text);
362  if (Length > len - 1)
363  Length = len - 1;
364 
367  len,
368  coPos,
369  &Written);
370 
372  Text,
373  (ULONG)Length,
374  coPos,
375  &Written);
376 
377  coPos.X += Length;
378  if (len > Length)
379  {
381  ' ',
382  len - Length,
383  coPos,
384  &Written);
385  }
386 }
387 
388 VOID
390  IN SHORT x,
391  IN SHORT y,
392  IN LPCSTR Text)
393 {
394  COORD coPos;
395  DWORD Length;
396  DWORD Written;
397 
398  coPos.X = x;
399  coPos.Y = y;
400 
401  Length = (ULONG)strlen(Text);
402 
404  Text,
405  Length,
406  coPos,
407  &Written);
408 
409  coPos.Y++;
411  0xCD,
412  Length,
413  coPos,
414  &Written);
415 }
416 
417 VOID
419  IN SHORT x,
420  IN LPCSTR fmt,
421  IN va_list args)
422 {
423  COORD coPos;
424  DWORD Written;
425  CHAR Buffer[128];
426 
427  vsprintf(Buffer, fmt, args);
428 
429  coPos.X = 0;
430  coPos.Y = yScreen - 1;
431 
434  xScreen,
435  coPos,
436  &Written);
437 
439  ' ',
440  xScreen,
441  coPos,
442  &Written);
443 
444  coPos.X = x;
445 
447  Buffer,
448  (ULONG)strlen(Buffer),
449  coPos,
450  &Written);
451 }
452 
453 VOID
454 __cdecl
456  IN SHORT x,
457  IN LPCSTR fmt,
458  ...)
459 {
460  va_list ap;
461 
462  va_start(ap, fmt);
464  va_end(ap);
465 }
466 
467 VOID
469  IN LPCSTR fmt,
470  IN va_list args)
471 {
473 }
474 
475 VOID
476 __cdecl
478  IN LPCSTR fmt,
479  ...)
480 {
481  va_list ap;
482 
483  va_start(ap, fmt);
485  va_end(ap);
486 }
487 
488 static
489 VOID
491  IN SHORT x,
492  IN SHORT Length)
493 {
494  COORD coPos;
495  DWORD Written;
496 
497  coPos.X = x;
498  coPos.Y = yScreen - 1;
499 
501  ' ',
502  Length,
503  coPos,
504  &Written);
505 }
506 
507 VOID
508 __cdecl
510  IN SHORT x,
511  IN LPCSTR fmt,
512  ...)
513 {
514  CHAR Buffer[128];
515  DWORD Length;
516  va_list ap;
517 
518  va_start(ap, fmt);
519  vsprintf(Buffer, fmt, ap);
520  va_end(ap);
521 
523 
524  if (Length + x <= 79)
525  {
527  }
528  else
529  {
531  }
532 }
533 
534 VOID
536  IN SHORT x,
537  IN SHORT y,
538  IN LPCSTR Text)
539 {
540  COORD coPos;
541  DWORD Length;
542  DWORD Written;
543 
544  coPos.X = x;
545  coPos.Y = y;
546 
547  Length = (ULONG)strlen(Text);
548 
551  Length,
552  coPos,
553  &Written);
554 
556  Text,
557  Length,
558  coPos,
559  &Written);
560 }
561 
562 VOID
564  IN SHORT x,
565  IN SHORT y,
566  IN LPCSTR Text)
567 {
568  COORD coPos;
569  DWORD Length;
570  DWORD Written;
571 
572  coPos.X = x;
573  coPos.Y = y;
574 
575  Length = (ULONG)strlen(Text);
576 
579  Length,
580  coPos,
581  &Written);
582 
584  Text,
585  Length,
586  coPos,
587  &Written);
588 }
589 
590 VOID
591 __cdecl
593  IN SHORT x,
594  IN SHORT y,
595  IN LPCSTR fmt,
596  ...)
597 {
598  CHAR buffer[512];
599  va_list ap;
600  COORD coPos;
601  DWORD Written;
602 
603  va_start(ap, fmt);
604  vsprintf(buffer, fmt, ap);
605  va_end(ap);
606 
607  coPos.X = x;
608  coPos.Y = y;
609 
611  buffer,
612  (ULONG)strlen(buffer),
613  coPos,
614  &Written);
615 }
616 
617 VOID
618 __cdecl
620  IN SHORT x,
621  IN SHORT y,
622  IN SHORT len,
623  IN LPCSTR fmt,
624  ...)
625 {
626  CHAR buffer[512];
627  va_list ap;
628  COORD coPos;
629  SHORT Length;
630  DWORD Written;
631 
632  va_start(ap, fmt);
633  vsprintf(buffer, fmt, ap);
634  va_end(ap);
635 
636  coPos.X = x;
637  coPos.Y = y;
638 
640  if (Length > len - 1)
641  Length = len - 1;
642 
644  buffer,
645  Length,
646  coPos,
647  &Written);
648 
649  coPos.X += Length;
650 
651  if (len > Length)
652  {
654  ' ',
655  len - Length,
656  coPos,
657  &Written);
658  }
659 }
660 
661 VOID
663  IN SHORT x,
664  IN SHORT y,
665  IN INT Flags,
666  IN LPCSTR Text)
667 {
668  COORD coPos;
669  DWORD Length;
670 
671  coPos.X = x;
672  coPos.Y = y;
673 
674  Length = (ULONG)strlen(Text);
675 
676  if (Flags & TEXT_TYPE_STATUS)
677  {
678  coPos.X = x;
679  coPos.Y = yScreen - 1;
680  }
681  else /* TEXT_TYPE_REGULAR (Default) */
682  {
683  coPos.X = x;
684  coPos.Y = y;
685  }
686 
687  if (Flags & TEXT_ALIGN_CENTER)
688  {
689  coPos.X = (xScreen - Length) / 2;
690  }
691  else if(Flags & TEXT_ALIGN_RIGHT)
692  {
693  coPos.X = coPos.X - Length;
694 
696  {
697  coPos.X -= 1;
698  }
699  else if (Flags & TEXT_PADDING_MEDIUM)
700  {
701  coPos.X -= 2;
702  }
703  else if (Flags & TEXT_PADDING_BIG)
704  {
705  coPos.X -= 3;
706  }
707  }
708  else /* TEXT_ALIGN_LEFT (Default) */
709  {
711  {
712  coPos.X += 1;
713  }
714  else if (Flags & TEXT_PADDING_MEDIUM)
715  {
716  coPos.X += 2;
717  }
718  else if (Flags & TEXT_PADDING_BIG)
719  {
720  coPos.X += 3;
721  }
722  }
723 
724  if (Flags & TEXT_TYPE_STATUS)
725  {
726  CONSOLE_SetStatusTextX(coPos.X, Text);
727  }
728  else /* TEXT_TYPE_REGULAR (Default) */
729  {
731  {
732  CONSOLE_SetHighlightedTextXY(coPos.X, coPos.Y, Text);
733  }
734  else if (Flags & TEXT_STYLE_UNDERLINE)
735  {
736  CONSOLE_SetUnderlinedTextXY(coPos.X, coPos.Y, Text);
737  }
738  else /* TEXT_STYLE_NORMAL (Default) */
739  {
740  CONSOLE_SetTextXY(coPos.X, coPos.Y, Text);
741  }
742  }
743 }
744 
745 VOID
747  IN SHORT x,
748  IN SHORT y,
749  IN INT Flags,
750  IN SHORT Length)
751 {
752  COORD coPos;
753 
754  coPos.X = x;
755  coPos.Y = y;
756 
757  if (Flags & TEXT_TYPE_STATUS)
758  {
759  coPos.X = x;
760  coPos.Y = yScreen - 1;
761  }
762  else /* TEXT_TYPE_REGULAR (Default) */
763  {
764  coPos.X = x;
765  coPos.Y = y;
766  }
767 
768  if (Flags & TEXT_ALIGN_CENTER)
769  {
770  coPos.X = (xScreen - Length) / 2;
771  }
772  else if(Flags & TEXT_ALIGN_RIGHT)
773  {
774  coPos.X = coPos.X - Length;
775 
777  {
778  coPos.X -= 1;
779  }
780  else if (Flags & TEXT_PADDING_MEDIUM)
781  {
782  coPos.X -= 2;
783  }
784  else if (Flags & TEXT_PADDING_BIG)
785  {
786  coPos.X -= 3;
787  }
788  }
789  else /* TEXT_ALIGN_LEFT (Default) */
790  {
792  {
793  coPos.X += 1;
794  }
795  else if (Flags & TEXT_PADDING_MEDIUM)
796  {
797  coPos.X += 2;
798  }
799  else if (Flags & TEXT_PADDING_BIG)
800  {
801  coPos.X += 3;
802  }
803  }
804 
805  if (Flags & TEXT_TYPE_STATUS)
806  {
808  }
809  else /* TEXT_TYPE_REGULAR (Default) */
810  {
811  CONSOLE_ClearTextXY(coPos.X, coPos.Y, Length);
812  }
813 }
814 
815 /* EOF */
#define IN
Definition: typedefs.h:39
_In_ BOOLEAN Read
Definition: strmini.h:479
BOOL WINAPI AllocConsole(VOID)
Definition: console.c:74
VOID __cdecl CONSOLE_PrintTextXYN(IN SHORT x, IN SHORT y, IN SHORT len, IN LPCSTR fmt,...)
Definition: consup.c:619
SHORT xScreen
Definition: consup.c:39
VOID CONSOLE_SetTextXY(IN SHORT x, IN SHORT y, IN LPCSTR Text)
Definition: consup.c:311
BOOL WINAPI FillConsoleOutputAttribute(IN HANDLE hConsoleOutput, IN WORD wAttribute, IN DWORD nLength, IN COORD dwWriteCoord, OUT LPDWORD lpNumberOfAttrsWritten)
Definition: console.c:522
#define __cdecl
Definition: accygwin.h:79
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
signed short * PSHORT
Definition: retypes.h:6
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
VOID CONSOLE_ClearTextXY(IN SHORT x, IN SHORT y, IN SHORT Length)
Definition: consup.c:330
#define TRUE
Definition: types.h:120
#define TEXT_PADDING_MEDIUM
Definition: consup.h:50
static VOID CONSOLE_ClearStatusTextX(IN SHORT x, IN SHORT Length)
Definition: consup.c:490
VOID CONSOLE_ConOutChar(IN CHAR c)
Definition: consup.c:105
#define TEXT_TYPE_STATUS
Definition: consup.h:40
char CHAR
Definition: xmlstorage.h:175
VOID CONSOLE_SetStatusTextV(IN LPCSTR fmt, IN va_list args)
Definition: consup.c:468
VOID __cdecl CONSOLE_PrintTextXY(IN SHORT x, IN SHORT y, IN LPCSTR fmt,...)
Definition: consup.c:592
HANDLE StdInput
Definition: consup.c:36
VOID CONSOLE_SetStatusTextXV(IN SHORT x, IN LPCSTR fmt, IN va_list args)
Definition: consup.c:418
#define INVALID_HANDLE_VALUE
Definition: compat.h:590
BOOL WINAPI FlushConsoleInputBuffer(IN HANDLE hConsoleInput)
Definition: console.c:217
#define TEXT_ALIGN_CENTER
Definition: consup.h:46
HANDLE WINAPI GetStdHandle(IN DWORD nStdHandle)
Definition: console.c:200
GLuint buffer
Definition: glext.h:5915
VOID CONSOLE_GetCursorXY(OUT PSHORT x, OUT PSHORT y)
Definition: consup.c:172
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
VOID __cdecl CONSOLE_ConOutPrintf(IN LPCSTR szFormat,...)
Definition: consup.c:154
VOID CONSOLE_SetInputTextXY(IN SHORT x, IN SHORT y, IN SHORT len, IN LPCWSTR Text)
Definition: consup.c:348
SHORT CONSOLE_GetCursorY(VOID)
Definition: consup.c:195
Definition: match.c:390
int32_t INT
Definition: typedefs.h:58
BOOL CONSOLE_Flush(VOID)
Definition: consup.c:166
#define FOREGROUND_WHITE
Definition: consup.h:29
BOOL WINAPI FillConsoleOutputCharacterA(IN HANDLE hConsoleOutput, IN CHAR cCharacter, IN DWORD nLength, IN COORD dwWriteCoord, OUT LPDWORD lpNumberOfCharsWritten)
Definition: console.c:557
VOID CONSOLE_NormalTextXY(IN SHORT x, IN SHORT y, IN SHORT col, IN SHORT row)
Definition: consup.c:289
BOOL WINAPI WriteConsoleOutputCharacterW(HANDLE hConsoleOutput, IN LPCWSTR lpCharacter, IN DWORD nLength, IN COORD dwWriteCoord, OUT LPDWORD lpNumberOfCharsWritten)
Definition: console.c:448
#define TEXT_ALIGN_RIGHT
Definition: consup.h:44
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
VOID CONSOLE_InvertTextXY(IN SHORT x, IN SHORT y, IN SHORT col, IN SHORT row)
Definition: consup.c:267
BOOL WINAPI PeekConsoleInput(IN HANDLE hConsoleInput, OUT PINPUT_RECORD lpBuffer, IN DWORD nLength, OUT LPDWORD lpNumberOfEventsRead)
Definition: console.c:263
#define va_end(ap)
Definition: acmsvcex.h:90
#define FALSE
Definition: types.h:117
#define TEXT_STYLE_UNDERLINE
Definition: consup.h:36
static const WCHAR szText[]
Definition: dialog.c:139
unsigned int BOOL
Definition: ntddk_ex.h:94
#define ReadConsoleInput
Definition: wincon.h:781
#define TEXT_STYLE_HIGHLIGHT
Definition: consup.h:35
short SHORT
Definition: pedump.c:59
VOID CONSOLE_ClearScreen(VOID)
Definition: consup.c:230
#define KEY_EVENT
Definition: wincon.h:128
HANDLE StdOutput
Definition: consup.c:37
unsigned char BOOLEAN
VOID CONSOLE_SetCursorType(IN BOOL bInsert, IN BOOL bVisible)
Definition: consup.c:205
smooth NULL
Definition: ftsmooth.c:416
BOOL WINAPI SetConsoleCursorPosition(IN HANDLE hConsoleOutput, IN COORD dwCursorPosition)
Definition: console.c:638
char * va_list
Definition: acmsvcex.h:78
Definition: bufpool.h:45
const char * LPCSTR
Definition: xmlstorage.h:183
#define STD_INPUT_HANDLE
Definition: winbase.h:264
BOOL WINAPI WriteConsoleOutputCharacterA(HANDLE hConsoleOutput, IN LPCSTR lpCharacter, IN DWORD nLength, IN COORD dwWriteCoord, OUT LPDWORD lpNumberOfCharsWritten)
Definition: console.c:404
BOOL WINAPI GetConsoleScreenBufferInfo(IN HANDLE hConsoleOutput, OUT PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo)
Definition: console.c:592
ULONG X
Definition: bl.h:1340
#define FOREGROUND_INTENSITY
Definition: blue.h:64
BOOLEAN CONSOLE_ConInKeyPeek(OUT PINPUT_RECORD Buffer)
Definition: consup.c:80
BOOLEAN CONSOLE_Init(VOID)
Definition: consup.c:45
BOOL WINAPI SetConsoleCursorInfo(IN HANDLE hConsoleOutput, IN const CONSOLE_CURSOR_INFO *lpConsoleCursorInfo)
Definition: console.c:615
VOID __cdecl CONSOLE_SetStatusTextX(IN SHORT x, IN LPCSTR fmt,...)
Definition: consup.c:455
VOID CONSOLE_SetStyledText(IN SHORT x, IN SHORT y, IN INT Flags, IN LPCSTR Text)
Definition: consup.c:662
SHORT CONSOLE_GetCursorX(VOID)
Definition: consup.c:185
const GLubyte * c
Definition: glext.h:8905
unsigned long DWORD
Definition: ntddk_ex.h:95
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
VOID CONSOLE_SetInvertedTextXY(IN SHORT x, IN SHORT y, IN LPCSTR Text)
Definition: consup.c:535
VOID CONSOLE_ConOutPuts(IN LPCSTR szText)
Definition: consup.c:118
VOID CONSOLE_ConOutPrintfV(IN LPCSTR szFormat, IN va_list args)
Definition: consup.c:136
GLenum GLsizei len
Definition: glext.h:6722
#define STD_OUTPUT_HANDLE
Definition: winbase.h:265
VOID __cdecl CONSOLE_SetStatusText(IN LPCSTR fmt,...)
Definition: consup.c:477
Definition: bl.h:1338
SHORT yScreen
Definition: consup.c:40
static BOOL bInsert
Definition: cmdinput.c:121
VOID CONSOLE_SetHighlightedTextXY(IN SHORT x, IN SHORT y, IN LPCSTR Text)
Definition: consup.c:563
VOID __cdecl CONSOLE_SetStatusTextAutoFitX(IN SHORT x, IN LPCSTR fmt,...)
Definition: consup.c:509
int __cdecl vsprintf(char *_Dest, const char *_Format, va_list _Args)
Definition: sprintf.c:733
#define TEXT_PADDING_BIG
Definition: consup.h:51
#define va_start(ap, A)
Definition: acmsvcex.h:91
VOID CONSOLE_SetUnderlinedTextXY(IN SHORT x, IN SHORT y, IN LPCSTR Text)
Definition: consup.c:389
#define WriteConsole
Definition: wincon.h:787
#define BACKGROUND_WHITE
Definition: consup.h:31
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
void int int ULONGLONG int va_list * ap
Definition: winesup.h:32
#define OUT
Definition: typedefs.h:40
VOID CONSOLE_SetCursorXY(IN SHORT x, IN SHORT y)
Definition: consup.c:218
#define BACKGROUND_BLUE
Definition: blue.h:65
unsigned int ULONG
Definition: retypes.h:1
#define TEXT_PADDING_SMALL
Definition: consup.h:49
VOID CONSOLE_ClearStyledText(IN SHORT x, IN SHORT y, IN INT Flags, IN SHORT Length)
Definition: consup.c:746
ULONG Y
Definition: bl.h:1341
Definition: dsound.c:943
size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
VOID CONSOLE_ConInKey(OUT PINPUT_RECORD Buffer)
Definition: consup.c:61
char * Text
Definition: combotst.c:136
struct png_info_def *typedef unsigned char **typedef struct png_info_def *typedef struct png_info_def *typedef struct png_info_def *typedef unsigned char ** row
Definition: typeof.h:78
#define FOREGROUND_BLUE
Definition: blue.h:61