Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /**
  2.  * This file has no copyright assigned and is placed in the Public Domain.
  3.  * This file is part of the w64 mingw-runtime package.
  4.  * No warranty is given; refer to the file DISCLAIMER within this package.
  5.  */
  6. #ifndef _WINCON_
  7. #define _WINCON_
  8.  
  9. #ifdef __cplusplus
  10. extern "C" {
  11. #endif
  12.  
  13.   typedef struct _COORD {
  14.     SHORT X;
  15.     SHORT Y;
  16.   } COORD,*PCOORD;
  17.  
  18.   typedef struct _SMALL_RECT {
  19.     SHORT Left;
  20.     SHORT Top;
  21.     SHORT Right;
  22.     SHORT Bottom;
  23.   } SMALL_RECT,*PSMALL_RECT;
  24.  
  25.   typedef struct _KEY_EVENT_RECORD {
  26.     WINBOOL bKeyDown;
  27.     WORD wRepeatCount;
  28.     WORD wVirtualKeyCode;
  29.     WORD wVirtualScanCode;
  30.     union {
  31.       WCHAR UnicodeChar;
  32.       CHAR AsciiChar;
  33.     } uChar;
  34.     DWORD dwControlKeyState;
  35.   } KEY_EVENT_RECORD,*PKEY_EVENT_RECORD;
  36.  
  37. #define RIGHT_ALT_PRESSED 0x1
  38. #define LEFT_ALT_PRESSED 0x2
  39. #define RIGHT_CTRL_PRESSED 0x4
  40. #define LEFT_CTRL_PRESSED 0x8
  41. #define SHIFT_PRESSED 0x10
  42. #define NUMLOCK_ON 0x20
  43. #define SCROLLLOCK_ON 0x40
  44. #define CAPSLOCK_ON 0x80
  45. #define ENHANCED_KEY 0x100
  46. #define NLS_DBCSCHAR 0x10000
  47. #define NLS_ALPHANUMERIC 0x0
  48. #define NLS_KATAKANA 0x20000
  49. #define NLS_HIRAGANA 0x40000
  50. #define NLS_ROMAN 0x400000
  51. #define NLS_IME_CONVERSION 0x800000
  52. #define NLS_IME_DISABLE 0x20000000
  53.  
  54.   typedef struct _MOUSE_EVENT_RECORD {
  55.     COORD dwMousePosition;
  56.     DWORD dwButtonState;
  57.     DWORD dwControlKeyState;
  58.     DWORD dwEventFlags;
  59.   } MOUSE_EVENT_RECORD,*PMOUSE_EVENT_RECORD;
  60.  
  61. #define FROM_LEFT_1ST_BUTTON_PRESSED 0x1
  62. #define RIGHTMOST_BUTTON_PRESSED 0x2
  63. #define FROM_LEFT_2ND_BUTTON_PRESSED 0x4
  64. #define FROM_LEFT_3RD_BUTTON_PRESSED 0x8
  65. #define FROM_LEFT_4TH_BUTTON_PRESSED 0x10
  66.  
  67. #define MOUSE_MOVED 0x1
  68. #define DOUBLE_CLICK 0x2
  69. #define MOUSE_WHEELED 0x4
  70.  
  71.   typedef struct _WINDOW_BUFFER_SIZE_RECORD {
  72.     COORD dwSize;
  73.   } WINDOW_BUFFER_SIZE_RECORD,*PWINDOW_BUFFER_SIZE_RECORD;
  74.  
  75.   typedef struct _MENU_EVENT_RECORD {
  76.     UINT dwCommandId;
  77.   } MENU_EVENT_RECORD,*PMENU_EVENT_RECORD;
  78.  
  79.   typedef struct _FOCUS_EVENT_RECORD {
  80.     WINBOOL bSetFocus;
  81.   } FOCUS_EVENT_RECORD,*PFOCUS_EVENT_RECORD;
  82.  
  83.   typedef struct _INPUT_RECORD {
  84.     WORD EventType;
  85.     union {
  86.       KEY_EVENT_RECORD KeyEvent;
  87.       MOUSE_EVENT_RECORD MouseEvent;
  88.       WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
  89.       MENU_EVENT_RECORD MenuEvent;
  90.       FOCUS_EVENT_RECORD FocusEvent;
  91.     } Event;
  92.   } INPUT_RECORD,*PINPUT_RECORD;
  93.  
  94. #define KEY_EVENT 0x1
  95. #define MOUSE_EVENT 0x2
  96. #define WINDOW_BUFFER_SIZE_EVENT 0x4
  97. #define MENU_EVENT 0x8
  98. #define FOCUS_EVENT 0x10
  99.  
  100.   typedef struct _CHAR_INFO {
  101.     union {
  102.       WCHAR UnicodeChar;
  103.       CHAR AsciiChar;
  104.     } Char;
  105.     WORD Attributes;
  106.   } CHAR_INFO,*PCHAR_INFO;
  107.  
  108. #define FOREGROUND_BLUE 0x1
  109. #define FOREGROUND_GREEN 0x2
  110. #define FOREGROUND_RED 0x4
  111. #define FOREGROUND_INTENSITY 0x8
  112. #define BACKGROUND_BLUE 0x10
  113. #define BACKGROUND_GREEN 0x20
  114. #define BACKGROUND_RED 0x40
  115. #define BACKGROUND_INTENSITY 0x80
  116. #define COMMON_LVB_LEADING_BYTE 0x100
  117. #define COMMON_LVB_TRAILING_BYTE 0x200
  118. #define COMMON_LVB_GRID_HORIZONTAL 0x400
  119. #define COMMON_LVB_GRID_LVERTICAL 0x800
  120. #define COMMON_LVB_GRID_RVERTICAL 0x1000
  121. #define COMMON_LVB_REVERSE_VIDEO 0x4000
  122. #define COMMON_LVB_UNDERSCORE 0x8000
  123.  
  124. #define COMMON_LVB_SBCSDBCS 0x300
  125.  
  126.   typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
  127.     COORD dwSize;
  128.     COORD dwCursorPosition;
  129.     WORD wAttributes;
  130.     SMALL_RECT srWindow;
  131.     COORD dwMaximumWindowSize;
  132.   } CONSOLE_SCREEN_BUFFER_INFO,*PCONSOLE_SCREEN_BUFFER_INFO;
  133.  
  134.   typedef struct _CONSOLE_CURSOR_INFO {
  135.     DWORD dwSize;
  136.     WINBOOL bVisible;
  137.   } CONSOLE_CURSOR_INFO,*PCONSOLE_CURSOR_INFO;
  138.  
  139.   typedef struct _CONSOLE_FONT_INFO {
  140.     DWORD nFont;
  141.     COORD dwFontSize;
  142.   } CONSOLE_FONT_INFO,*PCONSOLE_FONT_INFO;
  143.  
  144.   typedef struct _CONSOLE_SELECTION_INFO {
  145.     DWORD dwFlags;
  146.     COORD dwSelectionAnchor;
  147.     SMALL_RECT srSelection;
  148.   } CONSOLE_SELECTION_INFO,*PCONSOLE_SELECTION_INFO;
  149.  
  150. #define CONSOLE_NO_SELECTION 0x0
  151. #define CONSOLE_SELECTION_IN_PROGRESS 0x1
  152. #define CONSOLE_SELECTION_NOT_EMPTY 0x2
  153. #define CONSOLE_MOUSE_SELECTION 0x4
  154. #define CONSOLE_MOUSE_DOWN 0x8
  155.  
  156.   typedef WINBOOL (WINAPI *PHANDLER_ROUTINE)(DWORD CtrlType);
  157.  
  158. #define CTRL_C_EVENT 0
  159. #define CTRL_BREAK_EVENT 1
  160. #define CTRL_CLOSE_EVENT 2
  161.  
  162. #define CTRL_LOGOFF_EVENT 5
  163. #define CTRL_SHUTDOWN_EVENT 6
  164.  
  165. #define ENABLE_PROCESSED_INPUT 0x1
  166. #define ENABLE_LINE_INPUT 0x2
  167. #define ENABLE_ECHO_INPUT 0x4
  168. #define ENABLE_WINDOW_INPUT 0x8
  169. #define ENABLE_MOUSE_INPUT 0x10
  170.  
  171. #define ENABLE_PROCESSED_OUTPUT 0x1
  172. #define ENABLE_WRAP_AT_EOL_OUTPUT 0x2
  173.  
  174. #ifdef UNICODE
  175. #define PeekConsoleInput PeekConsoleInputW
  176. #define ReadConsoleInput ReadConsoleInputW
  177. #define WriteConsoleInput WriteConsoleInputW
  178. #define ReadConsoleOutput ReadConsoleOutputW
  179. #define WriteConsoleOutput WriteConsoleOutputW
  180. #define ReadConsoleOutputCharacter ReadConsoleOutputCharacterW
  181. #define WriteConsoleOutputCharacter WriteConsoleOutputCharacterW
  182. #define FillConsoleOutputCharacter FillConsoleOutputCharacterW
  183. #define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferW
  184. #define GetConsoleTitle GetConsoleTitleW
  185. #define SetConsoleTitle SetConsoleTitleW
  186. #define ReadConsole ReadConsoleW
  187. #define WriteConsole WriteConsoleW
  188. #define AddConsoleAlias AddConsoleAliasW
  189. #define GetConsoleAlias GetConsoleAliasW
  190. #define GetConsoleAliasesLength GetConsoleAliasesLengthW
  191. #define GetConsoleAliasExesLength GetConsoleAliasExesLengthW
  192. #define GetConsoleAliases GetConsoleAliasesW
  193. #define GetConsoleAliasExes GetConsoleAliasExesW
  194. #else
  195. #define PeekConsoleInput PeekConsoleInputA
  196. #define ReadConsoleInput ReadConsoleInputA
  197. #define WriteConsoleInput WriteConsoleInputA
  198. #define ReadConsoleOutput ReadConsoleOutputA
  199. #define WriteConsoleOutput WriteConsoleOutputA
  200. #define ReadConsoleOutputCharacter ReadConsoleOutputCharacterA
  201. #define WriteConsoleOutputCharacter WriteConsoleOutputCharacterA
  202. #define FillConsoleOutputCharacter FillConsoleOutputCharacterA
  203. #define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferA
  204. #define GetConsoleTitle GetConsoleTitleA
  205. #define SetConsoleTitle SetConsoleTitleA
  206. #define ReadConsole ReadConsoleA
  207. #define WriteConsole WriteConsoleA
  208. #define AddConsoleAlias AddConsoleAliasA
  209. #define GetConsoleAlias GetConsoleAliasA
  210. #define GetConsoleAliasesLength GetConsoleAliasesLengthA
  211. #define GetConsoleAliasExesLength GetConsoleAliasExesLengthA
  212. #define GetConsoleAliases GetConsoleAliasesA
  213. #define GetConsoleAliasExes GetConsoleAliasExesA
  214. #endif
  215.  
  216.   WINBASEAPI WINBOOL WINAPI PeekConsoleInputA(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead);
  217.   WINBASEAPI WINBOOL WINAPI PeekConsoleInputW(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead);
  218.   WINBASEAPI WINBOOL WINAPI ReadConsoleInputA(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead);
  219.   WINBASEAPI WINBOOL WINAPI ReadConsoleInputW(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead);
  220.   WINBASEAPI WINBOOL WINAPI WriteConsoleInputA(HANDLE hConsoleInput,CONST INPUT_RECORD *lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsWritten);
  221.   WINBASEAPI WINBOOL WINAPI WriteConsoleInputW(HANDLE hConsoleInput,CONST INPUT_RECORD *lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsWritten);
  222.   WINBASEAPI WINBOOL WINAPI ReadConsoleOutputA(HANDLE hConsoleOutput,PCHAR_INFO lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpReadRegion);
  223.   WINBASEAPI WINBOOL WINAPI ReadConsoleOutputW(HANDLE hConsoleOutput,PCHAR_INFO lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpReadRegion);
  224.   WINBASEAPI WINBOOL WINAPI WriteConsoleOutputA(HANDLE hConsoleOutput,CONST CHAR_INFO *lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpWriteRegion);
  225.   WINBASEAPI WINBOOL WINAPI WriteConsoleOutputW(HANDLE hConsoleOutput,CONST CHAR_INFO *lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpWriteRegion);
  226.   WINBASEAPI WINBOOL WINAPI ReadConsoleOutputCharacterA(HANDLE hConsoleOutput,LPSTR lpCharacter,DWORD nLength,COORD dwReadCoord,LPDWORD lpNumberOfCharsRead);
  227.   WINBASEAPI WINBOOL WINAPI ReadConsoleOutputCharacterW(HANDLE hConsoleOutput,LPWSTR lpCharacter,DWORD nLength,COORD dwReadCoord,LPDWORD lpNumberOfCharsRead);
  228.   WINBASEAPI WINBOOL WINAPI ReadConsoleOutputAttribute(HANDLE hConsoleOutput,LPWORD lpAttribute,DWORD nLength,COORD dwReadCoord,LPDWORD lpNumberOfAttrsRead);
  229.   WINBASEAPI WINBOOL WINAPI WriteConsoleOutputCharacterA(HANDLE hConsoleOutput,LPCSTR lpCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten);
  230.   WINBASEAPI WINBOOL WINAPI WriteConsoleOutputCharacterW(HANDLE hConsoleOutput,LPCWSTR lpCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten);
  231.   WINBASEAPI WINBOOL WINAPI WriteConsoleOutputAttribute(HANDLE hConsoleOutput,CONST WORD *lpAttribute,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfAttrsWritten);
  232.   WINBASEAPI WINBOOL WINAPI FillConsoleOutputCharacterA(HANDLE hConsoleOutput,CHAR cCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten);
  233.   WINBASEAPI WINBOOL WINAPI FillConsoleOutputCharacterW(HANDLE hConsoleOutput,WCHAR cCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten);
  234.   WINBASEAPI WINBOOL WINAPI FillConsoleOutputAttribute(HANDLE hConsoleOutput,WORD wAttribute,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfAttrsWritten);
  235.   WINBASEAPI WINBOOL WINAPI GetConsoleMode(HANDLE hConsoleHandle,LPDWORD lpMode);
  236.   WINBASEAPI WINBOOL WINAPI GetNumberOfConsoleInputEvents(HANDLE hConsoleInput,LPDWORD lpNumberOfEvents);
  237.   WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfo(HANDLE hConsoleOutput,PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo);
  238.   WINBASEAPI COORD WINAPI GetLargestConsoleWindowSize(HANDLE hConsoleOutput);
  239.   WINBASEAPI WINBOOL WINAPI GetConsoleCursorInfo(HANDLE hConsoleOutput,PCONSOLE_CURSOR_INFO lpConsoleCursorInfo);
  240.   WINBASEAPI WINBOOL WINAPI GetCurrentConsoleFont(HANDLE hConsoleOutput,WINBOOL bMaximumWindow,PCONSOLE_FONT_INFO lpConsoleCurrentFont);
  241.   WINBASEAPI COORD WINAPI GetConsoleFontSize(HANDLE hConsoleOutput,DWORD nFont);
  242.   WINBASEAPI WINBOOL WINAPI GetConsoleSelectionInfo(PCONSOLE_SELECTION_INFO lpConsoleSelectionInfo);
  243.   WINBASEAPI WINBOOL WINAPI GetNumberOfConsoleMouseButtons(LPDWORD lpNumberOfMouseButtons);
  244.   WINBASEAPI WINBOOL WINAPI SetConsoleMode(HANDLE hConsoleHandle,DWORD dwMode);
  245.   WINBASEAPI WINBOOL WINAPI SetConsoleActiveScreenBuffer(HANDLE hConsoleOutput);
  246.   WINBASEAPI WINBOOL WINAPI FlushConsoleInputBuffer(HANDLE hConsoleInput);
  247.   WINBASEAPI WINBOOL WINAPI SetConsoleScreenBufferSize(HANDLE hConsoleOutput,COORD dwSize);
  248.   WINBASEAPI WINBOOL WINAPI SetConsoleCursorPosition(HANDLE hConsoleOutput,COORD dwCursorPosition);
  249.   WINBASEAPI WINBOOL WINAPI SetConsoleCursorInfo(HANDLE hConsoleOutput,CONST CONSOLE_CURSOR_INFO *lpConsoleCursorInfo);
  250.   WINBASEAPI WINBOOL WINAPI ScrollConsoleScreenBufferA(HANDLE hConsoleOutput,CONST SMALL_RECT *lpScrollRectangle,CONST SMALL_RECT *lpClipRectangle,COORD dwDestinationOrigin,CONST CHAR_INFO *lpFill);
  251.   WINBASEAPI WINBOOL WINAPI ScrollConsoleScreenBufferW(HANDLE hConsoleOutput,CONST SMALL_RECT *lpScrollRectangle,CONST SMALL_RECT *lpClipRectangle,COORD dwDestinationOrigin,CONST CHAR_INFO *lpFill);
  252.   WINBASEAPI WINBOOL WINAPI SetConsoleWindowInfo(HANDLE hConsoleOutput,WINBOOL bAbsolute,CONST SMALL_RECT *lpConsoleWindow);
  253.   WINBASEAPI WINBOOL WINAPI SetConsoleTextAttribute(HANDLE hConsoleOutput,WORD wAttributes);
  254.   WINBASEAPI WINBOOL WINAPI SetConsoleCtrlHandler(PHANDLER_ROUTINE HandlerRoutine,WINBOOL Add);
  255.   WINBASEAPI WINBOOL WINAPI GenerateConsoleCtrlEvent(DWORD dwCtrlEvent,DWORD dwProcessGroupId);
  256.   WINBASEAPI WINBOOL WINAPI AllocConsole(VOID);
  257.   WINBASEAPI WINBOOL WINAPI FreeConsole(VOID);
  258.   WINBASEAPI WINBOOL WINAPI AttachConsole(DWORD dwProcessId);
  259.  
  260. #define ATTACH_PARENT_PROCESS ((DWORD)-1)
  261.  
  262.   WINBASEAPI DWORD WINAPI GetConsoleTitleA(LPSTR lpConsoleTitle,DWORD nSize);
  263.   WINBASEAPI DWORD WINAPI GetConsoleTitleW(LPWSTR lpConsoleTitle,DWORD nSize);
  264.   WINBASEAPI WINBOOL WINAPI SetConsoleTitleA(LPCSTR lpConsoleTitle);
  265.   WINBASEAPI WINBOOL WINAPI SetConsoleTitleW(LPCWSTR lpConsoleTitle);
  266.   WINBASEAPI WINBOOL WINAPI ReadConsoleA(HANDLE hConsoleInput,LPVOID lpBuffer,DWORD nNumberOfCharsToRead,LPDWORD lpNumberOfCharsRead,LPVOID lpReserved);
  267.   WINBASEAPI WINBOOL WINAPI ReadConsoleW(HANDLE hConsoleInput,LPVOID lpBuffer,DWORD nNumberOfCharsToRead,LPDWORD lpNumberOfCharsRead,LPVOID lpReserved);
  268.   WINBASEAPI WINBOOL WINAPI WriteConsoleA(HANDLE hConsoleOutput,CONST VOID *lpBuffer,DWORD nNumberOfCharsToWrite,LPDWORD lpNumberOfCharsWritten,LPVOID lpReserved);
  269.   WINBASEAPI WINBOOL WINAPI WriteConsoleW(HANDLE hConsoleOutput,CONST VOID *lpBuffer,DWORD nNumberOfCharsToWrite,LPDWORD lpNumberOfCharsWritten,LPVOID lpReserved);
  270.  
  271. #define CONSOLE_TEXTMODE_BUFFER 1
  272.  
  273.   WINBASEAPI HANDLE WINAPI CreateConsoleScreenBuffer(DWORD dwDesiredAccess,DWORD dwShareMode,CONST SECURITY_ATTRIBUTES *lpSecurityAttributes,DWORD dwFlags,LPVOID lpScreenBufferData);
  274.   WINBASEAPI UINT WINAPI GetConsoleCP(VOID);
  275.   WINBASEAPI WINBOOL WINAPI SetConsoleCP(UINT wCodePageID);
  276.   WINBASEAPI UINT WINAPI GetConsoleOutputCP(VOID);
  277.   WINBASEAPI WINBOOL WINAPI SetConsoleOutputCP(UINT wCodePageID);
  278.  
  279. #define CONSOLE_FULLSCREEN 1
  280. #define CONSOLE_FULLSCREEN_HARDWARE 2
  281.  
  282.   WINBASEAPI WINBOOL WINAPI GetConsoleDisplayMode(LPDWORD lpModeFlags);
  283.   WINBASEAPI HWND WINAPI GetConsoleWindow(VOID);
  284.   WINBASEAPI DWORD WINAPI GetConsoleProcessList(LPDWORD lpdwProcessList,DWORD dwProcessCount);
  285.   WINBASEAPI WINBOOL WINAPI AddConsoleAliasA(LPSTR Source,LPSTR Target,LPSTR ExeName);
  286.   WINBASEAPI WINBOOL WINAPI AddConsoleAliasW(LPWSTR Source,LPWSTR Target,LPWSTR ExeName);
  287.   WINBASEAPI DWORD WINAPI GetConsoleAliasA(LPSTR Source,LPSTR TargetBuffer,DWORD TargetBufferLength,LPSTR ExeName);
  288.   WINBASEAPI DWORD WINAPI GetConsoleAliasW(LPWSTR Source,LPWSTR TargetBuffer,DWORD TargetBufferLength,LPWSTR ExeName);
  289.   WINBASEAPI DWORD WINAPI GetConsoleAliasesLengthA(LPSTR ExeName);
  290.   WINBASEAPI DWORD WINAPI GetConsoleAliasesLengthW(LPWSTR ExeName);
  291.   WINBASEAPI DWORD WINAPI GetConsoleAliasExesLengthA(VOID);
  292.   WINBASEAPI DWORD WINAPI GetConsoleAliasExesLengthW(VOID);
  293.   WINBASEAPI DWORD WINAPI GetConsoleAliasesA(LPSTR AliasBuffer,DWORD AliasBufferLength,LPSTR ExeName);
  294.   WINBASEAPI DWORD WINAPI GetConsoleAliasesW(LPWSTR AliasBuffer,DWORD AliasBufferLength,LPWSTR ExeName);
  295.   WINBASEAPI DWORD WINAPI GetConsoleAliasExesA(LPSTR ExeNameBuffer,DWORD ExeNameBufferLength);
  296.   WINBASEAPI DWORD WINAPI GetConsoleAliasExesW(LPWSTR ExeNameBuffer,DWORD ExeNameBufferLength);
  297.  
  298. #ifdef __cplusplus
  299. }
  300. #endif
  301. #endif
  302.