home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / Compilers / digital marsC compier / dm / include / win32 / Wincon.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-08-08  |  14.3 KB  |  727 lines

  1. /*++ BUILD Version: 0002    // Increment this if a change has global effects
  2.  
  3. Copyright (c) 1989-1996  Microsoft Corporation
  4.  
  5. Module Name:
  6.  
  7.     wincon.h
  8.  
  9. Abstract:
  10.  
  11.     This module contains the public data structures, data types,
  12.     and procedures exported by the NT console subsystem.
  13.  
  14. Created:
  15.  
  16.     26-Oct-1990
  17.  
  18. Revision History:
  19.  
  20. --*/
  21.  
  22. #ifndef _WINCON_
  23. #define _WINCON_
  24.  
  25. #ifdef __cplusplus
  26. extern "C" {
  27. #endif
  28.  
  29. typedef struct _COORD {
  30.     SHORT X;
  31.     SHORT Y;
  32. } COORD, *PCOORD;
  33.  
  34. typedef struct _SMALL_RECT {
  35.     SHORT Left;
  36.     SHORT Top;
  37.     SHORT Right;
  38.     SHORT Bottom;
  39. } SMALL_RECT, *PSMALL_RECT;
  40.  
  41. typedef struct _KEY_EVENT_RECORD {
  42.     BOOL bKeyDown;
  43.     WORD wRepeatCount;
  44.     WORD wVirtualKeyCode;
  45.     WORD wVirtualScanCode;
  46.     union {
  47.         WCHAR UnicodeChar;
  48.         CHAR   AsciiChar;
  49.     } uChar;
  50.     DWORD dwControlKeyState;
  51. } KEY_EVENT_RECORD, *PKEY_EVENT_RECORD;
  52.  
  53. //
  54. // ControlKeyState flags
  55. //
  56.  
  57. #define RIGHT_ALT_PRESSED     0x0001 // the right alt key is pressed.
  58. #define LEFT_ALT_PRESSED      0x0002 // the left alt key is pressed.
  59. #define RIGHT_CTRL_PRESSED    0x0004 // the right ctrl key is pressed.
  60. #define LEFT_CTRL_PRESSED     0x0008 // the left ctrl key is pressed.
  61. #define SHIFT_PRESSED         0x0010 // the shift key is pressed.
  62. #define NUMLOCK_ON            0x0020 // the numlock light is on.
  63. #define SCROLLLOCK_ON         0x0040 // the scrolllock light is on.
  64. #define CAPSLOCK_ON           0x0080 // the capslock light is on.
  65. #define ENHANCED_KEY          0x0100 // the key is enhanced.
  66.  
  67. typedef struct _MOUSE_EVENT_RECORD {
  68.     COORD dwMousePosition;
  69.     DWORD dwButtonState;
  70.     DWORD dwControlKeyState;
  71.     DWORD dwEventFlags;
  72. } MOUSE_EVENT_RECORD, *PMOUSE_EVENT_RECORD;
  73.  
  74. //
  75. // ButtonState flags
  76. //
  77.  
  78. #define FROM_LEFT_1ST_BUTTON_PRESSED    0x0001
  79. #define RIGHTMOST_BUTTON_PRESSED        0x0002
  80. #define FROM_LEFT_2ND_BUTTON_PRESSED    0x0004
  81. #define FROM_LEFT_3RD_BUTTON_PRESSED    0x0008
  82. #define FROM_LEFT_4TH_BUTTON_PRESSED    0x0010
  83.  
  84. //
  85. // EventFlags
  86. //
  87.  
  88. #define MOUSE_MOVED   0x0001
  89. #define DOUBLE_CLICK  0x0002
  90.  
  91. typedef struct _WINDOW_BUFFER_SIZE_RECORD {
  92.     COORD dwSize;
  93. } WINDOW_BUFFER_SIZE_RECORD, *PWINDOW_BUFFER_SIZE_RECORD;
  94.  
  95. typedef struct _MENU_EVENT_RECORD {
  96.     UINT dwCommandId;
  97. } MENU_EVENT_RECORD, *PMENU_EVENT_RECORD;
  98.  
  99. typedef struct _FOCUS_EVENT_RECORD {
  100.     BOOL bSetFocus;
  101. } FOCUS_EVENT_RECORD, *PFOCUS_EVENT_RECORD;
  102.  
  103. typedef struct _INPUT_RECORD {
  104.     WORD EventType;
  105.     union {
  106.         KEY_EVENT_RECORD KeyEvent;
  107.         MOUSE_EVENT_RECORD MouseEvent;
  108.         WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
  109.         MENU_EVENT_RECORD MenuEvent;
  110.         FOCUS_EVENT_RECORD FocusEvent;
  111.     } Event;
  112. } INPUT_RECORD, *PINPUT_RECORD;
  113.  
  114. //
  115. //  EventType flags:
  116. //
  117.  
  118. #define KEY_EVENT         0x0001 // Event contains key event record
  119. #define MOUSE_EVENT       0x0002 // Event contains mouse event record
  120. #define WINDOW_BUFFER_SIZE_EVENT 0x0004 // Event contains window change event record
  121. #define MENU_EVENT 0x0008 // Event contains menu event record
  122. #define FOCUS_EVENT 0x0010 // event contains focus change
  123.  
  124. typedef struct _CHAR_INFO {
  125.     union {
  126.         WCHAR UnicodeChar;
  127.         CHAR   AsciiChar;
  128.     } Char;
  129.     WORD Attributes;
  130. } CHAR_INFO, *PCHAR_INFO;
  131.  
  132. //
  133. // Attributes flags:
  134. //
  135.  
  136. #define FOREGROUND_BLUE      0x0001 // text color contains blue.
  137. #define FOREGROUND_GREEN     0x0002 // text color contains green.
  138. #define FOREGROUND_RED       0x0004 // text color contains red.
  139. #define FOREGROUND_INTENSITY 0x0008 // text color is intensified.
  140. #define BACKGROUND_BLUE      0x0010 // background color contains blue.
  141. #define BACKGROUND_GREEN     0x0020 // background color contains green.
  142. #define BACKGROUND_RED       0x0040 // background color contains red.
  143. #define BACKGROUND_INTENSITY 0x0080 // background color is intensified.
  144.  
  145.  
  146. typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
  147.     COORD dwSize;
  148.     COORD dwCursorPosition;
  149.     WORD  wAttributes;
  150.     SMALL_RECT srWindow;
  151.     COORD dwMaximumWindowSize;
  152. } CONSOLE_SCREEN_BUFFER_INFO, *PCONSOLE_SCREEN_BUFFER_INFO;
  153.  
  154. typedef struct _CONSOLE_CURSOR_INFO {
  155.     DWORD  dwSize;
  156.     BOOL   bVisible;
  157. } CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;
  158.  
  159. //
  160. // typedef for ctrl-c handler routines
  161. //
  162.  
  163. typedef
  164. BOOL
  165. (WINAPI *PHANDLER_ROUTINE)(
  166.     DWORD CtrlType
  167.     );
  168.  
  169. #define CTRL_C_EVENT        0
  170. #define CTRL_BREAK_EVENT    1
  171. #define CTRL_CLOSE_EVENT    2
  172. // 3 is reserved!
  173. // 4 is reserved!
  174. #define CTRL_LOGOFF_EVENT   5
  175. #define CTRL_SHUTDOWN_EVENT 6
  176.  
  177. //
  178. //  Input Mode flags:
  179. //
  180.  
  181. #define ENABLE_PROCESSED_INPUT 0x0001
  182. #define ENABLE_LINE_INPUT      0x0002
  183. #define ENABLE_ECHO_INPUT      0x0004
  184. #define ENABLE_WINDOW_INPUT    0x0008
  185. #define ENABLE_MOUSE_INPUT     0x0010
  186.  
  187. //
  188. // Output Mode flags:
  189. //
  190.  
  191. #define ENABLE_PROCESSED_OUTPUT    0x0001
  192. #define ENABLE_WRAP_AT_EOL_OUTPUT  0x0002
  193.  
  194. //
  195. // direct API definitions.
  196. //
  197.  
  198. WINBASEAPI
  199. BOOL
  200. WINAPI
  201. PeekConsoleInputA(
  202.     HANDLE hConsoleInput,
  203.     PINPUT_RECORD lpBuffer,
  204.     DWORD nLength,
  205.     LPDWORD lpNumberOfEventsRead
  206.     );
  207. WINBASEAPI
  208. BOOL
  209. WINAPI
  210. PeekConsoleInputW(
  211.     HANDLE hConsoleInput,
  212.     PINPUT_RECORD lpBuffer,
  213.     DWORD nLength,
  214.     LPDWORD lpNumberOfEventsRead
  215.     );
  216. #ifdef UNICODE
  217. #define PeekConsoleInput  PeekConsoleInputW
  218. #else
  219. #define PeekConsoleInput  PeekConsoleInputA
  220. #endif // !UNICODE
  221.  
  222. WINBASEAPI
  223. BOOL
  224. WINAPI
  225. ReadConsoleInputA(
  226.     HANDLE hConsoleInput,
  227.     PINPUT_RECORD lpBuffer,
  228.     DWORD nLength,
  229.     LPDWORD lpNumberOfEventsRead
  230.     );
  231. WINBASEAPI
  232. BOOL
  233. WINAPI
  234. ReadConsoleInputW(
  235.     HANDLE hConsoleInput,
  236.     PINPUT_RECORD lpBuffer,
  237.     DWORD nLength,
  238.     LPDWORD lpNumberOfEventsRead
  239.     );
  240. #ifdef UNICODE
  241. #define ReadConsoleInput  ReadConsoleInputW
  242. #else
  243. #define ReadConsoleInput  ReadConsoleInputA
  244. #endif // !UNICODE
  245.  
  246. WINBASEAPI
  247. BOOL
  248. WINAPI
  249. WriteConsoleInputA(
  250.     HANDLE hConsoleInput,
  251.     CONST INPUT_RECORD *lpBuffer,
  252.     DWORD nLength,
  253.     LPDWORD lpNumberOfEventsWritten
  254.     );
  255. WINBASEAPI
  256. BOOL
  257. WINAPI
  258. WriteConsoleInputW(
  259.     HANDLE hConsoleInput,
  260.     CONST INPUT_RECORD *lpBuffer,
  261.     DWORD nLength,
  262.     LPDWORD lpNumberOfEventsWritten
  263.     );
  264. #ifdef UNICODE
  265. #define WriteConsoleInput  WriteConsoleInputW
  266. #else
  267. #define WriteConsoleInput  WriteConsoleInputA
  268. #endif // !UNICODE
  269.  
  270. WINBASEAPI
  271. BOOL
  272. WINAPI
  273. ReadConsoleOutputA(
  274.     HANDLE hConsoleOutput,
  275.     PCHAR_INFO lpBuffer,
  276.     COORD dwBufferSize,
  277.     COORD dwBufferCoord,
  278.     PSMALL_RECT lpReadRegion
  279.     );
  280. WINBASEAPI
  281. BOOL
  282. WINAPI
  283. ReadConsoleOutputW(
  284.     HANDLE hConsoleOutput,
  285.     PCHAR_INFO lpBuffer,
  286.     COORD dwBufferSize,
  287.     COORD dwBufferCoord,
  288.     PSMALL_RECT lpReadRegion
  289.     );
  290. #ifdef UNICODE
  291. #define ReadConsoleOutput  ReadConsoleOutputW
  292. #else
  293. #define ReadConsoleOutput  ReadConsoleOutputA
  294. #endif // !UNICODE
  295.  
  296. WINBASEAPI
  297. BOOL
  298. WINAPI
  299. WriteConsoleOutputA(
  300.     HANDLE hConsoleOutput,
  301.     CONST CHAR_INFO *lpBuffer,
  302.     COORD dwBufferSize,
  303.     COORD dwBufferCoord,
  304.     PSMALL_RECT lpWriteRegion
  305.     );
  306. WINBASEAPI
  307. BOOL
  308. WINAPI
  309. WriteConsoleOutputW(
  310.     HANDLE hConsoleOutput,
  311.     CONST CHAR_INFO *lpBuffer,
  312.     COORD dwBufferSize,
  313.     COORD dwBufferCoord,
  314.     PSMALL_RECT lpWriteRegion
  315.     );
  316. #ifdef UNICODE
  317. #define WriteConsoleOutput  WriteConsoleOutputW
  318. #else
  319. #define WriteConsoleOutput  WriteConsoleOutputA
  320. #endif // !UNICODE
  321.  
  322. WINBASEAPI
  323. BOOL
  324. WINAPI
  325. ReadConsoleOutputCharacterA(
  326.     HANDLE hConsoleOutput,
  327.     LPSTR lpCharacter,
  328.     DWORD nLength,
  329.     COORD dwReadCoord,
  330.     LPDWORD lpNumberOfCharsRead
  331.     );
  332. WINBASEAPI
  333. BOOL
  334. WINAPI
  335. ReadConsoleOutputCharacterW(
  336.     HANDLE hConsoleOutput,
  337.     LPWSTR lpCharacter,
  338.     DWORD nLength,
  339.     COORD dwReadCoord,
  340.     LPDWORD lpNumberOfCharsRead
  341.     );
  342. #ifdef UNICODE
  343. #define ReadConsoleOutputCharacter  ReadConsoleOutputCharacterW
  344. #else
  345. #define ReadConsoleOutputCharacter  ReadConsoleOutputCharacterA
  346. #endif // !UNICODE
  347.  
  348. WINBASEAPI
  349. BOOL
  350. WINAPI
  351. ReadConsoleOutputAttribute(
  352.     HANDLE hConsoleOutput,
  353.     LPWORD lpAttribute,
  354.     DWORD nLength,
  355.     COORD dwReadCoord,
  356.     LPDWORD lpNumberOfAttrsRead
  357.     );
  358.  
  359. WINBASEAPI
  360. BOOL
  361. WINAPI
  362. WriteConsoleOutputCharacterA(
  363.     HANDLE hConsoleOutput,
  364.     LPCSTR lpCharacter,
  365.     DWORD nLength,
  366.     COORD dwWriteCoord,
  367.     LPDWORD lpNumberOfCharsWritten
  368.     );
  369. WINBASEAPI
  370. BOOL
  371. WINAPI
  372. WriteConsoleOutputCharacterW(
  373.     HANDLE hConsoleOutput,
  374.     LPCWSTR lpCharacter,
  375.     DWORD nLength,
  376.     COORD dwWriteCoord,
  377.     LPDWORD lpNumberOfCharsWritten
  378.     );
  379. #ifdef UNICODE
  380. #define WriteConsoleOutputCharacter  WriteConsoleOutputCharacterW
  381. #else
  382. #define WriteConsoleOutputCharacter  WriteConsoleOutputCharacterA
  383. #endif // !UNICODE
  384.  
  385. WINBASEAPI
  386. BOOL
  387. WINAPI
  388. WriteConsoleOutputAttribute(
  389.     HANDLE hConsoleOutput,
  390.     CONST WORD *lpAttribute,
  391.     DWORD nLength,
  392.     COORD dwWriteCoord,
  393.     LPDWORD lpNumberOfAttrsWritten
  394.     );
  395.  
  396. WINBASEAPI
  397. BOOL
  398. WINAPI
  399. FillConsoleOutputCharacterA(
  400.     HANDLE hConsoleOutput,
  401.     CHAR  cCharacter,
  402.     DWORD  nLength,
  403.     COORD  dwWriteCoord,
  404.     LPDWORD lpNumberOfCharsWritten
  405.     );
  406. WINBASEAPI
  407. BOOL
  408. WINAPI
  409. FillConsoleOutputCharacterW(
  410.     HANDLE hConsoleOutput,
  411.     WCHAR  cCharacter,
  412.     DWORD  nLength,
  413.     COORD  dwWriteCoord,
  414.     LPDWORD lpNumberOfCharsWritten
  415.     );
  416. #ifdef UNICODE
  417. #define FillConsoleOutputCharacter  FillConsoleOutputCharacterW
  418. #else
  419. #define FillConsoleOutputCharacter  FillConsoleOutputCharacterA
  420. #endif // !UNICODE
  421.  
  422. WINBASEAPI
  423. BOOL
  424. WINAPI
  425. FillConsoleOutputAttribute(
  426.     HANDLE hConsoleOutput,
  427.     WORD   wAttribute,
  428.     DWORD  nLength,
  429.     COORD  dwWriteCoord,
  430.     LPDWORD lpNumberOfAttrsWritten
  431.     );
  432.  
  433. WINBASEAPI
  434. BOOL
  435. WINAPI
  436. GetConsoleMode(
  437.     HANDLE hConsoleHandle,
  438.     LPDWORD lpMode
  439.     );
  440.  
  441. WINBASEAPI
  442. BOOL
  443. WINAPI
  444. GetNumberOfConsoleInputEvents(
  445.     HANDLE hConsoleInput,
  446.     LPDWORD lpNumberOfEvents
  447.     );
  448.  
  449. WINBASEAPI
  450. BOOL
  451. WINAPI
  452. GetConsoleScreenBufferInfo(
  453.     HANDLE hConsoleOutput,
  454.     PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo
  455.     );
  456.  
  457. WINBASEAPI
  458. COORD
  459. WINAPI
  460. GetLargestConsoleWindowSize(
  461.     HANDLE hConsoleOutput
  462.     );
  463.  
  464. WINBASEAPI
  465. BOOL
  466. WINAPI
  467. GetConsoleCursorInfo(
  468.     HANDLE hConsoleOutput,
  469.     PCONSOLE_CURSOR_INFO lpConsoleCursorInfo
  470.     );
  471.  
  472. WINBASEAPI
  473. BOOL
  474. WINAPI
  475. GetNumberOfConsoleMouseButtons(
  476.     LPDWORD lpNumberOfMouseButtons
  477.     );
  478.  
  479. WINBASEAPI
  480. BOOL
  481. WINAPI
  482. SetConsoleMode(
  483.     HANDLE hConsoleHandle,
  484.     DWORD dwMode
  485.     );
  486.  
  487. WINBASEAPI
  488. BOOL
  489. WINAPI
  490. SetConsoleActiveScreenBuffer(
  491.     HANDLE hConsoleOutput
  492.     );
  493.  
  494. WINBASEAPI
  495. BOOL
  496. WINAPI
  497. FlushConsoleInputBuffer(
  498.     HANDLE hConsoleInput
  499.     );
  500.  
  501. WINBASEAPI
  502. BOOL
  503. WINAPI
  504. SetConsoleScreenBufferSize(
  505.     HANDLE hConsoleOutput,
  506.     COORD dwSize
  507.     );
  508.  
  509. WINBASEAPI
  510. BOOL
  511. WINAPI
  512. SetConsoleCursorPosition(
  513.     HANDLE hConsoleOutput,
  514.     COORD dwCursorPosition
  515.     );
  516.  
  517. WINBASEAPI
  518. BOOL
  519. WINAPI
  520. SetConsoleCursorInfo(
  521.     HANDLE hConsoleOutput,
  522.     CONST CONSOLE_CURSOR_INFO *lpConsoleCursorInfo
  523.     );
  524.  
  525. WINBASEAPI
  526. BOOL
  527. WINAPI
  528. ScrollConsoleScreenBufferA(
  529.     HANDLE hConsoleOutput,
  530.     CONST SMALL_RECT *lpScrollRectangle,
  531.     CONST SMALL_RECT *lpClipRectangle,
  532.     COORD dwDestinationOrigin,
  533.     CONST CHAR_INFO *lpFill
  534.     );
  535. WINBASEAPI
  536. BOOL
  537. WINAPI
  538. ScrollConsoleScreenBufferW(
  539.     HANDLE hConsoleOutput,
  540.     CONST SMALL_RECT *lpScrollRectangle,
  541.     CONST SMALL_RECT *lpClipRectangle,
  542.     COORD dwDestinationOrigin,
  543.     CONST CHAR_INFO *lpFill
  544.     );
  545. #ifdef UNICODE
  546. #define ScrollConsoleScreenBuffer  ScrollConsoleScreenBufferW
  547. #else
  548. #define ScrollConsoleScreenBuffer  ScrollConsoleScreenBufferA
  549. #endif // !UNICODE
  550.  
  551. WINBASEAPI
  552. BOOL
  553. WINAPI
  554. SetConsoleWindowInfo(
  555.     HANDLE hConsoleOutput,
  556.     BOOL bAbsolute,
  557.     CONST SMALL_RECT *lpConsoleWindow
  558.     );
  559.  
  560. WINBASEAPI
  561. BOOL
  562. WINAPI
  563. SetConsoleTextAttribute(
  564.     HANDLE hConsoleOutput,
  565.     WORD wAttributes
  566.     );
  567.  
  568. WINBASEAPI
  569. BOOL
  570. WINAPI
  571. SetConsoleCtrlHandler(
  572.     PHANDLER_ROUTINE HandlerRoutine,
  573.     BOOL Add
  574.     );
  575.  
  576. WINBASEAPI
  577. BOOL
  578. WINAPI
  579. GenerateConsoleCtrlEvent(
  580.     DWORD dwCtrlEvent,
  581.     DWORD dwProcessGroupId
  582.     );
  583.  
  584. WINBASEAPI
  585. BOOL
  586. WINAPI
  587. AllocConsole( VOID );
  588.  
  589. WINBASEAPI
  590. BOOL
  591. WINAPI
  592. FreeConsole( VOID );
  593.  
  594.  
  595. WINBASEAPI
  596. DWORD
  597. WINAPI
  598. GetConsoleTitleA(
  599.     LPSTR lpConsoleTitle,
  600.     DWORD nSize
  601.     );
  602. WINBASEAPI
  603. DWORD
  604. WINAPI
  605. GetConsoleTitleW(
  606.     LPWSTR lpConsoleTitle,
  607.     DWORD nSize
  608.     );
  609. #ifdef UNICODE
  610. #define GetConsoleTitle  GetConsoleTitleW
  611. #else
  612. #define GetConsoleTitle  GetConsoleTitleA
  613. #endif // !UNICODE
  614.  
  615. WINBASEAPI
  616. BOOL
  617. WINAPI
  618. SetConsoleTitleA(
  619.     LPCSTR lpConsoleTitle
  620.     );
  621. WINBASEAPI
  622. BOOL
  623. WINAPI
  624. SetConsoleTitleW(
  625.     LPCWSTR lpConsoleTitle
  626.     );
  627. #ifdef UNICODE
  628. #define SetConsoleTitle  SetConsoleTitleW
  629. #else
  630. #define SetConsoleTitle  SetConsoleTitleA
  631. #endif // !UNICODE
  632.  
  633. WINBASEAPI
  634. BOOL
  635. WINAPI
  636. ReadConsoleA(
  637.     HANDLE hConsoleInput,
  638.     LPVOID lpBuffer,
  639.     DWORD nNumberOfCharsToRead,
  640.     LPDWORD lpNumberOfCharsRead,
  641.     LPVOID lpReserved
  642.     );
  643. WINBASEAPI
  644. BOOL
  645. WINAPI
  646. ReadConsoleW(
  647.     HANDLE hConsoleInput,
  648.     LPVOID lpBuffer,
  649.     DWORD nNumberOfCharsToRead,
  650.     LPDWORD lpNumberOfCharsRead,
  651.     LPVOID lpReserved
  652.     );
  653. #ifdef UNICODE
  654. #define ReadConsole  ReadConsoleW
  655. #else
  656. #define ReadConsole  ReadConsoleA
  657. #endif // !UNICODE
  658.  
  659. WINBASEAPI
  660. BOOL
  661. WINAPI
  662. WriteConsoleA(
  663.     HANDLE hConsoleOutput,
  664.     CONST VOID *lpBuffer,
  665.     DWORD nNumberOfCharsToWrite,
  666.     LPDWORD lpNumberOfCharsWritten,
  667.     LPVOID lpReserved
  668.     );
  669. WINBASEAPI
  670. BOOL
  671. WINAPI
  672. WriteConsoleW(
  673.     HANDLE hConsoleOutput,
  674.     CONST VOID *lpBuffer,
  675.     DWORD nNumberOfCharsToWrite,
  676.     LPDWORD lpNumberOfCharsWritten,
  677.     LPVOID lpReserved
  678.     );
  679. #ifdef UNICODE
  680. #define WriteConsole  WriteConsoleW
  681. #else
  682. #define WriteConsole  WriteConsoleA
  683. #endif // !UNICODE
  684.  
  685. #define CONSOLE_TEXTMODE_BUFFER  1
  686.  
  687. WINBASEAPI
  688. HANDLE
  689. WINAPI
  690. CreateConsoleScreenBuffer(
  691.     DWORD dwDesiredAccess,
  692.     DWORD dwShareMode,
  693.     CONST SECURITY_ATTRIBUTES *lpSecurityAttributes,
  694.     DWORD dwFlags,
  695.     LPVOID lpScreenBufferData
  696.     );
  697.  
  698. WINBASEAPI
  699. UINT
  700. WINAPI
  701. GetConsoleCP( VOID );
  702.  
  703. WINBASEAPI
  704. BOOL
  705. WINAPI
  706. SetConsoleCP(
  707.     UINT wCodePageID
  708.     );
  709.  
  710. WINBASEAPI
  711. UINT
  712. WINAPI
  713. GetConsoleOutputCP( VOID );
  714.  
  715. WINBASEAPI
  716. BOOL
  717. WINAPI
  718. SetConsoleOutputCP(
  719.     UINT wCodePageID
  720.     );
  721.  
  722. #ifdef __cplusplus
  723. }
  724. #endif
  725.  
  726. #endif // _WINCON_
  727.