ReactOS  0.4.15-dev-2701-g34593d9
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 
49  /* Allocate a new console */
50  if (!AllocConsole())
51  return FALSE;
52 
53  /* Get the standard handles */
56 
57  /* Retrieve the size of the console */
59  {
60  FreeConsole();
61  return FALSE;
62  }
63  xScreen = csbi.dwSize.X;
64  yScreen = csbi.dwSize.Y;
65 
66  return TRUE;
67 }
68 
69 VOID
72 {
73  DWORD Read;
74 
75  while (TRUE)
76  {
77  /* Wait for a key press */
79 
80  if ((Buffer->EventType == KEY_EVENT) &&
81  (Buffer->Event.KeyEvent.bKeyDown != FALSE))
82  {
83  break;
84  }
85  }
86 }
87 
88 BOOLEAN
91 {
92  DWORD Read = 0;
93 
94  while (TRUE)
95  {
96  /* Try to get a key press without blocking */
98  return FALSE;
99  if (Read == 0)
100  return FALSE;
101 
102  /* Consume it */
104 
105  if ((Buffer->EventType == KEY_EVENT) &&
106  (Buffer->Event.KeyEvent.bKeyDown != FALSE))
107  {
108  return TRUE;
109  }
110  }
111 }
112 
113 VOID
115  IN CHAR c)
116 {
117  DWORD Written;
118 
120  &c,
121  1,
122  &Written,
123  NULL);
124 }
125 
126 VOID
128  IN LPCSTR szText)
129 {
130  DWORD Written;
131 
133  szText,
134  (ULONG)strlen(szText),
135  &Written,
136  NULL);
138  "\n",
139  1,
140  &Written,
141  NULL);
142 }
143 
144 VOID
146  IN LPCSTR szFormat,
147  IN va_list args)
148 {
149  CHAR szOut[256];
150  DWORD dwWritten;
151 
152  vsprintf(szOut, szFormat, args);
153 
155  szOut,
156  (ULONG)strlen(szOut),
157  &dwWritten,
158  NULL);
159 }
160 
161 VOID
162 __cdecl
164  IN LPCSTR szFormat,
165  ...)
166 {
167  va_list arg_ptr;
168 
169  va_start(arg_ptr, szFormat);
170  CONSOLE_ConOutPrintfV(szFormat, arg_ptr);
171  va_end(arg_ptr);
172 }
173 
174 BOOL
176 {
178 }
179 
180 VOID
182  OUT PSHORT x,
183  OUT PSHORT y)
184 {
186 
188 
189  *x = csbi.dwCursorPosition.X;
190  *y = csbi.dwCursorPosition.Y;
191 }
192 
193 SHORT
195 {
197 
199 
200  return csbi.dwCursorPosition.X;
201 }
202 
203 SHORT
205 {
207 
209 
210  return csbi.dwCursorPosition.Y;
211 }
212 
213 VOID
215  IN BOOL bInsert,
216  IN BOOL bVisible)
217 {
219 
220  cci.dwSize = bInsert ? 10 : 99;
221  cci.bVisible = bVisible;
222 
224 }
225 
226 VOID
228  IN SHORT x,
229  IN SHORT y)
230 {
231  COORD coPos;
232 
233  coPos.X = x;
234  coPos.Y = y;
236 }
237 
238 VOID
240 {
241  COORD coPos;
242  DWORD Written;
243 
244  coPos.X = 0;
245  coPos.Y = 0;
246 
247  /*
248  * Hide everything under the same foreground & background colors, so that
249  * the actual color and text blanking reset does not create a visual "blinking".
250  * We do this because we cannot do the screen scrolling trick that would
251  * allow to change both the text and the colors at the same time (the
252  * function is currently not available in our console "emulation" layer).
253  */
256  xScreen * yScreen,
257  coPos,
258  &Written);
259 
260  /* Blank the text */
262  ' ',
263  xScreen * yScreen,
264  coPos,
265  &Written);
266 
267  /* Reset the actual foreground & background colors */
270  xScreen * yScreen,
271  coPos,
272  &Written);
273 }
274 
275 VOID
277  IN SHORT x,
278  IN SHORT y,
279  IN SHORT col,
280  IN SHORT row)
281 {
282  COORD coPos;
283  DWORD Written;
284 
285  for (coPos.Y = y; coPos.Y < y + row; coPos.Y++)
286  {
287  coPos.X = x;
288 
291  col,
292  coPos,
293  &Written);
294  }
295 }
296 
297 VOID
299  IN SHORT x,
300  IN SHORT y,
301  IN SHORT col,
302  IN SHORT row)
303 {
304  COORD coPos;
305  DWORD Written;
306 
307  for (coPos.Y = y; coPos.Y < y + row; coPos.Y++)
308  {
309  coPos.X = x;
310 
313  col,
314  coPos,
315  &Written);
316  }
317 }
318 
319 VOID
321  IN SHORT x,
322  IN SHORT y,
323  IN LPCSTR Text)
324 {
325  COORD coPos;
326  DWORD Written;
327 
328  coPos.X = x;
329  coPos.Y = y;
330 
332  Text,
333  (ULONG)strlen(Text),
334  coPos,
335  &Written);
336 }
337 
338 VOID
340  IN SHORT y,
341  IN SHORT Length)
342 {
343  COORD coPos;
344  DWORD Written;
345 
346  coPos.X = x;
347  coPos.Y = y;
348 
350  ' ',
351  Length,
352  coPos,
353  &Written);
354 }
355 
356 VOID
358  IN SHORT x,
359  IN SHORT y,
360  IN SHORT len,
361  IN LPCWSTR Text)
362 {
363  COORD coPos;
364  SHORT Length;
365  DWORD Written;
366 
367  coPos.X = x;
368  coPos.Y = y;
369 
370  Length = (SHORT)wcslen(Text);
371  if (Length > len - 1)
372  Length = len - 1;
373 
376  len,
377  coPos,
378  &Written);
379 
381  Text,
382  (ULONG)Length,
383  coPos,
384  &Written);
385 
386  coPos.X += Length;
387  if (len > Length)
388  {
390  ' ',
391  len - Length,
392  coPos,
393  &Written);
394  }
395 }
396 
397 VOID
399  IN SHORT x,
400  IN SHORT y,
401  IN LPCSTR Text)
402 {
403  COORD coPos;
404  DWORD Length;
405  DWORD Written;
406 
407  coPos.X = x;
408  coPos.Y = y;
409 
410  Length = (ULONG)strlen(Text);
411 
413  Text,
414  Length,
415  coPos,
416  &Written);
417 
418  coPos.Y++;
420  0xCD,
421  Length,
422  coPos,
423  &Written);
424 }
425 
426 VOID
428  IN SHORT x,
429  IN LPCSTR fmt,
430  IN va_list args)
431 {
432  COORD coPos;
433  DWORD Written;
434  CHAR Buffer[128];
435 
436  vsprintf(Buffer, fmt, args);
437 
438  coPos.X = 0;
439  coPos.Y = yScreen - 1;
440 
443  xScreen,
444  coPos,
445  &Written);
446 
448  ' ',
449  xScreen,
450  coPos,
451  &Written);
452 
453  coPos.X = x;
454 
456  Buffer,
457  (ULONG)strlen(Buffer),
458  coPos,
459  &Written);
460 }
461 
462 VOID
463 __cdecl
465  IN SHORT x,
466  IN LPCSTR fmt,
467  ...)
468 {
469  va_list ap;
470 
471  va_start(ap, fmt);
473  va_end(ap);
474 }
475 
476 VOID
478  IN LPCSTR fmt,
479  IN va_list args)
480 {
482 }
483 
484 VOID
485 __cdecl
487  IN LPCSTR fmt,
488  ...)
489 {
490  va_list ap;
491 
492  va_start(ap, fmt);
494  va_end(ap);
495 }
496 
497 static
498 VOID
500  IN SHORT x,
501  IN SHORT Length)
502 {
503  COORD coPos;
504  DWORD Written;
505 
506  coPos.X = x;
507  coPos.Y = yScreen - 1;
508 
510  ' ',
511  Length,
512  coPos,
513  &Written);
514 }
515 
516 VOID
517 __cdecl
519  IN SHORT x,
520  IN LPCSTR fmt,
521  ...)
522 {
523  CHAR Buffer[128];
524  DWORD Length;
525  va_list ap;
526 
527  va_start(ap, fmt);
528  vsprintf(Buffer, fmt, ap);
529  va_end(ap);
530 
532 
533  if (Length + x <= 79)
534  {
536  }
537  else
538  {
540  }
541 }
542 
543 VOID
545  IN SHORT x,
546  IN SHORT y,
547  IN LPCSTR Text)
548 {
549  COORD coPos;
550  DWORD Length;
551  DWORD Written;
552 
553  coPos.X = x;
554  coPos.Y = y;
555 
556  Length = (ULONG)strlen(Text);
557 
560  Length,
561  coPos,
562  &Written);
563 
565  Text,
566  Length,
567  coPos,
568  &Written);
569 }
570 
571 VOID
573  IN SHORT x,
574  IN SHORT y,
575  IN LPCSTR Text)
576 {
577  COORD coPos;
578  DWORD Length;
579  DWORD Written;
580 
581  coPos.X = x;
582  coPos.Y = y;
583 
584  Length = (ULONG)strlen(Text);
585 
588  Length,
589  coPos,
590  &Written);
591 
593  Text,
594  Length,
595  coPos,
596  &Written);
597 }
598 
599 VOID
600 __cdecl
602  IN SHORT x,
603  IN SHORT y,
604  IN LPCSTR fmt,
605  ...)
606 {
607  CHAR buffer[512];
608  va_list ap;
609  COORD coPos;
610  DWORD Written;
611 
612  va_start(ap, fmt);
613  vsprintf(buffer, fmt, ap);
614  va_end(ap);
615 
616  coPos.X = x;
617  coPos.Y = y;
618 
620  buffer,
621  (ULONG)strlen(buffer),
622  coPos,
623  &Written);
624 }
625 
626 VOID
627 __cdecl
629  IN SHORT x,
630  IN SHORT y,
631  IN SHORT len,
632  IN LPCSTR fmt,
633  ...)
634 {
635  CHAR buffer[512];
636  va_list ap;
637  COORD coPos;
638  SHORT Length;
639  DWORD Written;
640 
641  va_start(ap, fmt);
642  vsprintf(buffer, fmt, ap);
643  va_end(ap);
644 
645  coPos.X = x;
646  coPos.Y = y;
647 
649  if (Length > len - 1)
650  Length = len - 1;
651 
653  buffer,
654  Length,
655  coPos,
656  &Written);
657 
658  coPos.X += Length;
659 
660  if (len > Length)
661  {
663  ' ',
664  len - Length,
665  coPos,
666  &Written);
667  }
668 }
669 
670 VOID
672  IN SHORT x,
673  IN SHORT y,
674  IN INT Flags,
675  IN LPCSTR Text)
676 {
677  COORD coPos;
678  DWORD Length;
679 
680  coPos.X = x;
681  coPos.Y = y;
682 
683  Length = (ULONG)strlen(Text);
684 
685  if (Flags & TEXT_TYPE_STATUS)
686  {
687  coPos.X = x;
688  coPos.Y = yScreen - 1;
689  }
690  else /* TEXT_TYPE_REGULAR (Default) */
691  {
692  coPos.X = x;
693  coPos.Y = y;
694  }
695 
696  if (Flags & TEXT_ALIGN_CENTER)
697  {
698  coPos.X = (xScreen - Length) / 2;
699  }
700  else if(Flags & TEXT_ALIGN_RIGHT)
701  {
702  coPos.X = coPos.X - Length;
703 
705  {
706  coPos.X -= 1;
707  }
708  else if (Flags & TEXT_PADDING_MEDIUM)
709  {
710  coPos.X -= 2;
711  }
712  else if (Flags & TEXT_PADDING_BIG)
713  {
714  coPos.X -= 3;
715  }
716  }
717  else /* TEXT_ALIGN_LEFT (Default) */
718  {
720  {
721  coPos.X += 1;
722  }
723  else if (Flags & TEXT_PADDING_MEDIUM)
724  {
725  coPos.X += 2;
726  }
727  else if (Flags & TEXT_PADDING_BIG)
728  {
729  coPos.X += 3;
730  }
731  }
732 
733  if (Flags & TEXT_TYPE_STATUS)
734  {
735  CONSOLE_SetStatusTextX(coPos.X, Text);
736  }
737  else /* TEXT_TYPE_REGULAR (Default) */
738  {
740  {
741  CONSOLE_SetHighlightedTextXY(coPos.X, coPos.Y, Text);
742  }
743  else if (Flags & TEXT_STYLE_UNDERLINE)
744  {
745  CONSOLE_SetUnderlinedTextXY(coPos.X, coPos.Y, Text);
746  }
747  else /* TEXT_STYLE_NORMAL (Default) */
748  {
749  CONSOLE_SetTextXY(coPos.X, coPos.Y, Text);
750  }
751  }
752 }
753 
754 VOID
756  IN SHORT x,
757  IN SHORT y,
758  IN INT Flags,
759  IN SHORT Length)
760 {
761  COORD coPos;
762 
763  coPos.X = x;
764  coPos.Y = y;
765 
766  if (Flags & TEXT_TYPE_STATUS)
767  {
768  coPos.X = x;
769  coPos.Y = yScreen - 1;
770  }
771  else /* TEXT_TYPE_REGULAR (Default) */
772  {
773  coPos.X = x;
774  coPos.Y = y;
775  }
776 
777  if (Flags & TEXT_ALIGN_CENTER)
778  {
779  coPos.X = (xScreen - Length) / 2;
780  }
781  else if(Flags & TEXT_ALIGN_RIGHT)
782  {
783  coPos.X = coPos.X - Length;
784 
786  {
787  coPos.X -= 1;
788  }
789  else if (Flags & TEXT_PADDING_MEDIUM)
790  {
791  coPos.X -= 2;
792  }
793  else if (Flags & TEXT_PADDING_BIG)
794  {
795  coPos.X -= 3;
796  }
797  }
798  else /* TEXT_ALIGN_LEFT (Default) */
799  {
801  {
802  coPos.X += 1;
803  }
804  else if (Flags & TEXT_PADDING_MEDIUM)
805  {
806  coPos.X += 2;
807  }
808  else if (Flags & TEXT_PADDING_BIG)
809  {
810  coPos.X += 3;
811  }
812  }
813 
814  if (Flags & TEXT_TYPE_STATUS)
815  {
817  }
818  else /* TEXT_TYPE_REGULAR (Default) */
819  {
820  CONSOLE_ClearTextXY(coPos.X, coPos.Y, Length);
821  }
822 }
823 
824 /* 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:628
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
SHORT xScreen
Definition: consup.c:39
VOID CONSOLE_SetTextXY(IN SHORT x, IN SHORT y, IN LPCSTR Text)
Definition: consup.c:320
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:339
#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:499
VOID CONSOLE_ConOutChar(IN CHAR c)
Definition: consup.c:114
#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:477
VOID __cdecl CONSOLE_PrintTextXY(IN SHORT x, IN SHORT y, IN LPCSTR fmt,...)
Definition: consup.c:601
HANDLE StdInput
Definition: consup.c:36
VOID CONSOLE_SetStatusTextXV(IN SHORT x, IN LPCSTR fmt, IN va_list args)
Definition: consup.c:427
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:181
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
VOID __cdecl CONSOLE_ConOutPrintf(IN LPCSTR szFormat,...)
Definition: consup.c:163
VOID CONSOLE_SetInputTextXY(IN SHORT x, IN SHORT y, IN SHORT len, IN LPCWSTR Text)
Definition: consup.c:357
SHORT CONSOLE_GetCursorY(VOID)
Definition: consup.c:204
Definition: match.c:390
int32_t INT
Definition: typedefs.h:58
BOOL CONSOLE_Flush(VOID)
Definition: consup.c:175
#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:298
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
VOID CONSOLE_InvertTextXY(IN SHORT x, IN SHORT y, IN SHORT col, IN SHORT row)
Definition: consup.c:276
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:778
#define TEXT_STYLE_HIGHLIGHT
Definition: consup.h:35
short SHORT
Definition: pedump.c:59
VOID CONSOLE_ClearScreen(VOID)
Definition: consup.c:239
#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:214
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
BOOL WINAPI FreeConsole(VOID)
Definition: console.c:153
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
#define FOREGROUND_INTENSITY
Definition: blue.h:64
BOOLEAN CONSOLE_ConInKeyPeek(OUT PINPUT_RECORD Buffer)
Definition: consup.c:89
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:464
VOID CONSOLE_SetStyledText(IN SHORT x, IN SHORT y, IN INT Flags, IN LPCSTR Text)
Definition: consup.c:671
SHORT CONSOLE_GetCursorX(VOID)
Definition: consup.c:194
const GLubyte * c
Definition: glext.h:8905
unsigned long DWORD
Definition: ntddk_ex.h:95
va_start(ap, x)
VOID CONSOLE_SetInvertedTextXY(IN SHORT x, IN SHORT y, IN LPCSTR Text)
Definition: consup.c:544
VOID CONSOLE_ConOutPuts(IN LPCSTR szText)
Definition: consup.c:127
VOID CONSOLE_ConOutPrintfV(IN LPCSTR szFormat, IN va_list args)
Definition: consup.c:145
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:486
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:572
VOID __cdecl CONSOLE_SetStatusTextAutoFitX(IN SHORT x, IN LPCSTR fmt,...)
Definition: consup.c:518
int __cdecl vsprintf(char *_Dest, const char *_Format, va_list _Args)
Definition: sprintf.c:733
#define TEXT_PADDING_BIG
Definition: consup.h:51
VOID CONSOLE_SetUnderlinedTextXY(IN SHORT x, IN SHORT y, IN LPCSTR Text)
Definition: consup.c:398
#define NULL
Definition: types.h:112
#define WriteConsole
Definition: wincon.h:784
#define BACKGROUND_WHITE
Definition: consup.h:31
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
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:227
#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:755
ULONG Y
Definition: bl.h:1341
Definition: dsound.c:943
VOID CONSOLE_ConInKey(OUT PINPUT_RECORD Buffer)
Definition: consup.c:70
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