Artifact Content

Not logged in

Artifact 5ebbf537eec215cc6f567d3de4f2ac09469f20d1


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