Differences From Artifact [5ebbf537eec215cc]:
- File        
src/win32/wincon.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
 
 
To Artifact [a1d2dfcf9ddedace]:
- File        
src/win32/wincon.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
 
 
                                                                                        >     1  /***********************************************************************\
                                                                                        >     2  *                                wincon.d                               *
                                                                                        >     3  *                                                                       *
                                                                                        >     4  *                       Windows API header module                       *
                                                                                        >     5  *                                                                       *
                                                                                        >     6  *                 Translated from MinGW Windows headers                 *
                                                                                        >     7  *                                                                       *
                                                                                        >     8  *                       Placed into public domain                       *
                                                                                        >     9  \***********************************************************************/
    1  module win32.wincon;                                                                  10  module win32.wincon;
                                                                                        >    11  pragma(lib, "kernel32.lib");
    2                                                                                   |    12  
    3  // Translated from Microsoft Platform SDK August 2001 Edition                    <
    4  // by Y.Tomino                                                                   |    13  private import win32.w32api, win32.windef;
    5                                                                                   |    14  
    6  import win32.windef;                                                             |    15  // FIXME: clean up Windows version support
    7  import win32.winbase;                                                            <
    8                                                                                   |    16  
                                                                                        >    17  enum {
    9  // #ifndef _WINCON_                                                              |    18          FOREGROUND_BLUE      = 1,
   10  // #define _WINCON_                                                              |    19          FOREGROUND_GREEN     = 2,
                                                                                        >    20          FOREGROUND_RED       = 4,
                                                                                        >    21          FOREGROUND_INTENSITY = 8,
                                                                                        >    22          BACKGROUND_BLUE      = 16,
                                                                                        >    23          BACKGROUND_GREEN     = 32,
                                                                                        >    24          BACKGROUND_RED       = 64,
                                                                                        >    25          BACKGROUND_INTENSITY = 128
                                                                                        >    26  }
                                                                                        >    27  
                                                                                        >    28  static if (_WIN32_WINNT >= 0x0501) {
                                                                                        >    29          enum {
                                                                                        >    30                  CONSOLE_FULLSCREEN_MODE = 1,
                                                                                        >    31                  CONSOLE_WINDOWED_MODE   = 0
                                                                                        >    32          }
                                                                                        >    33  }
                                                                                        >    34  
                                                                                        >    35  enum {
                                                                                        >    36          CTRL_C_EVENT        = 0,
                                                                                        >    37          CTRL_BREAK_EVENT    = 1,
                                                                                        >    38          CTRL_CLOSE_EVENT    = 2,
                                                                                        >    39          CTRL_LOGOFF_EVENT   = 5,
                                                                                        >    40          CTRL_SHUTDOWN_EVENT = 6
                                                                                        >    41  }
                                                                                        >    42  
                                                                                        >    43  enum {
                                                                                        >    44          ENABLE_PROCESSED_INPUT  = 1,
                                                                                        >    45          ENABLE_LINE_INPUT       = 2,
                                                                                        >    46          ENABLE_ECHO_INPUT       = 4,
                                                                                        >    47          ENABLE_WINDOW_INPUT     = 8,
                                                                                        >    48          ENABLE_MOUSE_INPUT      = 16
                                                                                        >    49  }
                                                                                        >    50  
                                                                                        >    51  enum {
                                                                                        >    52          ENABLE_PROCESSED_OUTPUT    = 1,
                                                                                        >    53          ENABLE_WRAP_AT_EOL_OUTPUT  = 2
                                                                                        >    54  }
                                                                                        >    55  
                                                                                        >    56  enum {
                                                                                        >    57          KEY_EVENT                 = 1,
                                                                                        >    58          MOUSE_EVENT               = 2,
                                                                                        >    59          WINDOW_BUFFER_SIZE_EVENT  = 4,
                                                                                        >    60          MENU_EVENT                = 8,
                                                                                        >    61          FOCUS_EVENT               = 16
                                                                                        >    62  }
                                                                                        >    63  enum {
                                                                                        >    64          RIGHT_ALT_PRESSED  = 1,
                                                                                        >    65          LEFT_ALT_PRESSED   = 2,
                                                                                        >    66          RIGHT_CTRL_PRESSED = 4,
                                                                                        >    67          LEFT_CTRL_PRESSED  = 8,
                                                                                        >    68          SHIFT_PRESSED      = 16,
                                                                                        >    69          NUMLOCK_ON         = 32,
                                                                                        >    70          SCROLLLOCK_ON      = 64,
                                                                                        >    71          CAPSLOCK_ON        = 128,
                                                                                        >    72          ENHANCED_KEY       = 256
                                                                                        >    73  }
                                                                                        >    74  enum {
                                                                                        >    75          FROM_LEFT_1ST_BUTTON_PRESSED  = 1,
                                                                                        >    76          RIGHTMOST_BUTTON_PRESSED      = 2,
                                                                                        >    77          FROM_LEFT_2ND_BUTTON_PRESSED  = 4,
                                                                                        >    78          FROM_LEFT_3RD_BUTTON_PRESSED  = 8,
                                                                                        >    79          FROM_LEFT_4TH_BUTTON_PRESSED  = 16
                                                                                        >    80  }
                                                                                        >    81  
                                                                                        >    82  enum {
                                                                                        >    83          MOUSE_MOVED   = 1,
                                                                                        >    84          DOUBLE_CLICK  = 2,
                                                                                        >    85          MOUSE_WHEELED = 4
                                                                                        >    86  }
                                                                                        >    87  
                                                                                        >    88  struct CHAR_INFO {
                                                                                        >    89          union _Char {
                                                                                        >    90                  WCHAR UnicodeChar;
                                                                                        >    91                  CHAR AsciiChar;
                                                                                        >    92          }
                                                                                        >    93          _Char Char;
                                                                                        >    94          WORD Attributes;
                                                                                        >    95  }
                                                                                        >    96  alias CHAR_INFO* PCHAR_INFO;
                                                                                        >    97  
                                                                                        >    98  struct SMALL_RECT {
                                                                                        >    99          SHORT Left;
                                                                                        >   100          SHORT Top;
                                                                                        >   101          SHORT Right;
                                                                                        >   102          SHORT Bottom;
                                                                                        >   103  }
                                                                                        >   104  alias SMALL_RECT* PSMALL_RECT;
                                                                                        >   105  
                                                                                        >   106  struct CONSOLE_CURSOR_INFO {
                                                                                        >   107          DWORD dwSize;
                                                                                        >   108          BOOL  bVisible;
                                                                                        >   109  }
                                                                                        >   110  alias CONSOLE_CURSOR_INFO* PCONSOLE_CURSOR_INFO;
                                                                                        >   111  
                                                                                        >   112  struct COORD {
                                                                                        >   113          SHORT X;
                                                                                        >   114          SHORT Y;
                                                                                        >   115  }
                                                                                        >   116  alias COORD* PCOORD;
                                                                                        >   117  
                                                                                        >   118  struct CONSOLE_FONT_INFO {
                                                                                        >   119          DWORD nFont;
                                                                                        >   120          COORD dwFontSize;
                                                                                        >   121  }
                                                                                        >   122  alias CONSOLE_FONT_INFO* PCONSOLE_FONT_INFO;
                                                                                        >   123  
                                                                                        >   124  struct CONSOLE_SCREEN_BUFFER_INFO {
                                                                                        >   125          COORD      dwSize;
                                                                                        >   126          COORD      dwCursorPosition;
                                                                                        >   127          WORD       wAttributes;
                                                                                        >   128          SMALL_RECT srWindow;
                                                                                        >   129          COORD      dwMaximumWindowSize;
                                                                                        >   130  }
                                                                                        >   131  alias CONSOLE_SCREEN_BUFFER_INFO* PCONSOLE_SCREEN_BUFFER_INFO;
                                                                                        >   132  
                                                                                        >   133  alias BOOL function(DWORD) PHANDLER_ROUTINE;
                                                                                        >   134  
                                                                                        >   135  struct KEY_EVENT_RECORD {
                                                                                        >   136          BOOL  bKeyDown;
                                                                                        >   137          WORD  wRepeatCount;
                                                                                        >   138          WORD  wVirtualKeyCode;
                                                                                        >   139          WORD  wVirtualScanCode;
                                                                                        >   140          union _uChar {
                                                                                        >   141                  WCHAR UnicodeChar;
                                                                                        >   142                  CHAR  AsciiChar;
                                                                                        >   143          }
                                                                                        >   144          _uChar uChar;
                                                                                        >   145          DWORD dwControlKeyState;
                                                                                        >   146  }
                                                                                        >   147  
                                                                                        >   148  struct MOUSE_EVENT_RECORD {
                                                                                        >   149          COORD dwMousePosition;
                                                                                        >   150          DWORD dwButtonState;
                                                                                        >   151          DWORD dwControlKeyState;
                                                                                        >   152          DWORD dwEventFlags;
                                                                                        >   153  }
   11                                                                                       154  
   12  // #ifdef __cplusplus                                                            |   155  struct WINDOW_BUFFER_SIZE_RECORD {
   13  // extern "C" {                                                                  <
   14  // #endif                                                                        <
   15                                                                                   <
   16  struct _COORD {                                                                  |   156          COORD dwSize;
   17    SHORT X;                                                                       <
   18    SHORT Y;                                                                       <
   19  }                                                                                    157  }
   20  alias _COORD COORD;                                                              <
   21  alias _COORD* PCOORD;                                                            <
   22                                                                                       158  
   23  struct _SMALL_RECT {                                                             |   159  struct MENU_EVENT_RECORD {
   24    SHORT Left;                                                                    |   160          UINT dwCommandId;
   25    SHORT Top;                                                                     <
   26    SHORT Right;                                                                   <
   27    SHORT Bottom;                                                                  <
   28  }                                                                                    161  }
   29  alias _SMALL_RECT SMALL_RECT;                                                    |   162  alias MENU_EVENT_RECORD* PMENU_EVENT_RECORD;
   30  alias _SMALL_RECT* PSMALL_RECT;                                                  <
   31                                                                                       163  
   32  struct _KEY_EVENT_RECORD {                                                       |   164  struct FOCUS_EVENT_RECORD {
   33    BOOL bKeyDown;                                                                 |   165          BOOL bSetFocus;
   34    WORD wRepeatCount;                                                             <
   35    WORD wVirtualKeyCode;                                                          <
   36    WORD wVirtualScanCode;                                                         <
   37  union {                                                                          <
   38    WCHAR UnicodeChar;                                                             <
   39    CHAR AsciiChar;                                                                <
   40  }                                                                                    166  }
   41                                                                                       167  
   42    DWORD dwControlKeyState;                                                       |   168  struct INPUT_RECORD {
   43  }                                                                                <
                                                                                        >   169          WORD EventType;
                                                                                        >   170          union _Event {
   44  alias _KEY_EVENT_RECORD KEY_EVENT_RECORD;                                        |   171                  KEY_EVENT_RECORD KeyEvent;
   45  alias _KEY_EVENT_RECORD* PKEY_EVENT_RECORD;                                      |   172                  MOUSE_EVENT_RECORD MouseEvent;
   46                                                                                   <
   47  enum : uint { RIGHT_ALT_PRESSED = 0x0001 }                                       |   173                  WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
   48  enum : uint { LEFT_ALT_PRESSED = 0x0002 }                                        |   174                  MENU_EVENT_RECORD MenuEvent;
   49  enum : uint { RIGHT_CTRL_PRESSED = 0x0004 }                                      |   175                  FOCUS_EVENT_RECORD FocusEvent;
   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                                                                                   |   176          }
   64  struct _MOUSE_EVENT_RECORD {                                                     <
   65    COORD dwMousePosition;                                                         <
   66    DWORD dwButtonState;                                                           <
   67    DWORD dwControlKeyState;                                                       <
   68    DWORD dwEventFlags;                                                            <
                                                                                        >   177          _Event Event;
   69  }                                                                                    178  }
   70  alias _MOUSE_EVENT_RECORD MOUSE_EVENT_RECORD;                                    |   179  alias INPUT_RECORD* PINPUT_RECORD;
   71  alias _MOUSE_EVENT_RECORD* PMOUSE_EVENT_RECORD;                                  <
   72                                                                                       180  
   73  enum : uint { FROM_LEFT_1ST_BUTTON_PRESSED = 0x0001 }                            |   181  extern (Windows):
   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                                                                                       182  
   79  enum : uint { MOUSE_MOVED = 0x0001 }                                             |   183  BOOL AllocConsole();
   80  enum : uint { DOUBLE_CLICK = 0x0002 }                                            |   184  HANDLE CreateConsoleScreenBuffer(DWORD, DWORD, SECURITY_ATTRIBUTES*, DWORD, LPVO
   81  enum : uint { MOUSE_WHEELED = 0x0004 }                                           |   185  BOOL FillConsoleOutputAttribute(HANDLE, WORD, DWORD, COORD, PDWORD);
   82                                                                                   <
                                                                                        >   186  BOOL FillConsoleOutputCharacterA(HANDLE, CHAR, DWORD, COORD, PDWORD);
   83  struct _WINDOW_BUFFER_SIZE_RECORD {                                              |   187  BOOL FillConsoleOutputCharacterW(HANDLE, WCHAR, DWORD, COORD, PDWORD);
   84    COORD dwSize;                                                                  |   188  BOOL FlushConsoleInputBuffer(HANDLE);
   85  }                                                                                <
                                                                                        >   189  BOOL FreeConsole();
   86  alias _WINDOW_BUFFER_SIZE_RECORD WINDOW_BUFFER_SIZE_RECORD;                      |   190  BOOL GenerateConsoleCtrlEvent(DWORD, DWORD);
   87  alias _WINDOW_BUFFER_SIZE_RECORD* PWINDOW_BUFFER_SIZE_RECORD;                    |   191  UINT GetConsoleCP();
   88                                                                                   <
                                                                                        >   192  BOOL GetConsoleCursorInfo(HANDLE, PCONSOLE_CURSOR_INFO);
   89  struct _MENU_EVENT_RECORD {                                                      |   193  BOOL GetConsoleMode(HANDLE,PDWORD);
   90    UINT dwCommandId;                                                              |   194  UINT GetConsoleOutputCP();
                                                                                        >   195  BOOL GetConsoleScreenBufferInfo(HANDLE, PCONSOLE_SCREEN_BUFFER_INFO);
                                                                                        >   196  DWORD GetConsoleTitleA(LPSTR, DWORD);
                                                                                        >   197  DWORD GetConsoleTitleW(LPWSTR, DWORD);
                                                                                        >   198  COORD GetLargestConsoleWindowSize(HANDLE);
                                                                                        >   199  BOOL GetNumberOfConsoleInputEvents(HANDLE, PDWORD);
                                                                                        >   200  BOOL GetNumberOfConsoleMouseButtons(PDWORD);
                                                                                        >   201  BOOL PeekConsoleInputA(HANDLE, PINPUT_RECORD, DWORD, PDWORD);
                                                                                        >   202  BOOL PeekConsoleInputW(HANDLE, PINPUT_RECORD, DWORD, PDWORD);
                                                                                        >   203  BOOL ReadConsoleA(HANDLE, PVOID, DWORD, PDWORD, PVOID);
                                                                                        >   204  BOOL ReadConsoleW(HANDLE, PVOID, DWORD, PDWORD, PVOID);
                                                                                        >   205  BOOL ReadConsoleInputA(HANDLE, PINPUT_RECORD, DWORD, PDWORD);
                                                                                        >   206  BOOL ReadConsoleInputW(HANDLE, PINPUT_RECORD, DWORD, PDWORD);
                                                                                        >   207  BOOL ReadConsoleOutputAttribute(HANDLE, LPWORD, DWORD, COORD, LPDWORD);
                                                                                        >   208  BOOL ReadConsoleOutputCharacterA(HANDLE, LPSTR, DWORD, COORD, PDWORD);
                                                                                        >   209  BOOL ReadConsoleOutputCharacterW(HANDLE, LPWSTR, DWORD, COORD, PDWORD);
                                                                                        >   210  BOOL ReadConsoleOutputA(HANDLE, PCHAR_INFO, COORD, COORD, PSMALL_RECT);
                                                                                        >   211  BOOL ReadConsoleOutputW(HANDLE, PCHAR_INFO, COORD, COORD, PSMALL_RECT);
                                                                                        >   212  BOOL ScrollConsoleScreenBufferA(HANDLE, CPtr!(SMALL_RECT), CPtr!(SMALL_RECT), CO
                                                                                        >   213  BOOL ScrollConsoleScreenBufferW(HANDLE, CPtr!(SMALL_RECT), CPtr!(SMALL_RECT), CO
                                                                                        >   214  BOOL SetConsoleActiveScreenBuffer(HANDLE);
                                                                                        >   215  BOOL SetConsoleCP(UINT);
                                                                                        >   216  BOOL SetConsoleCtrlHandler(PHANDLER_ROUTINE, BOOL);
                                                                                        >   217  BOOL SetConsoleCursorInfo(HANDLE, CPtr!(CONSOLE_CURSOR_INFO));
                                                                                        >   218  BOOL SetConsoleCursorPosition(HANDLE, COORD);
   91  }                                                                                |   219  
   92  alias _MENU_EVENT_RECORD MENU_EVENT_RECORD;                                      <
   93  alias _MENU_EVENT_RECORD* PMENU_EVENT_RECORD;                                    <
   94                                                                                       220  
   95  struct _FOCUS_EVENT_RECORD {                                                     |   221  static if (_WIN32_WINNT >= 0x0500) {
   96    BOOL bSetFocus;                                                                |   222  BOOL GetConsoleDisplayMode(LPDWORD);
   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;                                                 <
                                                                                        >   223  HWND GetConsoleWindow();
  109  }                                                                                    224  }
  110                                                                                       225  
  111  }                                                                                <
                                                                                        >   226  static if (_WIN32_WINNT >= 0x0501) {
  112  alias _INPUT_RECORD INPUT_RECORD;                                                |   227  BOOL AttachConsole(DWORD);
  113  alias _INPUT_RECORD* PINPUT_RECORD;                                              |   228  BOOL SetConsoleDisplayMode(HANDLE, DWORD, PCOORD);
  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;                                                                <
                                                                                        >   229  const DWORD ATTACH_PARENT_PROCESS = cast(DWORD)-1;
  125  }                                                                                    230  }
  126                                                                                       231  
  127    WORD Attributes;                                                               |   232  BOOL SetConsoleMode(HANDLE, DWORD);
  128  }                                                                                <
                                                                                        >   233  BOOL SetConsoleOutputCP(UINT);
  129  alias _CHAR_INFO CHAR_INFO;                                                      |   234  BOOL SetConsoleScreenBufferSize(HANDLE, COORD);
  130  alias _CHAR_INFO* PCHAR_INFO;                                                    |   235  BOOL SetConsoleTextAttribute(HANDLE, WORD);
  131                                                                                   <
                                                                                        >   236  BOOL SetConsoleTitleA(LPCSTR);
  132  enum : uint { FOREGROUND_BLUE = 0x0001 }                                         |   237  BOOL SetConsoleTitleW(LPCWSTR);
  133  enum : uint { FOREGROUND_GREEN = 0x0002 }                                        |   238  BOOL SetConsoleWindowInfo(HANDLE, BOOL, CPtr!(SMALL_RECT));
  134  enum : uint { FOREGROUND_RED = 0x0004 }                                          |   239  BOOL WriteConsoleA(HANDLE, PCVOID, DWORD, PDWORD, PVOID);
  135  enum : uint { FOREGROUND_INTENSITY = 0x0008 }                                    |   240  BOOL WriteConsoleW(HANDLE, PCVOID, DWORD, PDWORD, PVOID);
  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(                                  |   241  BOOL WriteConsoleInputA(HANDLE, CPtr!(INPUT_RECORD), DWORD, PDWORD);
  245       HANDLE hConsoleInput,                                                       <
  246        INPUT_RECORD *lpBuffer,                                                    <
  247       DWORD nLength,                                                              <
  248       LPDWORD lpNumberOfEventsWritten                                             <
  249      );                                                                           <
  250  extern(Windows) export BOOL WriteConsoleInputW(                                  |   242  BOOL WriteConsoleInputW(HANDLE, CPtr!(INPUT_RECORD), DWORD, PDWORD);
  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                                                            <
                                                                                        >   243  BOOL WriteConsoleOutputA(HANDLE, CPtr!(CHAR_INFO), COORD, COORD, PSMALL_RECT);
                                                                                        >   244  BOOL WriteConsoleOutputW(HANDLE, CPtr!(CHAR_INFO), COORD, COORD, PSMALL_RECT);
                                                                                        >   245  BOOL WriteConsoleOutputAttribute(HANDLE, CPtr!(WORD), DWORD, COORD, PDWORD);
                                                                                        >   246  BOOL WriteConsoleOutputCharacterA(HANDLE, LPCSTR, DWORD, COORD, PDWORD);
                                                                                        >   247  BOOL WriteConsoleOutputCharacterW(HANDLE, LPCWSTR, DWORD, COORD, PDWORD);
  261                                                                                       248  
  262  extern(Windows) export BOOL ReadConsoleOutputA(                                  |   249  version (Unicode) {
  263       HANDLE hConsoleOutput,                                                      |   250          alias FillConsoleOutputCharacterW FillConsoleOutputCharacter;
  264       PCHAR_INFO lpBuffer,                                                        |   251          alias GetConsoleTitleW GetConsoleTitle;
  265       COORD dwBufferSize,                                                         |   252          alias PeekConsoleInputW PeekConsoleInput;
  266       COORD dwBufferCoord,                                                        |   253          alias ReadConsoleW ReadConsole;
  267        PSMALL_RECT lpReadRegion                                                   |   254          alias ReadConsoleInputW ReadConsoleInput;
  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;                                      |   255          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;                    |   256          alias ReadConsoleOutputCharacterW ReadConsoleOutputCharacter;
  318  // #else                                                                         <
  319  // #...                                                                          <
  320  // #endif // !UNICODE                                                            <
  321                                                                                   <
  322  extern(Windows) export BOOL ReadConsoleOutputAttribute(                          <
                                                                                        >   257          alias ScrollConsoleScreenBufferW ScrollConsoleScreenBuffer;
                                                                                        >   258          alias SetConsoleTitleW SetConsoleTitle;
                                                                                        >   259          alias WriteConsoleW WriteConsole;
                                                                                        >   260          alias WriteConsoleInputW WriteConsoleInput;
  323       HANDLE hConsoleOutput,                                                      |   261          alias WriteConsoleOutputW WriteConsoleOutput;
  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;                  |   262          alias WriteConsoleOutputCharacterW WriteConsoleOutputCharacter;
  346  // #else                                                                         |   263  } 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;                    |   264          alias FillConsoleOutputCharacterA 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(                       <
                                                                                        >   265          alias GetConsoleTitleA GetConsoleTitle;
  392       HANDLE hConsoleInput,                                                       |   266          alias PeekConsoleInputA PeekConsoleInput;
  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(                             <
                                                                                        >   267          alias ReadConsoleA ReadConsole;
  443       HANDLE hConsoleInput                                                        |   268          alias ReadConsoleInputA ReadConsoleInput;
  444      );                                                                           <
  445                                                                                   <
  446  extern(Windows) export BOOL SetConsoleScreenBufferSize(                          <
  447       HANDLE hConsoleOutput,                                                      |   269          alias ReadConsoleOutputA ReadConsoleOutput;
  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                                                                <
                                                                                        >   270          alias ReadConsoleOutputCharacterA ReadConsoleOutputCharacter;
  476  alias ScrollConsoleScreenBufferW ScrollConsoleScreenBuffer;                      |   271          alias ScrollConsoleScreenBufferA 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;                                          |   272          alias SetConsoleTitleA 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(                                       |   273          alias WriteConsoleA WriteConsole;
                                                                                        >   274          alias WriteConsoleInputA WriteConsoleInput;
  559       HANDLE hConsoleOutput,                                                      |   275          alias WriteConsoleOutputA WriteConsoleOutput;
  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;                                                |   276          alias WriteConsoleOutputCharacterA WriteConsoleOutputCharacter;
  574  // #else                                                                         <
  575  // #...                                                                          <
  576  // #endif // !UNICODE                                                            <
  577                                                                                   |   277  }
  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                                                                                   <