ReactOS  0.4.15-dev-484-g89e716a7
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  VOID)
47 {
49  if (!AllocConsole())
50  return FALSE;
51 
55  return FALSE;
56  xScreen = csbi.dwSize.X;
57  yScreen = csbi.dwSize.Y;
58  return TRUE;
59 }
60 
61 VOID
64 {
65  DWORD Read;
66 
67  while (TRUE)
68  {
69  /* Wait for a key press */
71 
72  if ((Buffer->EventType == KEY_EVENT) &&
73  (Buffer->Event.KeyEvent.bKeyDown != FALSE))
74  {
75  break;
76  }
77  }
78 }
79 
80 BOOLEAN
83 {
84  DWORD Read = 0;
85 
86  while (TRUE)
87  {
88  /* Try to get a key press without blocking */
90  return FALSE;
91  if (Read == 0)
92  return FALSE;
93 
94  /* Consume it */
96 
97  if ((Buffer->EventType == KEY_EVENT) &&
98  (Buffer->Event.KeyEvent.bKeyDown != FALSE))
99  {
100  return TRUE;
101  }
102  }
103 }
104 
105 VOID
107  IN CHAR c)
108 {
109  DWORD Written;
110 
111  WriteConsole(
112  StdOutput,
113  &c,
114  1,
115  &Written,
116  NULL);
117 }
118 
119 VOID
121  IN LPCSTR szText)
122 {
123  DWORD Written;
124 
125  WriteConsole(
126  StdOutput,
127  szText,
128  (ULONG)strlen(szText),
129  &Written,
130  NULL);
131  WriteConsole(
132  StdOutput,
133  "\n",
134  1,
135  &Written,
136  NULL);
137 }
138 
139 VOID
141  IN LPCSTR szFormat,
142  IN va_list args)
143 {
144  CHAR szOut[256];
145  DWORD dwWritten;
146 
147  vsprintf(szOut, szFormat, args);
148 
149  WriteConsole(
150  StdOutput,
151  szOut,
152  (ULONG)strlen(szOut),
153  &dwWritten,
154  NULL);
155 }
156 
157 VOID
158 __cdecl
160  IN LPCSTR szFormat,
161  ...)
162 {
163  va_list arg_ptr;
164 
165  va_start(arg_ptr, szFormat);
166  CONSOLE_ConOutPrintfV(szFormat, arg_ptr);
167  va_end(arg_ptr);
168 }
169 
170 BOOL
172 {
174 }
175 
176 VOID
178  PSHORT x,
179  PSHORT y)
180 {
182 
184 
185  *x = csbi.dwCursorPosition.X;
186  *y = csbi.dwCursorPosition.Y;
187 }
188 
189 SHORT
191 {
193 
195 
196  return csbi.dwCursorPosition.X;
197 }
198 
199 SHORT
201 {
203 
205 
206  return csbi.dwCursorPosition.Y;
207 }
208 
209 VOID
211  IN BOOL bInsert,
212  IN BOOL bVisible)
213 {
215 
216  cci.dwSize = bInsert ? 10 : 99;
217  cci.bVisible = bVisible;
218 
220 }
221 
222 VOID
224  IN SHORT x,
225  IN SHORT y)
226 {
227  COORD coPos;
228 
229  coPos.X = x;
230  coPos.Y = y;
232 }
233 
234 VOID
236 {
237  COORD coPos;
238  DWORD Written;
239 
240  coPos.X = 0;
241  coPos.Y = 0;
242 
244  StdOutput,
246  xScreen * yScreen,
247  coPos,
248  &Written);
249 
251  StdOutput,
252  ' ',
253  xScreen * yScreen,
254  coPos,
255  &Written);
256 }
257 
258 VOID
260  IN SHORT x,
261  IN SHORT y,
262  IN SHORT col,
263  IN SHORT row)
264 {
265  COORD coPos;
266  DWORD Written;
267 
268  for (coPos.Y = y; coPos.Y < y + row; coPos.Y++)
269  {
270  coPos.X = x;
271 
273  StdOutput,
275  col,
276  coPos,
277  &Written);
278  }
279 }
280 
281 VOID
283  IN SHORT x,
284  IN SHORT y,
285  IN SHORT col,
286  IN SHORT row)
287 {
288  COORD coPos;
289  DWORD Written;
290 
291  for (coPos.Y = y; coPos.Y < y + row; coPos.Y++)
292  {
293  coPos.X = x;
294 
296  StdOutput,
298  col,
299  coPos,
300  &Written);
301  }
302 }
303 
304 VOID
306  IN SHORT x,
307  IN SHORT y,
308  IN LPCSTR Text)
309 {
310  COORD coPos;
311  DWORD Written;
312 
313  coPos.X = x;
314  coPos.Y = y;
315 
317  StdOutput,
318  Text,
319  (ULONG)strlen(Text),
320  coPos,
321  &Written);
322 }
323 
324 VOID
326  IN SHORT y,
327  IN SHORT Length)
328 {
329  COORD coPos;
330  DWORD Written;
331 
332  coPos.X = x;
333  coPos.Y = y;
334 
336  ' ',
337  Length,
338  coPos,
339  &Written);
340 }
341 
342 VOID
344  IN SHORT x,
345  IN SHORT y,
346  IN SHORT len,
347  IN LPCWSTR Text)
348 {
349  COORD coPos;
350  SHORT Length;
351  DWORD Written;
352 
353  coPos.X = x;
354  coPos.Y = y;
355 
356  Length = (SHORT)wcslen(Text);
357  if (Length > len - 1)
358  Length = len - 1;
359 
361  StdOutput,
363  len,
364  coPos,
365  &Written);
366 
368  StdOutput,
369  Text,
370  (ULONG)Length,
371  coPos,
372  &Written);
373 
374  coPos.X += Length;
375  if (len > Length)
376  {
378  StdOutput,
379  ' ',
380  len - Length,
381  coPos,
382  &Written);
383  }
384 }
385 
386 VOID
388  IN SHORT x,
389  IN SHORT y,
390  IN LPCSTR Text)
391 {
392  COORD coPos;
393  DWORD Length;
394  DWORD Written;
395 
396  coPos.X = x;
397  coPos.Y = y;
398 
399  Length = (ULONG)strlen(Text);
400 
402  StdOutput,
403  Text,
404  Length,
405  coPos,
406  &Written);
407 
408  coPos.Y++;
410  StdOutput,
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 
433  StdOutput,
435  xScreen,
436  coPos,
437  &Written);
438 
440  StdOutput,
441  ' ',
442  xScreen,
443  coPos,
444  &Written);
445 
446  coPos.X = x;
447 
449  StdOutput,
450  Buffer,
451  (ULONG)strlen(Buffer),
452  coPos,
453  &Written);
454 }
455 
456 VOID
457 __cdecl
459  IN SHORT x,
460  IN LPCSTR fmt,
461  ...)
462 {
463  va_list ap;
464 
465  va_start(ap, fmt);
467  va_end(ap);
468 }
469 
470 VOID
472  IN LPCSTR fmt,
473  IN va_list args)
474 {
476 }
477 
478 VOID
479 __cdecl
481  IN LPCSTR fmt,
482  ...)
483 {
484  va_list ap;
485 
486  va_start(ap, fmt);
488  va_end(ap);
489 }
490 
491 static
492 VOID
494  IN SHORT Length)
495 {
496  COORD coPos;
497  DWORD Written;
498 
499  coPos.X = x;
500  coPos.Y = yScreen - 1;
501 
503  ' ',
504  Length,
505  coPos,
506  &Written);
507 }
508 
509 
510 VOID
511 __cdecl
513  IN SHORT x,
514  IN LPCSTR fmt, ...)
515 {
516  CHAR Buffer[128];
517  DWORD Length;
518  va_list ap;
519 
520  va_start(ap, fmt);
521  vsprintf(Buffer, fmt, ap);
522  va_end(ap);
523 
525 
526  if (Length + x <= 79)
527  {
529  }
530  else
531  {
533  }
534 }
535 
536 VOID
538  IN SHORT x,
539  IN SHORT y,
540  IN LPCSTR Text)
541 {
542  COORD coPos;
543  DWORD Length;
544  DWORD Written;
545 
546  coPos.X = x;
547  coPos.Y = y;
548 
549  Length = (ULONG)strlen(Text);
550 
552  StdOutput,
554  Length,
555  coPos,
556  &Written);
557 
559  StdOutput,
560  Text,
561  Length,
562  coPos,
563  &Written);
564 }
565 
566 VOID
568  IN SHORT x,
569  IN SHORT y,
570  IN LPCSTR Text)
571 {
572  COORD coPos;
573  DWORD Length;
574  DWORD Written;
575 
576  coPos.X = x;
577  coPos.Y = y;
578 
579  Length = (ULONG)strlen(Text);
580 
582  StdOutput,
584  Length,
585  coPos,
586  &Written);
587 
589  StdOutput,
590  Text,
591  Length,
592  coPos,
593  &Written);
594 }
595 
596 VOID
597 __cdecl
599  IN SHORT x,
600  IN SHORT y,
601  IN LPCSTR fmt, ...)
602 {
603  CHAR buffer[512];
604  va_list ap;
605  COORD coPos;
606  DWORD Written;
607 
608  va_start(ap, fmt);
609  vsprintf(buffer, fmt, ap);
610  va_end(ap);
611 
612  coPos.X = x;
613  coPos.Y = y;
614 
616  StdOutput,
617  buffer,
618  (ULONG)strlen(buffer),
619  coPos,
620  &Written);
621 }
622 
623 VOID
624 __cdecl
626  IN SHORT x,
627  IN SHORT y,
628  IN SHORT len,
629  IN LPCSTR fmt, ...)
630 {
631  CHAR buffer[512];
632  va_list ap;
633  COORD coPos;
634  SHORT Length;
635  DWORD Written;
636 
637  va_start(ap, fmt);
638  vsprintf(buffer, fmt, ap);
639  va_end(ap);
640 
641  coPos.X = x;
642  coPos.Y = y;
643 
645  if (Length > len - 1)
646  Length = len - 1;
647 
649  StdOutput,
650  buffer,
651  Length,
652  coPos,
653  &Written);
654 
655  coPos.X += Length;
656 
657  if (len > Length)
658  {
660  StdOutput,
661  ' ',
662  len - Length,
663  coPos,
664  &Written);
665  }
666 }
667 
668 VOID
670  IN SHORT x,
671  IN SHORT y,
672  IN INT Flags,
673  IN LPCSTR Text)
674 {
675  COORD coPos;
676  DWORD Length;
677 
678  coPos.X = x;
679  coPos.Y = y;
680 
681  Length = (ULONG)strlen(Text);
682 
683  if (Flags & TEXT_TYPE_STATUS)
684  {
685  coPos.X = x;
686  coPos.Y = yScreen - 1;
687  }
688  else /* TEXT_TYPE_REGULAR (Default) */
689  {
690  coPos.X = x;
691  coPos.Y = y;
692  }
693 
694  if (Flags & TEXT_ALIGN_CENTER)
695  {
696  coPos.X = (xScreen - Length) /2;
697  }
698  else if(Flags & TEXT_ALIGN_RIGHT)
699  {
700  coPos.X = coPos.X - Length;
701 
703  {
704  coPos.X -= 1;
705  }
706  else if (Flags & TEXT_PADDING_MEDIUM)
707  {
708  coPos.X -= 2;
709  }
710  else if (Flags & TEXT_PADDING_BIG)
711  {
712  coPos.X -= 3;
713  }
714  }
715  else /* TEXT_ALIGN_LEFT (Default) */
716  {
718  {
719  coPos.X += 1;
720  }
721  else if (Flags & TEXT_PADDING_MEDIUM)
722  {
723  coPos.X += 2;
724  }
725  else if (Flags & TEXT_PADDING_BIG)
726  {
727  coPos.X += 3;
728  }
729  }
730 
731  if (Flags & TEXT_TYPE_STATUS)
732  {
733  CONSOLE_SetStatusTextX(coPos.X, Text);
734  }
735  else /* TEXT_TYPE_REGULAR (Default) */
736  {
738  {
739  CONSOLE_SetHighlightedTextXY(coPos.X, coPos.Y, Text);
740  }
741  else if (Flags & TEXT_STYLE_UNDERLINE)
742  {
743  CONSOLE_SetUnderlinedTextXY(coPos.X, coPos.Y, Text);
744  }
745  else /* TEXT_STYLE_NORMAL (Default) */
746  {
747  CONSOLE_SetTextXY(coPos.X, coPos.Y, Text);
748  }
749  }
750 }
751 
752 
753 VOID
755  IN SHORT y,
756  IN INT Flags,
757  IN SHORT Length)
758 {
759  COORD coPos;
760 
761  coPos.X = x;
762  coPos.Y = y;
763 
764  if (Flags & TEXT_TYPE_STATUS)
765  {
766  coPos.X = x;
767  coPos.Y = yScreen - 1;
768  }
769  else /* TEXT_TYPE_REGULAR (Default) */
770  {
771  coPos.X = x;
772  coPos.Y = y;
773  }
774 
775  if (Flags & TEXT_ALIGN_CENTER)
776  {
777  coPos.X = (xScreen - Length) /2;
778  }
779  else if(Flags & TEXT_ALIGN_RIGHT)
780  {
781  coPos.X = coPos.X - Length;
782 
784  {
785  coPos.X -= 1;
786  }
787  else if (Flags & TEXT_PADDING_MEDIUM)
788  {
789  coPos.X -= 2;
790  }
791  else if (Flags & TEXT_PADDING_BIG)
792  {
793  coPos.X -= 3;
794  }
795  }
796  else /* TEXT_ALIGN_LEFT (Default) */
797  {
799  {
800  coPos.X += 1;
801  }
802  else if (Flags & TEXT_PADDING_MEDIUM)
803  {
804  coPos.X += 2;
805  }
806  else if (Flags & TEXT_PADDING_BIG)
807  {
808  coPos.X += 3;
809  }
810  }
811 
812  if (Flags & TEXT_TYPE_STATUS)
813  {
815  }
816  else /* TEXT_TYPE_REGULAR (Default) */
817  {
818  CONSOLE_ClearTextXY(coPos.X, coPos.Y, Length);
819  }
820 }
821 
822 /* EOF */
#define IN
Definition: typedefs.h:39
_In_ BOOLEAN Read
Definition: strmini.h:479
#define TRUE
Definition: types.h:120
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:625
SHORT xScreen
Definition: consup.c:39
VOID CONSOLE_SetTextXY(IN SHORT x, IN SHORT y, IN LPCSTR Text)
Definition: consup.c:305
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:325
#define TEXT_PADDING_MEDIUM
Definition: consup.h:50
static VOID CONSOLE_ClearStatusTextX(IN SHORT x, IN SHORT Length)
Definition: consup.c:493
VOID CONSOLE_ConOutChar(IN CHAR c)
Definition: consup.c:106
#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:471
VOID __cdecl CONSOLE_PrintTextXY(IN SHORT x, IN SHORT y, IN LPCSTR fmt,...)
Definition: consup.c:598
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:400
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
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
VOID __cdecl CONSOLE_ConOutPrintf(IN LPCSTR szFormat,...)
Definition: consup.c:159
VOID CONSOLE_SetInputTextXY(IN SHORT x, IN SHORT y, IN SHORT len, IN LPCWSTR Text)
Definition: consup.c:343
SHORT CONSOLE_GetCursorY(VOID)
Definition: consup.c:200
Definition: match.c:390
int32_t INT
Definition: typedefs.h:57
BOOL CONSOLE_Flush(VOID)
Definition: consup.c:171
#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:282
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:259
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 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:235
#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:210
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:81
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:458
VOID CONSOLE_SetStyledText(IN SHORT x, IN SHORT y, IN INT Flags, IN LPCSTR Text)
Definition: consup.c:669
SHORT CONSOLE_GetCursorX(VOID)
Definition: consup.c:190
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:537
VOID CONSOLE_ConOutPuts(IN LPCSTR szText)
Definition: consup.c:120
VOID CONSOLE_ConOutPrintfV(IN LPCSTR szFormat, IN va_list args)
Definition: consup.c:140
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:480
Definition: bl.h:1338
SHORT yScreen
Definition: consup.c:40
static BOOL bInsert
Definition: cmdinput.c:121
VOID CONSOLE_GetCursorXY(PSHORT x, PSHORT y)
Definition: consup.c:177
VOID CONSOLE_SetHighlightedTextXY(IN SHORT x, IN SHORT y, IN LPCSTR Text)
Definition: consup.c:567
VOID __cdecl CONSOLE_SetStatusTextAutoFitX(IN SHORT x, IN LPCSTR fmt,...)
Definition: consup.c:512
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:387
#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:223
#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:754
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:62
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