Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6429 siemargl 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