Artifact Content

Not logged in

Artifact 16215bc8ad14fe5feace3f736a017d9b5065b2f4


     1  module win32.ansi.wincon;
     2  
     3  // Translated from Microsoft Platform SDK August 2001 Edition
     4  // by Y.Tomino (demoonlit@inter7.jp)
     5  
     6  import win32.ansi.winbase;
     7  
     8  // #ifndef _WINCON_
     9  // #define _WINCON_
    10  
    11  // #ifdef __cplusplus
    12  // extern "C" {
    13  // #endif
    14  
    15  struct _COORD {
    16    SHORT X;
    17    SHORT Y;
    18  }
    19  alias _COORD COORD;
    20  alias _COORD* PCOORD;
    21  
    22  struct _SMALL_RECT {
    23    SHORT Left;
    24    SHORT Top;
    25    SHORT Right;
    26    SHORT Bottom;
    27  }
    28  alias _SMALL_RECT SMALL_RECT;
    29  alias _SMALL_RECT* PSMALL_RECT;
    30  
    31  struct _KEY_EVENT_RECORD {
    32    BOOL bKeyDown;
    33    WORD wRepeatCount;
    34    WORD wVirtualKeyCode;
    35    WORD wVirtualScanCode;
    36  union {
    37    WCHAR UnicodeChar;
    38    CHAR AsciiChar;
    39  }
    40  
    41    DWORD dwControlKeyState;
    42  }
    43  alias _KEY_EVENT_RECORD KEY_EVENT_RECORD;
    44  alias _KEY_EVENT_RECORD* PKEY_EVENT_RECORD;
    45  
    46  enum : uint { RIGHT_ALT_PRESSED = 0x0001 }
    47  enum : uint { LEFT_ALT_PRESSED = 0x0002 }
    48  enum : uint { RIGHT_CTRL_PRESSED = 0x0004 }
    49  enum : uint { LEFT_CTRL_PRESSED = 0x0008 }
    50  enum : uint { SHIFT_PRESSED = 0x0010 }
    51  enum : uint { NUMLOCK_ON = 0x0020 }
    52  enum : uint { SCROLLLOCK_ON = 0x0040 }
    53  enum : uint { CAPSLOCK_ON = 0x0080 }
    54  enum : uint { ENHANCED_KEY = 0x0100 }
    55  enum : uint { NLS_DBCSCHAR = 0x00010000 }
    56  enum : uint { NLS_ALPHANUMERIC = 0x00000000 }
    57  enum : uint { NLS_KATAKANA = 0x00020000 }
    58  enum : uint { NLS_HIRAGANA = 0x00040000 }
    59  enum : uint { NLS_ROMAN = 0x00400000 }
    60  enum : uint { NLS_IME_CONVERSION = 0x00800000 }
    61  enum : uint { NLS_IME_DISABLE = 0x20000000 }
    62  
    63  struct _MOUSE_EVENT_RECORD {
    64    COORD dwMousePosition;
    65    DWORD dwButtonState;
    66    DWORD dwControlKeyState;
    67    DWORD dwEventFlags;
    68  }
    69  alias _MOUSE_EVENT_RECORD MOUSE_EVENT_RECORD;
    70  alias _MOUSE_EVENT_RECORD* PMOUSE_EVENT_RECORD;
    71  
    72  enum : uint { FROM_LEFT_1ST_BUTTON_PRESSED = 0x0001 }
    73  enum : uint { RIGHTMOST_BUTTON_PRESSED = 0x0002 }
    74  enum : uint { FROM_LEFT_2ND_BUTTON_PRESSED = 0x0004 }
    75  enum : uint { FROM_LEFT_3RD_BUTTON_PRESSED = 0x0008 }
    76  enum : uint { FROM_LEFT_4TH_BUTTON_PRESSED = 0x0010 }
    77  
    78  enum : uint { MOUSE_MOVED = 0x0001 }
    79  enum : uint { DOUBLE_CLICK = 0x0002 }
    80  enum : uint { MOUSE_WHEELED = 0x0004 }
    81  
    82  struct _WINDOW_BUFFER_SIZE_RECORD {
    83    COORD dwSize;
    84  }
    85  alias _WINDOW_BUFFER_SIZE_RECORD WINDOW_BUFFER_SIZE_RECORD;
    86  alias _WINDOW_BUFFER_SIZE_RECORD* PWINDOW_BUFFER_SIZE_RECORD;
    87  
    88  struct _MENU_EVENT_RECORD {
    89    UINT dwCommandId;
    90  }
    91  alias _MENU_EVENT_RECORD MENU_EVENT_RECORD;
    92  alias _MENU_EVENT_RECORD* PMENU_EVENT_RECORD;
    93  
    94  struct _FOCUS_EVENT_RECORD {
    95    BOOL bSetFocus;
    96  }
    97  alias _FOCUS_EVENT_RECORD FOCUS_EVENT_RECORD;
    98  alias _FOCUS_EVENT_RECORD* PFOCUS_EVENT_RECORD;
    99  
   100  struct _INPUT_RECORD {
   101    WORD EventType;
   102  union {
   103    KEY_EVENT_RECORD KeyEvent;
   104    MOUSE_EVENT_RECORD MouseEvent;
   105    WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
   106    MENU_EVENT_RECORD MenuEvent;
   107    FOCUS_EVENT_RECORD FocusEvent;
   108  }
   109  
   110  }
   111  alias _INPUT_RECORD INPUT_RECORD;
   112  alias _INPUT_RECORD* PINPUT_RECORD;
   113  
   114  enum : uint { KEY_EVENT = 0x0001 }
   115  enum : uint { MOUSE_EVENT = 0x0002 }
   116  enum : uint { WINDOW_BUFFER_SIZE_EVENT = 0x0004 }
   117  enum : uint { MENU_EVENT = 0x0008 }
   118  enum : uint { FOCUS_EVENT = 0x0010 }
   119  
   120  struct _CHAR_INFO {
   121  union {
   122    WCHAR UnicodeChar;
   123    CHAR AsciiChar;
   124  }
   125  
   126    WORD Attributes;
   127  }
   128  alias _CHAR_INFO CHAR_INFO;
   129  alias _CHAR_INFO* PCHAR_INFO;
   130  
   131  enum : uint { FOREGROUND_BLUE = 0x0001 }
   132  enum : uint { FOREGROUND_GREEN = 0x0002 }
   133  enum : uint { FOREGROUND_RED = 0x0004 }
   134  enum : uint { FOREGROUND_INTENSITY = 0x0008 }
   135  enum : uint { BACKGROUND_BLUE = 0x0010 }
   136  enum : uint { BACKGROUND_GREEN = 0x0020 }
   137  enum : uint { BACKGROUND_RED = 0x0040 }
   138  enum : uint { BACKGROUND_INTENSITY = 0x0080 }
   139  enum : uint { COMMON_LVB_LEADING_BYTE = 0x0100 }
   140  enum : uint { COMMON_LVB_TRAILING_BYTE = 0x0200 }
   141  enum : uint { COMMON_LVB_GRID_HORIZONTAL = 0x0400 }
   142  enum : uint { COMMON_LVB_GRID_LVERTICAL = 0x0800 }
   143  enum : uint { COMMON_LVB_GRID_RVERTICAL = 0x1000 }
   144  enum : uint { COMMON_LVB_REVERSE_VIDEO = 0x4000 }
   145  enum : uint { COMMON_LVB_UNDERSCORE = 0x8000 }
   146  
   147  enum : uint { COMMON_LVB_SBCSDBCS = 0x0300 }
   148  
   149  struct _CONSOLE_SCREEN_BUFFER_INFO {
   150    COORD dwSize;
   151    COORD dwCursorPosition;
   152    WORD wAttributes;
   153    SMALL_RECT srWindow;
   154    COORD dwMaximumWindowSize;
   155  }
   156  alias _CONSOLE_SCREEN_BUFFER_INFO CONSOLE_SCREEN_BUFFER_INFO;
   157  alias _CONSOLE_SCREEN_BUFFER_INFO* PCONSOLE_SCREEN_BUFFER_INFO;
   158  
   159  struct _CONSOLE_CURSOR_INFO {
   160    DWORD dwSize;
   161    BOOL bVisible;
   162  }
   163  alias _CONSOLE_CURSOR_INFO CONSOLE_CURSOR_INFO;
   164  alias _CONSOLE_CURSOR_INFO* PCONSOLE_CURSOR_INFO;
   165  
   166  struct _CONSOLE_FONT_INFO {
   167    DWORD nFont;
   168    COORD dwFontSize;
   169  }
   170  alias _CONSOLE_FONT_INFO CONSOLE_FONT_INFO;
   171  alias _CONSOLE_FONT_INFO* PCONSOLE_FONT_INFO;
   172  
   173  // #if(_WIN32_WINNT >= 0x0500)
   174  struct _CONSOLE_SELECTION_INFO {
   175    DWORD dwFlags;
   176    COORD dwSelectionAnchor;
   177    SMALL_RECT srSelection;
   178  }
   179  alias _CONSOLE_SELECTION_INFO CONSOLE_SELECTION_INFO;
   180  alias _CONSOLE_SELECTION_INFO* PCONSOLE_SELECTION_INFO;
   181  
   182  enum : uint { CONSOLE_NO_SELECTION = 0x0000 }
   183  enum : uint { CONSOLE_SELECTION_IN_PROGRESS = 0x0001 }
   184  enum : uint { CONSOLE_SELECTION_NOT_EMPTY = 0x0002 }
   185  enum : uint { CONSOLE_MOUSE_SELECTION = 0x0004 }
   186  enum : uint { CONSOLE_MOUSE_DOWN = 0x0008 }
   187  // #endif /* _WIN32_WINNT >= 0x0500 */
   188  
   189  extern(Windows) alias BOOL function( DWORD CtrlType ) PHANDLER_ROUTINE;
   190  
   191  enum : uint { CTRL_C_EVENT = 0 }
   192  enum : uint { CTRL_BREAK_EVENT = 1 }
   193  enum : uint { CTRL_CLOSE_EVENT = 2 }
   194  
   195  enum : uint { CTRL_LOGOFF_EVENT = 5 }
   196  enum : uint { CTRL_SHUTDOWN_EVENT = 6 }
   197  
   198  enum : uint { ENABLE_PROCESSED_INPUT = 0x0001 }
   199  enum : uint { ENABLE_LINE_INPUT = 0x0002 }
   200  enum : uint { ENABLE_ECHO_INPUT = 0x0004 }
   201  enum : uint { ENABLE_WINDOW_INPUT = 0x0008 }
   202  enum : uint { ENABLE_MOUSE_INPUT = 0x0010 }
   203  
   204  enum : uint { ENABLE_PROCESSED_OUTPUT = 0x0001 }
   205  enum : uint { ENABLE_WRAP_AT_EOL_OUTPUT = 0x0002 }
   206  
   207  extern(Windows) export BOOL PeekConsoleInputA(
   208    HANDLE hConsoleInput,
   209    PINPUT_RECORD lpBuffer,
   210    DWORD nLength,
   211    LPDWORD lpNumberOfEventsRead);
   212  extern(Windows) export BOOL PeekConsoleInputW(
   213    HANDLE hConsoleInput,
   214    PINPUT_RECORD lpBuffer,
   215    DWORD nLength,
   216    LPDWORD lpNumberOfEventsRead);
   217  // #ifdef UNICODE
   218  // #...
   219  // #else
   220  alias PeekConsoleInputA PeekConsoleInput;
   221  // #endif // !UNICODE
   222  
   223  extern(Windows) export BOOL ReadConsoleInputA(
   224    HANDLE hConsoleInput,
   225    PINPUT_RECORD lpBuffer,
   226    DWORD nLength,
   227    LPDWORD lpNumberOfEventsRead);
   228  extern(Windows) export BOOL ReadConsoleInputW(
   229    HANDLE hConsoleInput,
   230    PINPUT_RECORD lpBuffer,
   231    DWORD nLength,
   232    LPDWORD lpNumberOfEventsRead);
   233  // #ifdef UNICODE
   234  // #...
   235  // #else
   236  alias ReadConsoleInputA ReadConsoleInput;
   237  // #endif // !UNICODE
   238  
   239  extern(Windows) export BOOL WriteConsoleInputA(
   240    HANDLE hConsoleInput,
   241    INPUT_RECORD *lpBuffer,
   242    DWORD nLength,
   243    LPDWORD lpNumberOfEventsWritten);
   244  extern(Windows) export BOOL WriteConsoleInputW(
   245    HANDLE hConsoleInput,
   246    INPUT_RECORD *lpBuffer,
   247    DWORD nLength,
   248    LPDWORD lpNumberOfEventsWritten);
   249  // #ifdef UNICODE
   250  // #...
   251  // #else
   252  alias WriteConsoleInputA WriteConsoleInput;
   253  // #endif // !UNICODE
   254  
   255  extern(Windows) export BOOL ReadConsoleOutputA(
   256    HANDLE hConsoleOutput,
   257    PCHAR_INFO lpBuffer,
   258    COORD dwBufferSize,
   259    COORD dwBufferCoord,
   260    PSMALL_RECT lpReadRegion);
   261  extern(Windows) export BOOL ReadConsoleOutputW(
   262    HANDLE hConsoleOutput,
   263    PCHAR_INFO lpBuffer,
   264    COORD dwBufferSize,
   265    COORD dwBufferCoord,
   266    PSMALL_RECT lpReadRegion);
   267  // #ifdef UNICODE
   268  // #...
   269  // #else
   270  alias ReadConsoleOutputA ReadConsoleOutput;
   271  // #endif // !UNICODE
   272  
   273  extern(Windows) export BOOL WriteConsoleOutputA(
   274    HANDLE hConsoleOutput,
   275    CHAR_INFO *lpBuffer,
   276    COORD dwBufferSize,
   277    COORD dwBufferCoord,
   278    PSMALL_RECT lpWriteRegion);
   279  extern(Windows) export BOOL WriteConsoleOutputW(
   280    HANDLE hConsoleOutput,
   281    CHAR_INFO *lpBuffer,
   282    COORD dwBufferSize,
   283    COORD dwBufferCoord,
   284    PSMALL_RECT lpWriteRegion);
   285  // #ifdef UNICODE
   286  // #...
   287  // #else
   288  alias WriteConsoleOutputA WriteConsoleOutput;
   289  // #endif // !UNICODE
   290  
   291  extern(Windows) export BOOL ReadConsoleOutputCharacterA(
   292    HANDLE hConsoleOutput,
   293    LPSTR lpCharacter,
   294    DWORD nLength,
   295    COORD dwReadCoord,
   296    LPDWORD lpNumberOfCharsRead);
   297  extern(Windows) export BOOL ReadConsoleOutputCharacterW(
   298    HANDLE hConsoleOutput,
   299    LPWSTR lpCharacter,
   300    DWORD nLength,
   301    COORD dwReadCoord,
   302    LPDWORD lpNumberOfCharsRead);
   303  // #ifdef UNICODE
   304  // #...
   305  // #else
   306  alias ReadConsoleOutputCharacterA ReadConsoleOutputCharacter;
   307  // #endif // !UNICODE
   308  
   309  extern(Windows) export BOOL ReadConsoleOutputAttribute(
   310    HANDLE hConsoleOutput,
   311    LPWORD lpAttribute,
   312    DWORD nLength,
   313    COORD dwReadCoord,
   314    LPDWORD lpNumberOfAttrsRead);
   315  
   316  extern(Windows) export BOOL WriteConsoleOutputCharacterA(
   317    HANDLE hConsoleOutput,
   318    LPCSTR lpCharacter,
   319    DWORD nLength,
   320    COORD dwWriteCoord,
   321    LPDWORD lpNumberOfCharsWritten);
   322  extern(Windows) export BOOL WriteConsoleOutputCharacterW(
   323    HANDLE hConsoleOutput,
   324    LPCWSTR lpCharacter,
   325    DWORD nLength,
   326    COORD dwWriteCoord,
   327    LPDWORD lpNumberOfCharsWritten);
   328  // #ifdef UNICODE
   329  // #...
   330  // #else
   331  alias WriteConsoleOutputCharacterA WriteConsoleOutputCharacter;
   332  // #endif // !UNICODE
   333  
   334  extern(Windows) export BOOL WriteConsoleOutputAttribute(
   335    HANDLE hConsoleOutput,
   336    WORD *lpAttribute,
   337    DWORD nLength,
   338    COORD dwWriteCoord,
   339    LPDWORD lpNumberOfAttrsWritten);
   340  
   341  extern(Windows) export BOOL FillConsoleOutputCharacterA(
   342    HANDLE hConsoleOutput,
   343    CHAR cCharacter,
   344    DWORD nLength,
   345    COORD dwWriteCoord,
   346    LPDWORD lpNumberOfCharsWritten);
   347  extern(Windows) export BOOL FillConsoleOutputCharacterW(
   348    HANDLE hConsoleOutput,
   349    WCHAR cCharacter,
   350    DWORD nLength,
   351    COORD dwWriteCoord,
   352    LPDWORD lpNumberOfCharsWritten);
   353  // #ifdef UNICODE
   354  // #...
   355  // #else
   356  alias FillConsoleOutputCharacterA FillConsoleOutputCharacter;
   357  // #endif // !UNICODE
   358  
   359  extern(Windows) export BOOL FillConsoleOutputAttribute(
   360    HANDLE hConsoleOutput,
   361    WORD wAttribute,
   362    DWORD nLength,
   363    COORD dwWriteCoord,
   364    LPDWORD lpNumberOfAttrsWritten);
   365  
   366  extern(Windows) export BOOL GetConsoleMode(
   367    HANDLE hConsoleHandle,
   368    LPDWORD lpMode);
   369  
   370  extern(Windows) export BOOL GetNumberOfConsoleInputEvents(
   371    HANDLE hConsoleInput,
   372    LPDWORD lpNumberOfEvents);
   373  
   374  extern(Windows) export BOOL GetConsoleScreenBufferInfo(
   375    HANDLE hConsoleOutput,
   376    PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo);
   377  
   378  extern(Windows) export COORD GetLargestConsoleWindowSize(
   379    HANDLE hConsoleOutput);
   380  
   381  extern(Windows) export BOOL GetConsoleCursorInfo(
   382    HANDLE hConsoleOutput,
   383    PCONSOLE_CURSOR_INFO lpConsoleCursorInfo);
   384  
   385  // #if(_WIN32_WINNT >= 0x0500)
   386  
   387  extern(Windows) export BOOL GetCurrentConsoleFont(
   388    HANDLE hConsoleOutput,
   389    BOOL bMaximumWindow,
   390    PCONSOLE_FONT_INFO lpConsoleCurrentFont);
   391  
   392  extern(Windows) export COORD GetConsoleFontSize(
   393    HANDLE hConsoleOutput,
   394    DWORD nFont);
   395  
   396  extern(Windows) export BOOL GetConsoleSelectionInfo(
   397    PCONSOLE_SELECTION_INFO lpConsoleSelectionInfo);
   398  
   399  // #endif /* _WIN32_WINNT >= 0x0500 */
   400  
   401  extern(Windows) export BOOL GetNumberOfConsoleMouseButtons(
   402    LPDWORD lpNumberOfMouseButtons);
   403  
   404  extern(Windows) export BOOL SetConsoleMode(
   405    HANDLE hConsoleHandle,
   406    DWORD dwMode);
   407  
   408  extern(Windows) export BOOL SetConsoleActiveScreenBuffer(
   409    HANDLE hConsoleOutput);
   410  
   411  extern(Windows) export BOOL FlushConsoleInputBuffer(
   412    HANDLE hConsoleInput);
   413  
   414  extern(Windows) export BOOL SetConsoleScreenBufferSize(
   415    HANDLE hConsoleOutput,
   416    COORD dwSize);
   417  
   418  extern(Windows) export BOOL SetConsoleCursorPosition(
   419    HANDLE hConsoleOutput,
   420    COORD dwCursorPosition);
   421  
   422  extern(Windows) export BOOL SetConsoleCursorInfo(
   423    HANDLE hConsoleOutput,
   424    CONSOLE_CURSOR_INFO *lpConsoleCursorInfo);
   425  
   426  extern(Windows) export BOOL ScrollConsoleScreenBufferA(
   427    HANDLE hConsoleOutput,
   428    SMALL_RECT *lpScrollRectangle,
   429    SMALL_RECT *lpClipRectangle,
   430    COORD dwDestinationOrigin,
   431    CHAR_INFO *lpFill);
   432  extern(Windows) export BOOL ScrollConsoleScreenBufferW(
   433    HANDLE hConsoleOutput,
   434    SMALL_RECT *lpScrollRectangle,
   435    SMALL_RECT *lpClipRectangle,
   436    COORD dwDestinationOrigin,
   437    CHAR_INFO *lpFill);
   438  // #ifdef UNICODE
   439  // #...
   440  // #else
   441  alias ScrollConsoleScreenBufferA ScrollConsoleScreenBuffer;
   442  // #endif // !UNICODE
   443  
   444  extern(Windows) export BOOL SetConsoleWindowInfo(
   445    HANDLE hConsoleOutput,
   446    BOOL bAbsolute,
   447    SMALL_RECT *lpConsoleWindow);
   448  
   449  extern(Windows) export BOOL SetConsoleTextAttribute(
   450    HANDLE hConsoleOutput,
   451    WORD wAttributes);
   452  
   453  extern(Windows) export BOOL SetConsoleCtrlHandler(
   454    PHANDLER_ROUTINE HandlerRoutine,
   455    BOOL Add);
   456  
   457  extern(Windows) export BOOL GenerateConsoleCtrlEvent(
   458    DWORD dwCtrlEvent,
   459    DWORD dwProcessGroupId);
   460  
   461  extern(Windows) export BOOL AllocConsole();
   462  
   463  extern(Windows) export BOOL FreeConsole();
   464  
   465  // #if(_WIN32_WINNT >= 0x0500)
   466  extern(Windows) export BOOL AttachConsole(
   467    DWORD dwProcessId);
   468  // #endif /* _WIN32_WINNT >= 0x0500 */
   469  
   470  extern(Windows) export DWORD GetConsoleTitleA(
   471    LPSTR lpConsoleTitle,
   472    DWORD nSize);
   473  extern(Windows) export DWORD GetConsoleTitleW(
   474    LPWSTR lpConsoleTitle,
   475    DWORD nSize);
   476  // #ifdef UNICODE
   477  // #...
   478  // #else
   479  alias GetConsoleTitleA GetConsoleTitle;
   480  // #endif // !UNICODE
   481  
   482  extern(Windows) export BOOL SetConsoleTitleA(
   483    LPCSTR lpConsoleTitle);
   484  extern(Windows) export BOOL SetConsoleTitleW(
   485    LPCWSTR lpConsoleTitle);
   486  // #ifdef UNICODE
   487  // #...
   488  // #else
   489  alias SetConsoleTitleA SetConsoleTitle;
   490  // #endif // !UNICODE
   491  
   492  extern(Windows) export BOOL ReadConsoleA(
   493    HANDLE hConsoleInput,
   494    LPVOID lpBuffer,
   495    DWORD nNumberOfCharsToRead,
   496    LPDWORD lpNumberOfCharsRead,
   497    LPVOID lpReserved);
   498  extern(Windows) export BOOL ReadConsoleW(
   499    HANDLE hConsoleInput,
   500    LPVOID lpBuffer,
   501    DWORD nNumberOfCharsToRead,
   502    LPDWORD lpNumberOfCharsRead,
   503    LPVOID lpReserved);
   504  // #ifdef UNICODE
   505  // #...
   506  // #else
   507  alias ReadConsoleA ReadConsole;
   508  // #endif // !UNICODE
   509  
   510  extern(Windows) export BOOL WriteConsoleA(
   511    HANDLE hConsoleOutput,
   512    VOID *lpBuffer,
   513    DWORD nNumberOfCharsToWrite,
   514    LPDWORD lpNumberOfCharsWritten,
   515    LPVOID lpReserved);
   516  extern(Windows) export BOOL WriteConsoleW(
   517    HANDLE hConsoleOutput,
   518    VOID *lpBuffer,
   519    DWORD nNumberOfCharsToWrite,
   520    LPDWORD lpNumberOfCharsWritten,
   521    LPVOID lpReserved);
   522  // #ifdef UNICODE
   523  // #...
   524  // #else
   525  alias WriteConsoleA WriteConsole;
   526  // #endif // !UNICODE
   527  
   528  enum : uint { CONSOLE_TEXTMODE_BUFFER = 1 }
   529  
   530  extern(Windows) export HANDLE CreateConsoleScreenBuffer(
   531    DWORD dwDesiredAccess,
   532    DWORD dwShareMode,
   533    SECURITY_ATTRIBUTES *lpSecurityAttributes,
   534    DWORD dwFlags,
   535    LPVOID lpScreenBufferData);
   536  
   537  extern(Windows) export UINT GetConsoleCP();
   538  
   539  extern(Windows) export BOOL SetConsoleCP(
   540    UINT wCodePageID);
   541  
   542  extern(Windows) export UINT GetConsoleOutputCP();
   543  
   544  extern(Windows) export BOOL SetConsoleOutputCP(
   545    UINT wCodePageID);
   546  
   547  // #if(_WIN32_WINNT >= 0x0500)
   548  
   549  enum : uint { CONSOLE_FULLSCREEN = 1 }
   550  enum : uint { CONSOLE_FULLSCREEN_HARDWARE = 2 }
   551  
   552  extern(Windows) export BOOL GetConsoleDisplayMode(
   553    LPDWORD lpModeFlags);
   554  
   555  extern(Windows) export HWND GetConsoleWindow();
   556  
   557  // #endif /* _WIN32_WINNT >= 0x0500 */
   558  
   559  // #if(_WIN32_WINNT >= 0x0501)
   560  
   561  extern(Windows) export DWORD GetConsoleProcessList(
   562    LPDWORD lpdwProcessList,
   563    DWORD dwProcessCount);
   564  // #endif /* _WIN32_WINNT >= 0x0501 */
   565  
   566  // #ifdef __cplusplus
   567  // }
   568  // #endif
   569  
   570  // #endif // _WINCON_
   571