• R/O
  • HTTP
  • SSH
  • HTTPS

mingw-org-wsl: Commit

The MinGW.OSDN Windows System Libraries. Formerly designated as "MinGW.org Windows System Libraries", this encapsulates the "mingwrt" C runtime library extensions, and the "w32api" 32-bit MS-Windows API libraries.

Please note that this project no longer owns the "MinGW.org" domain name; any software which may be distributed from that domain is NOT supported by this project.


Commit MetaInfo

Revision6479346df7674ef45103e37e152cb01671e4c0de (tree)
Time2018-10-30 08:36:08
AuthorKeith Marshall <keith@user...>
CommiterKeith Marshall

Log Message

Clean up <wincon.h>; consolidate its version dependencies.

Change Summary

Incremental Difference

--- a/w32api/ChangeLog
+++ b/w32api/ChangeLog
@@ -1,3 +1,40 @@
1+2018-10-29 Keith Marshall <keith@users.osdn.me>
2+
3+ Clean up <wincon.h>; consolidate its version dependencies.
4+
5+ * include/wincon.h: Tidy layout; assert copyright.
6+ [_WIN32_WINNT]: Always compare it symbolically, with respect to...
7+ [_WIN32_WINNT_WIN2K, _WIN32_WINNT_WINXP, _WIN32_WINNT_VISTA]: ...each
8+ of these; group and consolidate respective version dependencies.
9+ (FOREGROUND_BLUE, FOREGROUND_GREEN, FOREGROUND_RED)
10+ (FOREGROUND_INTENSITY, BACKGROUND_BLUE, BACKGROUND_GREEN)
11+ (BACKGROUND_RED, BACKGROUND_INTENSITY, COMMON_LVB_LEADING_BYTE)
12+ (COMMON_LVB_TRAILING_BYTE, COMMON_LVB_GRID_HORIZONTAL)
13+ (COMMON_LVB_GRID_LVERTICAL, COMMON_LVB_GRID_RVERTICAL)
14+ (COMMON_LVB_REVERSE_VIDEO, COMMON_LVB_UNDERSCORE, CTRL_C_EVENT)
15+ (CTRL_BREAK_EVENT, CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT)
16+ (CTRL_SHUTDOWN_EVENT, ENABLE_LINE_INPUT, ENABLE_ECHO_INPUT)
17+ (ENABLE_PROCESSED_INPUT, ENABLE_WINDOW_INPUT, ENABLE_MOUSE_INPUT)
18+ (ENABLE_INSERT_MODE, ENABLE_QUICK_EDIT_MODE, ENABLE_EXTENDED_FLAGS)
19+ (ENABLE_AUTO_POSITION, ENABLE_VIRTUAL_TERMINAL_INPUT)
20+ (ENABLE_PROCESSED_OUTPUT, ENABLE_WRAP_AT_EOL_OUTPUT)
21+ (ENABLE_VIRTUAL_TERMINAL_PROCESSING, DISABLE_NEWLINE_AUTO_RETURN)
22+ (ENABLE_LVB_GRID_WORLDWIDE, KEY_EVENT, MOUSE_EVENT)
23+ (WINDOW_BUFFER_SIZE_EVENT, MENU_EVENT, FOCUS_EVENT, CAPSLOCK_ON)
24+ (ENHANCED_KEY, RIGHT_ALT_PRESSED, LEFT_ALT_PRESSED)
25+ (RIGHT_CTRL_PRESSED, LEFT_CTRL_PRESSED, SHIFT_PRESSED, NUMLOCK_ON)
26+ (SCROLLLOCK_ON, FROM_LEFT_1ST_BUTTON_PRESSED)
27+ (FROM_LEFT_2ND_BUTTON_PRESSED, FROM_LEFT_3RD_BUTTON_PRESSED)
28+ (FROM_LEFT_4TH_BUTTON_PRESSED, RIGHTMOST_BUTTON_PRESSED, MOUSE_MOVED)
29+ (DOUBLE_CLICK, MOUSE_WHEELED, MOUSE_HWHEELED, CONSOLE_FULLSCREEN)
30+ (CONSOLE_FULLSCREEN_HARDWARE, CONSOLE_FULLSCREEN_MODE)
31+ (CONSOLE_WINDOWED_MODE, CONSOLE_NO_SELECTION)
32+ (CONSOLE_SELECTION_IN_PROGRESS, CONSOLE_SELECTION_NOT_EMPTY)
33+ (CONSOLE_MOUSE_SELECTION, CONSOLE_MOUSE_DOWN, HISTORY_NO_DUP_FLAG):
34+ Redefine, expressing all values in hexadecimal rather than decimal;
35+ this is consistent with Microsoft documentation, and it is also more
36+ logical, since all represent bit-flags, bit-fields, or bit-masks.
37+
138 2018-10-24 Keith Marshall <keith@users.osdn.me>
239
340 Make <wincon.h> header effectively self-contained.
--- a/w32api/include/wincon.h
+++ b/w32api/include/wincon.h
@@ -1,8 +1,40 @@
1+/*
2+ * wincon.h
3+ *
4+ * Windows console I/O declarations, and API function prototypes.
5+ *
6+ * $Id$
7+ *
8+ * Written by Anders Norlander <anorland@hem2.passagen.se>
9+ * Copyright (C) 1998, 1999, 2002-2006, 2009, 2011, 2016, 2018,
10+ * MinGW.org Project.
11+ *
12+ *
13+ * Permission is hereby granted, free of charge, to any person obtaining a
14+ * copy of this software and associated documentation files (the "Software"),
15+ * to deal in the Software without restriction, including without limitation
16+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
17+ * and/or sell copies of the Software, and to permit persons to whom the
18+ * Software is furnished to do so, subject to the following conditions:
19+ *
20+ * The above copyright notice, this permission notice, and the following
21+ * disclaimer shall be included in all copies or substantial portions of
22+ * the Software.
23+ *
24+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
27+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
29+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OF OR OTHER
30+ * DEALINGS IN THE SOFTWARE.
31+ *
32+ */
133 #ifndef _WINCON_H
2-#define _WINCON_H
334 #pragma GCC system_header
35+#define _WINCON_H
436
5-#if _WIN32_WINNT < 0x0600
37+#if _WIN32_WINNT < _WIN32_WINNT_VISTA
638 /* For effective self-containment, <wincon.h> is dependent on the core set
739 * of Windows' custom type definitions; prior to Vista, it suffices to...
840 */
@@ -16,353 +48,377 @@
1648
1749 _BEGIN_C_DECLS
1850
19-#define FOREGROUND_BLUE 1
20-#define FOREGROUND_GREEN 2
21-#define FOREGROUND_RED 4
22-#define FOREGROUND_INTENSITY 8
23-#define BACKGROUND_BLUE 16
24-#define BACKGROUND_GREEN 32
25-#define BACKGROUND_RED 64
26-#define BACKGROUND_INTENSITY 128
27-#define COMMON_LVB_LEADING_BYTE 256
28-#define COMMON_LVB_TRAILING_BYTE 512
29-#define COMMON_LVB_GRID_HORIZONTAL 1024
30-#define COMMON_LVB_GRID_LVERTICAL 2048
31-#define COMMON_LVB_GRID_RVERTICAL 4096
32-#define COMMON_LVB_REVERSE_VIDEO 16384
33-#define COMMON_LVB_UNDERSCORE 32768
34-#if (_WIN32_WINNT >= 0x0501)
35-#define CONSOLE_FULLSCREEN_MODE 1
36-#define CONSOLE_WINDOWED_MODE 2
37-#define CONSOLE_NO_SELECTION 0
38-#define CONSOLE_SELECTION_IN_PROGRESS 1
39-#define CONSOLE_SELECTION_NOT_EMPTY 2
40-#define CONSOLE_MOUSE_SELECTION 4
41-#define CONSOLE_MOUSE_DOWN 8
42-#endif
43-#define CTRL_C_EVENT 0
44-#define CTRL_BREAK_EVENT 1
45-#define CTRL_CLOSE_EVENT 2
46-#define CTRL_LOGOFF_EVENT 5
47-#define CTRL_SHUTDOWN_EVENT 6
48-#define ENABLE_LINE_INPUT 2
49-#define ENABLE_ECHO_INPUT 4
50-#define ENABLE_PROCESSED_INPUT 1
51-#define ENABLE_WINDOW_INPUT 8
52-#define ENABLE_MOUSE_INPUT 16
53-#define ENABLE_INSERT_MODE 32
54-#define ENABLE_QUICK_EDIT_MODE 64
55-#define ENABLE_EXTENDED_FLAGS 128
56-#define ENABLE_AUTO_POSITION 256
57-#define ENABLE_VIRTUAL_TERMINAL_INPUT 512
58-#define ENABLE_PROCESSED_OUTPUT 1
59-#define ENABLE_WRAP_AT_EOL_OUTPUT 2
60-#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 4
61-#define DISABLE_NEWLINE_AUTO_RETURN 8
62-#define ENABLE_LVB_GRID_WORLDWIDE 16
63-#if (_WIN32_WINNT >= 0x0600)
64-#define HISTORY_NO_DUP_FLAG 1
65-#endif
66-#define KEY_EVENT 1
67-#define MOUSE_EVENT 2
68-#define WINDOW_BUFFER_SIZE_EVENT 4
69-#define MENU_EVENT 8
70-#define FOCUS_EVENT 16
71-#define CAPSLOCK_ON 128
72-#define ENHANCED_KEY 256
73-#define RIGHT_ALT_PRESSED 1
74-#define LEFT_ALT_PRESSED 2
75-#define RIGHT_CTRL_PRESSED 4
76-#define LEFT_CTRL_PRESSED 8
77-#define SHIFT_PRESSED 16
78-#define NUMLOCK_ON 32
79-#define SCROLLLOCK_ON 64
80-#define FROM_LEFT_1ST_BUTTON_PRESSED 1
81-#define RIGHTMOST_BUTTON_PRESSED 2
82-#define FROM_LEFT_2ND_BUTTON_PRESSED 4
83-#define FROM_LEFT_3RD_BUTTON_PRESSED 8
84-#define FROM_LEFT_4TH_BUTTON_PRESSED 16
85-#define MOUSE_MOVED 1
86-#define DOUBLE_CLICK 2
87-#define MOUSE_WHEELED 4
88-#define MOUSE_HWHEELED 8
89-#if (_WIN32_WINNT >= 0x0500)
90-#define CONSOLE_FULLSCREEN 1
91-#define CONSOLE_FULLSCREEN_HARDWARE 2
92-#endif
51+#define FOREGROUND_BLUE 0x0001
52+#define FOREGROUND_GREEN 0x0002
53+#define FOREGROUND_RED 0x0004
54+#define FOREGROUND_INTENSITY 0x0008
55+#define BACKGROUND_BLUE 0x0010
56+#define BACKGROUND_GREEN 0x0020
57+#define BACKGROUND_RED 0x0040
58+#define BACKGROUND_INTENSITY 0x0080
59+
60+#define COMMON_LVB_LEADING_BYTE 0x0100
61+#define COMMON_LVB_TRAILING_BYTE 0x0200
62+#define COMMON_LVB_GRID_HORIZONTAL 0x0400
63+#define COMMON_LVB_GRID_LVERTICAL 0x0800
64+#define COMMON_LVB_GRID_RVERTICAL 0x1000
65+#define COMMON_LVB_REVERSE_VIDEO 0x4000
66+#define COMMON_LVB_UNDERSCORE 0x8000
9367
94-typedef struct _CHAR_INFO {
95- union {
96- WCHAR UnicodeChar;
97- CHAR AsciiChar;
98- } Char;
99- WORD Attributes;
68+#define CTRL_C_EVENT 0x0000
69+#define CTRL_BREAK_EVENT 0x0001
70+#define CTRL_CLOSE_EVENT 0x0002
71+#define CTRL_LOGOFF_EVENT 0x0005
72+#define CTRL_SHUTDOWN_EVENT 0x0006
73+
74+#define ENABLE_LINE_INPUT 0x0002
75+#define ENABLE_ECHO_INPUT 0x0004
76+#define ENABLE_PROCESSED_INPUT 0x0001
77+#define ENABLE_WINDOW_INPUT 0x0008
78+#define ENABLE_MOUSE_INPUT 0x0010
79+#define ENABLE_INSERT_MODE 0x0020
80+#define ENABLE_QUICK_EDIT_MODE 0x0040
81+#define ENABLE_EXTENDED_FLAGS 0x0080
82+#define ENABLE_AUTO_POSITION 0x0100
83+#define ENABLE_VIRTUAL_TERMINAL_INPUT 0x0200
84+#define ENABLE_PROCESSED_OUTPUT 0x0001
85+#define ENABLE_WRAP_AT_EOL_OUTPUT 0x0002
86+#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004
87+#define DISABLE_NEWLINE_AUTO_RETURN 0x0008
88+#define ENABLE_LVB_GRID_WORLDWIDE 0x0010
89+
90+#define KEY_EVENT 0x0001
91+#define MOUSE_EVENT 0x0002
92+#define WINDOW_BUFFER_SIZE_EVENT 0x0004
93+#define MENU_EVENT 0x0008
94+#define FOCUS_EVENT 0x0010
95+#define CAPSLOCK_ON 0x0080
96+#define ENHANCED_KEY 0x0100
97+
98+#define RIGHT_ALT_PRESSED 0x0001
99+#define LEFT_ALT_PRESSED 0x0002
100+#define RIGHT_CTRL_PRESSED 0x0004
101+#define LEFT_CTRL_PRESSED 0x0008
102+#define SHIFT_PRESSED 0x0010
103+#define NUMLOCK_ON 0x0020
104+#define SCROLLLOCK_ON 0x0040
105+
106+#define FROM_LEFT_1ST_BUTTON_PRESSED 0x0001
107+#define RIGHTMOST_BUTTON_PRESSED 0x0002
108+#define FROM_LEFT_2ND_BUTTON_PRESSED 0x0004
109+#define FROM_LEFT_3RD_BUTTON_PRESSED 0x0008
110+#define FROM_LEFT_4TH_BUTTON_PRESSED 0x0010
111+#define MOUSE_MOVED 0x0001
112+#define DOUBLE_CLICK 0x0002
113+#define MOUSE_WHEELED 0x0004
114+#define MOUSE_HWHEELED 0x0008
115+
116+typedef
117+struct _CHAR_INFO
118+{ union
119+ { WCHAR UnicodeChar;
120+ CHAR AsciiChar;
121+ } Char;
122+ WORD Attributes;
100123 } CHAR_INFO, *PCHAR_INFO;
101-typedef struct _SMALL_RECT {
102- SHORT Left;
103- SHORT Top;
104- SHORT Right;
105- SHORT Bottom;
124+
125+typedef
126+struct _SMALL_RECT
127+{ SHORT Left;
128+ SHORT Top;
129+ SHORT Right;
130+ SHORT Bottom;
106131 } SMALL_RECT, *PSMALL_RECT;
107-typedef struct _CONSOLE_CURSOR_INFO {
108- DWORD dwSize;
109- BOOL bVisible;
110-} CONSOLE_CURSOR_INFO,*PCONSOLE_CURSOR_INFO;
111-typedef struct _COORD {
112- SHORT X;
113- SHORT Y;
132+
133+typedef
134+struct _CONSOLE_CURSOR_INFO
135+{ DWORD dwSize;
136+ BOOL bVisible;
137+} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;
138+
139+typedef
140+struct _COORD
141+{ SHORT X;
142+ SHORT Y;
114143 } COORD, *PCOORD;
115-#if (_WIN32_WINNT >= 0x0501)
116-typedef struct _CONSOLE_FONT_INFO {
117- DWORD nFont;
118- COORD dwFontSize;
119-} CONSOLE_FONT_INFO, *PCONSOLE_FONT_INFO;
144+
145+typedef
146+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 BOOL (CALLBACK *PHANDLER_ROUTINE)(DWORD);
155+
156+typedef
157+struct _KEY_EVENT_RECORD
158+#ifdef __GNUC__ /* gcc's alignment is not what Win32 expects here! */
159+# define __MINGW_ATTRIBUTE_PACKED__ __attribute__((packed))
160+#else
161+# define __MINGW_ATTRIBUTE_PACKED__
120162 #endif
121-#if (_WIN32_WINNT >= 0x600)
122-typedef struct _CONSOLE_FONT_INFOEX {
123- ULONG cbSize;
124- DWORD nFont;
125- COORD dwFontSize;
126- UINT FontFamily;
127- UINT FontWeight;
128- WCHAR FaceName[LF_FACESIZE];
163+{ BOOL bKeyDown;
164+ WORD wRepeatCount;
165+ WORD wVirtualKeyCode;
166+ WORD wVirtualScanCode;
167+ union
168+ { WCHAR UnicodeChar;
169+ CHAR AsciiChar;
170+ } uChar;
171+ DWORD dwControlKeyState;
172+} __MINGW_ATTRIBUTE_PACKED__ KEY_EVENT_RECORD;
173+
174+typedef
175+struct _MOUSE_EVENT_RECORD
176+{ COORD dwMousePosition;
177+ DWORD dwButtonState;
178+ DWORD dwControlKeyState;
179+ DWORD dwEventFlags;
180+} MOUSE_EVENT_RECORD;
181+
182+typedef
183+struct _WINDOW_BUFFER_SIZE_RECORD
184+{ COORD dwSize;
185+} WINDOW_BUFFER_SIZE_RECORD;
186+
187+typedef
188+struct _MENU_EVENT_RECORD
189+{ UINT dwCommandId;
190+} MENU_EVENT_RECORD, *PMENU_EVENT_RECORD;
191+
192+typedef
193+struct _FOCUS_EVENT_RECORD
194+{ BOOL bSetFocus;
195+} FOCUS_EVENT_RECORD;
196+
197+typedef
198+struct _INPUT_RECORD
199+{ WORD EventType;
200+ union
201+ { KEY_EVENT_RECORD KeyEvent;
202+ MOUSE_EVENT_RECORD MouseEvent;
203+ WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
204+ MENU_EVENT_RECORD MenuEvent;
205+ FOCUS_EVENT_RECORD FocusEvent;
206+ } Event;
207+} INPUT_RECORD, *PINPUT_RECORD;
208+
209+WINAPI BOOL AllocConsole (void);
210+WINAPI HANDLE CreateConsoleScreenBuffer (DWORD, DWORD, CONST SECURITY_ATTRIBUTES *, DWORD, LPVOID);
211+WINAPI BOOL FillConsoleOutputAttribute (HANDLE, WORD, DWORD, COORD, PDWORD);
212+
213+#define FillConsoleOutputCharacter __AW_SUFFIXED__(FillConsoleOutputCharacter)
214+WINAPI BOOL FillConsoleOutputCharacterA (HANDLE, CHAR, DWORD, COORD, PDWORD);
215+WINAPI BOOL FillConsoleOutputCharacterW (HANDLE, WCHAR, DWORD, COORD, PDWORD);
216+
217+WINAPI BOOL FlushConsoleInputBuffer (HANDLE);
218+WINAPI BOOL FreeConsole (void);
219+WINAPI BOOL GenerateConsoleCtrlEvent (DWORD, DWORD);
220+
221+#define GetConsoleAlias __AW_SUFFIXED__(GetConsoleAlias)
222+WINAPI DWORD GetConsoleAliasA (LPSTR, LPSTR, DWORD, LPSTR);
223+WINAPI DWORD GetConsoleAliasW (LPWSTR, LPWSTR, DWORD, LPWSTR);
224+
225+WINAPI UINT GetConsoleCP (void);
226+WINAPI BOOL GetConsoleCursorInfo (HANDLE, PCONSOLE_CURSOR_INFO);
227+WINAPI BOOL GetConsoleMode (HANDLE, PDWORD);
228+WINAPI UINT GetConsoleOutputCP (void);
229+WINAPI BOOL GetConsoleScreenBufferInfo (HANDLE, PCONSOLE_SCREEN_BUFFER_INFO);
230+
231+#define GetConsoleTitle __AW_SUFFIXED__(GetConsoleTitle)
232+WINAPI DWORD GetConsoleTitleA (LPSTR, DWORD);
233+WINAPI DWORD GetConsoleTitleW (LPWSTR, DWORD);
234+
235+WINAPI COORD GetLargestConsoleWindowSize (HANDLE);
236+WINAPI BOOL GetNumberOfConsoleInputEvents (HANDLE, PDWORD);
237+WINAPI BOOL GetNumberOfConsoleMouseButtons (PDWORD);
238+WINAPI BOOL HandlerRoutine (DWORD);
239+
240+#define PeekConsoleInput __AW_SUFFIXED__(PeekConsoleInput)
241+WINAPI BOOL PeekConsoleInputA (HANDLE, PINPUT_RECORD, DWORD, PDWORD);
242+WINAPI BOOL PeekConsoleInputW (HANDLE, PINPUT_RECORD, DWORD, PDWORD);
243+
244+#define ReadConsole __AW_SUFFIXED__(ReadConsole)
245+WINAPI BOOL ReadConsoleA (HANDLE, PVOID, DWORD, PDWORD, PVOID);
246+WINAPI BOOL ReadConsoleW (HANDLE, PVOID, DWORD, PDWORD, PVOID);
247+
248+#define ReadConsoleInput __AW_SUFFIXED__(ReadConsoleInput)
249+WINAPI BOOL ReadConsoleInputA (HANDLE, PINPUT_RECORD, DWORD, PDWORD);
250+WINAPI BOOL ReadConsoleInputW (HANDLE, PINPUT_RECORD, DWORD, PDWORD);
251+
252+WINAPI BOOL ReadConsoleOutputAttribute (HANDLE, LPWORD, DWORD, COORD, LPDWORD);
253+
254+#define ReadConsoleOutputCharacter __AW_SUFFIXED__(ReadConsoleOutputCharacter)
255+WINAPI BOOL ReadConsoleOutputCharacterA (HANDLE, LPSTR, DWORD, COORD, PDWORD);
256+WINAPI BOOL ReadConsoleOutputCharacterW (HANDLE, LPWSTR, DWORD, COORD, PDWORD);
257+
258+#define ReadConsoleOutput __AW_SUFFIXED__(ReadConsoleOutput)
259+WINAPI BOOL ReadConsoleOutputA (HANDLE, PCHAR_INFO, COORD, COORD, PSMALL_RECT);
260+WINAPI BOOL ReadConsoleOutputW (HANDLE, PCHAR_INFO, COORD, COORD, PSMALL_RECT);
261+
262+#define ScrollConsoleScreenBuffer __AW_SUFFIXED__(ScrollConsoleScreenBuffer)
263+WINAPI BOOL ScrollConsoleScreenBufferA
264+(HANDLE, const SMALL_RECT *, const SMALL_RECT *, COORD, const CHAR_INFO *);
265+WINAPI BOOL ScrollConsoleScreenBufferW
266+(HANDLE, const SMALL_RECT *, const SMALL_RECT *, COORD, const CHAR_INFO *);
267+
268+WINAPI BOOL SetConsoleActiveScreenBuffer (HANDLE);
269+WINAPI BOOL SetConsoleCP (UINT);
270+WINAPI BOOL SetConsoleCtrlHandler (PHANDLER_ROUTINE, BOOL);
271+WINAPI BOOL SetConsoleCursorInfo (HANDLE, const CONSOLE_CURSOR_INFO *);
272+WINAPI BOOL SetConsoleCursorPosition (HANDLE, COORD);
273+WINAPI BOOL SetConsoleMode (HANDLE, DWORD);
274+WINAPI BOOL SetConsoleOutputCP (UINT);
275+WINAPI BOOL SetConsoleScreenBufferSize (HANDLE, COORD);
276+WINAPI BOOL SetConsoleTextAttribute (HANDLE, WORD);
277+
278+#define SetConsoleTitle __AW_SUFFIXED__(SetConsoleTitle)
279+WINAPI BOOL SetConsoleTitleA (LPCSTR);
280+WINAPI BOOL SetConsoleTitleW (LPCWSTR);
281+
282+WINAPI BOOL SetConsoleWindowInfo (HANDLE, BOOL, const SMALL_RECT *);
283+
284+#define WriteConsole __AW_SUFFIXED__(WriteConsole)
285+WINAPI BOOL WriteConsoleA (HANDLE, PCVOID, DWORD, PDWORD, PVOID);
286+WINAPI BOOL WriteConsoleW (HANDLE, PCVOID, DWORD, PDWORD, PVOID);
287+
288+#define WriteConsoleInput __AW_SUFFIXED__(WriteConsoleInput)
289+WINAPI BOOL WriteConsoleInputA (HANDLE, const INPUT_RECORD *, DWORD, PDWORD);
290+WINAPI BOOL WriteConsoleInputW (HANDLE, const INPUT_RECORD *, DWORD, PDWORD);
291+
292+#define WriteConsoleOutput __AW_SUFFIXED__(WriteConsoleOutput)
293+WINAPI BOOL WriteConsoleOutputA (HANDLE, const CHAR_INFO *, COORD, COORD, PSMALL_RECT);
294+WINAPI BOOL WriteConsoleOutputW (HANDLE, const CHAR_INFO *, COORD, COORD, PSMALL_RECT);
295+
296+WINAPI BOOL WriteConsoleOutputAttribute (HANDLE, const WORD *, DWORD, COORD, PDWORD);
297+
298+#define WriteConsoleOutputCharacter __AW_SUFFIXED__(WriteConsoleOutputCharacter)
299+WINAPI BOOL WriteConsoleOutputCharacterA (HANDLE, LPCSTR, DWORD, COORD, PDWORD);
300+WINAPI BOOL WriteConsoleOutputCharacterW (HANDLE, LPCWSTR, DWORD, COORD, PDWORD);
301+
302+#if _WIN32_WINNT >= _WIN32_WINNT_WIN2K
303+
304+#define CONSOLE_FULLSCREEN 0x0001
305+#define CONSOLE_FULLSCREEN_HARDWARE 0x0002
306+
307+WINAPI BOOL GetConsoleDisplayMode (LPDWORD);
308+WINAPI COORD GetConsoleFontSize (HANDLE, DWORD);
309+WINAPI HWND GetConsoleWindow (void);
310+
311+#if _WIN32_WINNT >= _WIN32_WINNT_WINXP
312+
313+#define CONSOLE_FULLSCREEN_MODE 0x0001
314+#define CONSOLE_WINDOWED_MODE 0x0002
315+#define CONSOLE_NO_SELECTION 0x0000
316+#define CONSOLE_SELECTION_IN_PROGRESS 0x0001
317+#define CONSOLE_SELECTION_NOT_EMPTY 0x0002
318+#define CONSOLE_MOUSE_SELECTION 0x0004
319+#define CONSOLE_MOUSE_DOWN 0x0008
320+
321+typedef
322+struct _CONSOLE_FONT_INFO
323+{ DWORD nFont;
324+ COORD dwFontSize;
325+} CONSOLE_FONT_INFO, *PCONSOLE_FONT_INFO;
326+
327+typedef
328+struct _CONSOLE_SELECTION_INFO
329+{ DWORD dwFlags;
330+ COORD dwSelectionAnchor;
331+ SMALL_RECT srSelection;
332+} CONSOLE_SELECTION_INFO, *PCONSOLE_SELECTION_INFO;
333+
334+#define AddConsoleAlias __AW_SUFFIXED__(AddConsoleAlias)
335+WINAPI BOOL AddConsoleAliasA (LPCSTR, LPCSTR, LPCSTR);
336+WINAPI BOOL AddConsoleAliasW (LPCWSTR, LPCWSTR, LPCWSTR);
337+
338+#define ATTACH_PARENT_PROCESS ((DWORD)(-1))
339+
340+WINAPI BOOL AttachConsole (DWORD);
341+
342+#define GetConsoleAliases __AW_SUFFIXED__(GetConsoleAliases)
343+WINAPI DWORD GetConsoleAliasesA (LPSTR, DWORD, LPSTR);
344+WINAPI DWORD GetConsoleAliasesW (LPWSTR, DWORD, LPWSTR);
345+
346+#define GetConsoleAliasExes __AW_SUFFIXED__(GetConsoleAliasExes)
347+WINAPI DWORD GetConsoleAliasExesA (LPSTR, DWORD);
348+WINAPI DWORD GetConsoleAliasExesW (LPWSTR, DWORD);
349+
350+#define GetConsoleAliasesLength __AW_SUFFIXED__(GetConsoleAliasesLength)
351+WINAPI DWORD GetConsoleAliasesLengthA (LPSTR);
352+WINAPI DWORD GetConsoleAliasesLengthW (LPWSTR);
353+
354+#define GetConsoleAliasExesLength __AW_SUFFIXED__(GetConsoleAliasExesLength)
355+WINAPI DWORD GetConsoleAliasExesLengthA (void);
356+WINAPI DWORD GetConsoleAliasExesLengthW (void);
357+
358+WINAPI BOOL GetConsoleSelectionInfo (PCONSOLE_SELECTION_INFO);
359+WINAPI DWORD GetConsoleProcessList (LPDWORD, DWORD);
360+WINAPI BOOL GetCurrentConsoleFont (HANDLE, BOOL, PCONSOLE_FONT_INFO);
361+WINAPI BOOL SetConsoleDisplayMode (HANDLE, DWORD, PCOORD);
362+
363+#if _WIN32_WINNT >= _WIN32_WINNT_VISTA
364+
365+#define HISTORY_NO_DUP_FLAG 0x0001
366+
367+typedef
368+struct _CONSOLE_FONT_INFOEX
369+{ ULONG cbSize;
370+ DWORD nFont;
371+ COORD dwFontSize;
372+ UINT FontFamily;
373+ UINT FontWeight;
374+ WCHAR FaceName[LF_FACESIZE];
129375 } CONSOLE_FONT_INFOEX, *PCONSOLE_FONT_INFOEX;
130-typedef struct {
131- UINT cbSize;
132- UINT HistoryBufferSize;
133- UINT NumberOfHistoryBuffers;
134- DWORD dwFlags;
376+
377+typedef
378+struct
379+{ UINT cbSize;
380+ UINT HistoryBufferSize;
381+ UINT NumberOfHistoryBuffers;
382+ DWORD dwFlags;
135383 } CONSOLE_HISTORY_INFO, *PCONSOLE_HISTORY_INFO;
136-typedef struct _CONSOLE_READCONSOLE_CONTROL {
137- ULONG nLength;
138- ULONG nInitialChars;
139- ULONG dwCtrlWakeupMask;
140- ULONG dwControlKeyState;
384+
385+typedef
386+struct _CONSOLE_READCONSOLE_CONTROL
387+{ ULONG nLength;
388+ ULONG nInitialChars;
389+ ULONG dwCtrlWakeupMask;
390+ ULONG dwControlKeyState;
141391 } CONSOLE_READCONSOLE_CONTROL, *PCONSOLE_READCONSOLE_CONTROL;
142-#endif
143392
144-typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
145- COORD dwSize;
146- COORD dwCursorPosition;
147- WORD wAttributes;
148- SMALL_RECT srWindow;
149- COORD dwMaximumWindowSize;
150-} CONSOLE_SCREEN_BUFFER_INFO,*PCONSOLE_SCREEN_BUFFER_INFO;
151-#if (_WIN32_WINNT >= 0x0600)
152-typedef struct _CONSOLE_SCREEN_BUFFER_INFOEX {
153- ULONG cbSize;
154- COORD dwSize;
155- COORD dwCursorPosition;
156- WORD wAttributes;
157- SMALL_RECT srWindow;
158- COORD dwMaximumWindowSize;
159- WORD wPopupAttributes;
160- BOOL bFullscreenSupported;
161- COLORREF ColorTable[16];
393+typedef
394+struct _CONSOLE_SCREEN_BUFFER_INFOEX
395+{ ULONG cbSize;
396+ COORD dwSize;
397+ COORD dwCursorPosition;
398+ WORD wAttributes;
399+ SMALL_RECT srWindow;
400+ COORD dwMaximumWindowSize;
401+ WORD wPopupAttributes;
402+ BOOL bFullscreenSupported;
403+ COLORREF ColorTable[16];
162404 } CONSOLE_SCREEN_BUFFER_INFOEX, *PCONSOLE_SCREEN_BUFFER_INFOEX;
163-#endif
164-#if (_WIN32_WINNT >= 0x0501)
165-typedef struct _CONSOLE_SELECTION_INFO {
166- DWORD dwFlags;
167- COORD dwSelectionAnchor;
168- SMALL_RECT srSelection;
169-} CONSOLE_SELECTION_INFO, *PCONSOLE_SELECTION_INFO;
170-#endif
171-typedef BOOL(CALLBACK *PHANDLER_ROUTINE)(DWORD);
172-typedef struct _KEY_EVENT_RECORD {
173- BOOL bKeyDown;
174- WORD wRepeatCount;
175- WORD wVirtualKeyCode;
176- WORD wVirtualScanCode;
177- union {
178- WCHAR UnicodeChar;
179- CHAR AsciiChar;
180- } uChar;
181- DWORD dwControlKeyState;
182-}
183-#ifdef __GNUC__
184-/* gcc's alignment is not what win32 expects */
185- __attribute__((packed))
186-#endif
187-KEY_EVENT_RECORD;
188405
189-typedef struct _MOUSE_EVENT_RECORD {
190- COORD dwMousePosition;
191- DWORD dwButtonState;
192- DWORD dwControlKeyState;
193- DWORD dwEventFlags;
194-} MOUSE_EVENT_RECORD;
195-typedef struct _WINDOW_BUFFER_SIZE_RECORD { COORD dwSize; } WINDOW_BUFFER_SIZE_RECORD;
196-typedef struct _MENU_EVENT_RECORD { UINT dwCommandId; } MENU_EVENT_RECORD,*PMENU_EVENT_RECORD;
197-typedef struct _FOCUS_EVENT_RECORD { BOOL bSetFocus; } FOCUS_EVENT_RECORD;
198-typedef struct _INPUT_RECORD {
199- WORD EventType;
200- union {
201- KEY_EVENT_RECORD KeyEvent;
202- MOUSE_EVENT_RECORD MouseEvent;
203- WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
204- MENU_EVENT_RECORD MenuEvent;
205- FOCUS_EVENT_RECORD FocusEvent;
206- } Event;
207-} INPUT_RECORD,*PINPUT_RECORD;
208-
209-#if (_WIN32_WINNT >= 0x0501)
210-BOOL WINAPI AddConsoleAliasA(LPCSTR,LPCSTR,LPCSTR);
211-BOOL WINAPI AddConsoleAliasW(LPCWSTR,LPCWSTR,LPCWSTR);
212-#endif
213-BOOL WINAPI AllocConsole(void);
214-#if (_WIN32_WINNT >= 0x0501)
215-#define ATTACH_PARENT_PROCESS ((DWORD)-1)
216-BOOL WINAPI AttachConsole(DWORD);
217-#endif
218-HANDLE WINAPI CreateConsoleScreenBuffer(DWORD,DWORD,CONST SECURITY_ATTRIBUTES*,DWORD,LPVOID);
219-BOOL WINAPI FillConsoleOutputAttribute(HANDLE,WORD,DWORD,COORD,PDWORD);
220-BOOL WINAPI FillConsoleOutputCharacterA(HANDLE,CHAR,DWORD,COORD,PDWORD);
221-BOOL WINAPI FillConsoleOutputCharacterW(HANDLE,WCHAR,DWORD,COORD,PDWORD);
222-BOOL WINAPI FlushConsoleInputBuffer(HANDLE);
223-BOOL WINAPI FreeConsole(void);
224-BOOL WINAPI GenerateConsoleCtrlEvent(DWORD,DWORD);
225-DWORD WINAPI GetConsoleAliasA(LPSTR,LPSTR,DWORD,LPSTR);
226-DWORD WINAPI GetConsoleAliasW(LPWSTR,LPWSTR,DWORD,LPWSTR);
227-#if (_WIN32_WINNT >= 0x0501)
228-DWORD WINAPI GetConsoleAliasesA(LPSTR,DWORD,LPSTR);
229-DWORD WINAPI GetConsoleAliasesW(LPWSTR,DWORD,LPWSTR);
230-DWORD WINAPI GetConsoleAliasExesA(LPSTR,DWORD);
231-DWORD WINAPI GetConsoleAliasExesW(LPWSTR,DWORD);
232-DWORD WINAPI GetConsoleAliasesLengthA(LPSTR);
233-DWORD WINAPI GetConsoleAliasesLengthW(LPWSTR);
234-DWORD WINAPI GetConsoleAliasExesLengthA(void);
235-DWORD WINAPI GetConsoleAliasExesLengthW(void);
236-#endif
237-UINT WINAPI GetConsoleCP(void);
238-#if (_WIN32_WINNT >= 0x0500)
239-COORD WINAPI GetConsoleFontSize(HANDLE,DWORD);
240-#endif
241-BOOL WINAPI GetConsoleCursorInfo(HANDLE,PCONSOLE_CURSOR_INFO);
242-#if (_WIN32_WINNT >= 0x0600)
243-BOOL WINAPI GetConsoleHistoryInfo(PCONSOLE_HISTORY_INFO);
244-#endif
245-BOOL WINAPI GetConsoleMode(HANDLE,PDWORD);
246-#if (_WIN32_WINNT >= 0x0600)
247-DWORD WINAPI GetConsoleOriginalTitleA(LPSTR,DWORD);
248-DWORD WINAPI GetConsoleOriginalTitleW(LPWSTR,DWORD);
249-#endif
250-UINT WINAPI GetConsoleOutputCP(void);
251-#if (_WIN32_WINNT >= 0x0501)
252-BOOL WINAPI GetConsoleSelectionInfo(PCONSOLE_SELECTION_INFO);
253-#endif
254-BOOL WINAPI GetConsoleScreenBufferInfo(HANDLE,PCONSOLE_SCREEN_BUFFER_INFO);
255-#if (_WIN32_WINNT >= 0x0600)
256-BOOL WINAPI GetConsoleScreenBufferInfoEx(HANDLE,PCONSOLE_SCREEN_BUFFER_INFOEX);
257-#endif
258-DWORD WINAPI GetConsoleTitleA(LPSTR,DWORD);
259-DWORD WINAPI GetConsoleTitleW(LPWSTR,DWORD);
260-#if (_WIN32_WINNT >= 0x0500)
261-BOOL WINAPI GetConsoleDisplayMode(LPDWORD);
262-HWND WINAPI GetConsoleWindow(void);
263-#endif
264-#if (_WIN32_WINNT >= 0x0501)
265-DWORD WINAPI GetConsoleProcessList(LPDWORD, DWORD);
266-BOOL WINAPI GetCurrentConsoleFont(HANDLE,BOOL,PCONSOLE_FONT_INFO);
267-#endif
268-#if (_WIN32_WINNT >= 0x0600)
269-BOOL WINAPI GetCurrentConsoleFontEx(HANDLE,BOOL,PCONSOLE_FONT_INFOEX);
270-#endif
271-COORD WINAPI GetLargestConsoleWindowSize(HANDLE);
272-BOOL WINAPI GetNumberOfConsoleInputEvents(HANDLE,PDWORD);
273-BOOL WINAPI GetNumberOfConsoleMouseButtons(PDWORD);
274-BOOL WINAPI HandlerRoutine(DWORD);
275-BOOL WINAPI PeekConsoleInputA(HANDLE,PINPUT_RECORD,DWORD,PDWORD);
276-BOOL WINAPI PeekConsoleInputW(HANDLE,PINPUT_RECORD,DWORD,PDWORD);
277-BOOL WINAPI ReadConsoleA(HANDLE,PVOID,DWORD,PDWORD,PVOID);
278-BOOL WINAPI ReadConsoleW(HANDLE,PVOID,DWORD,PDWORD,PVOID);
279-BOOL WINAPI ReadConsoleInputA(HANDLE,PINPUT_RECORD,DWORD,PDWORD);
280-BOOL WINAPI ReadConsoleInputW(HANDLE,PINPUT_RECORD,DWORD,PDWORD);
281-BOOL WINAPI ReadConsoleOutputAttribute(HANDLE,LPWORD,DWORD,COORD,LPDWORD);
282-BOOL WINAPI ReadConsoleOutputCharacterA(HANDLE,LPSTR,DWORD,COORD,PDWORD);
283-BOOL WINAPI ReadConsoleOutputCharacterW(HANDLE,LPWSTR,DWORD,COORD,PDWORD);
284-BOOL WINAPI ReadConsoleOutputA(HANDLE,PCHAR_INFO,COORD,COORD,PSMALL_RECT);
285-BOOL WINAPI ReadConsoleOutputW(HANDLE,PCHAR_INFO,COORD,COORD,PSMALL_RECT);
286-BOOL WINAPI ScrollConsoleScreenBufferA(HANDLE,const SMALL_RECT*,const SMALL_RECT*,COORD,const CHAR_INFO*);
287-BOOL WINAPI ScrollConsoleScreenBufferW(HANDLE,const SMALL_RECT*,const SMALL_RECT*,COORD,const CHAR_INFO*);
288-BOOL WINAPI SetConsoleActiveScreenBuffer(HANDLE);
289-BOOL WINAPI SetConsoleCP(UINT);
290-BOOL WINAPI SetConsoleCtrlHandler(PHANDLER_ROUTINE,BOOL);
291-BOOL WINAPI SetConsoleCursorInfo(HANDLE,const CONSOLE_CURSOR_INFO*);
292-BOOL WINAPI SetConsoleCursorPosition(HANDLE,COORD);
293-#if (_WIN32_WINNT >= 0x0501)
294-BOOL WINAPI SetConsoleDisplayMode(HANDLE,DWORD,PCOORD);
295-#endif
296-#if (_WIN32_WINNT >= 0x0600)
297-BOOL WINAPI SetConsoleHistoryInfo(PCONSOLE_HISTORY_INFO);
298-#endif
299-BOOL WINAPI SetConsoleMode(HANDLE,DWORD);
300-BOOL WINAPI SetConsoleOutputCP(UINT);
301-#if (_WIN32_WINNT >= 0x0600)
302-BOOL WINAPI SetConsoleScreenBufferInfoEx(HANDLE,PCONSOLE_SCREEN_BUFFER_INFOEX);
303-#endif
304-BOOL WINAPI SetConsoleScreenBufferSize(HANDLE,COORD);
305-BOOL WINAPI SetConsoleTextAttribute(HANDLE,WORD);
306-BOOL WINAPI SetConsoleTitleA(LPCSTR);
307-BOOL WINAPI SetConsoleTitleW(LPCWSTR);
308-BOOL WINAPI SetConsoleWindowInfo(HANDLE,BOOL,const SMALL_RECT*);
309-#if (_WIN32_WINNT >= 0x0600)
310-BOOL WINAPI SetCurrentConsoleFontEx(HANDLE,BOOL,PCONSOLE_FONT_INFOEX);
311-#endif
312-BOOL WINAPI WriteConsoleA(HANDLE,PCVOID,DWORD,PDWORD,PVOID);
313-BOOL WINAPI WriteConsoleW(HANDLE,PCVOID,DWORD,PDWORD,PVOID);
314-BOOL WINAPI WriteConsoleInputA(HANDLE,const INPUT_RECORD*,DWORD,PDWORD);
315-BOOL WINAPI WriteConsoleInputW(HANDLE,const INPUT_RECORD*,DWORD,PDWORD);
316-BOOL WINAPI WriteConsoleOutputA(HANDLE,const CHAR_INFO*,COORD,COORD,PSMALL_RECT);
317-BOOL WINAPI WriteConsoleOutputW(HANDLE,const CHAR_INFO*,COORD,COORD,PSMALL_RECT);
318-BOOL WINAPI WriteConsoleOutputAttribute(HANDLE,const WORD*,DWORD,COORD,PDWORD);
319-BOOL WINAPI WriteConsoleOutputCharacterA(HANDLE,LPCSTR,DWORD,COORD,PDWORD);
320-BOOL WINAPI WriteConsoleOutputCharacterW(HANDLE,LPCWSTR,DWORD,COORD,PDWORD);
321-
322-#ifdef UNICODE
323-#define AddConsoleAlias AddConsoleAliasW
324-#define FillConsoleOutputCharacter FillConsoleOutputCharacterW
325-#define GetConsoleAlias GetConsoleAliasW
326-#define GetConsoleAliases GetConsoleAliasesW
327-#define GetConsoleAliasExes GetConsoleAliasExesW
328-#define GetConsoleAliasesLength GetConsoleAliasesLengthW
329-#define GetConsoleAliasExesLength GetConsoleAliasExesLengthW
330-#define GetConsoleOriginalTitle GetConsoleOriginalTitleW
331-#define GetConsoleTitle GetConsoleTitleW
332-#define PeekConsoleInput PeekConsoleInputW
333-#define ReadConsole ReadConsoleW
334-#define ReadConsoleInput ReadConsoleInputW
335-#define ReadConsoleOutput ReadConsoleOutputW
336-#define ReadConsoleOutputCharacter ReadConsoleOutputCharacterW
337-#define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferW
338-#define SetConsoleTitle SetConsoleTitleW
339-#define WriteConsole WriteConsoleW
340-#define WriteConsoleInput WriteConsoleInputW
341-#define WriteConsoleOutput WriteConsoleOutputW
342-#define WriteConsoleOutputCharacter WriteConsoleOutputCharacterW
343-#else
344-#define AddConsoleAlias AddConsoleAliasA
345-#define FillConsoleOutputCharacter FillConsoleOutputCharacterA
346-#define GetConsoleAlias GetConsoleAliasA
347-#define GetConsoleAliases GetConsoleAliasesA
348-#define GetConsoleAliasExes GetConsoleAliasExesA
349-#define GetConsoleAliasesLength GetConsoleAliasesLengthA
350-#define GetConsoleAliasExesLength GetConsoleAliasExesLengthA
351-#define GetConsoleOriginalTitle GetConsoleOriginalTitleA
352-#define GetConsoleTitle GetConsoleTitleA
353-#define PeekConsoleInput PeekConsoleInputA
354-#define ReadConsole ReadConsoleA
355-#define ReadConsoleInput ReadConsoleInputA
356-#define ReadConsoleOutput ReadConsoleOutputA
357-#define ReadConsoleOutputCharacter ReadConsoleOutputCharacterA
358-#define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferA
359-#define SetConsoleTitle SetConsoleTitleA
360-#define WriteConsole WriteConsoleA
361-#define WriteConsoleInput WriteConsoleInputA
362-#define WriteConsoleOutput WriteConsoleOutputA
363-#define WriteConsoleOutputCharacter WriteConsoleOutputCharacterA
364-#endif
406+WINAPI BOOL GetConsoleHistoryInfo (PCONSOLE_HISTORY_INFO);
407+
408+#define GetConsoleOriginalTitle __AW_SUFFIXED__(GetConsoleOriginalTitle)
409+WINAPI DWORD GetConsoleOriginalTitleA (LPSTR, DWORD);
410+WINAPI DWORD GetConsoleOriginalTitleW (LPWSTR, DWORD);
411+
412+WINAPI BOOL GetConsoleScreenBufferInfoEx (HANDLE, PCONSOLE_SCREEN_BUFFER_INFOEX);
413+WINAPI BOOL GetCurrentConsoleFontEx (HANDLE, BOOL, PCONSOLE_FONT_INFOEX);
414+WINAPI BOOL SetConsoleHistoryInfo (PCONSOLE_HISTORY_INFO);
415+WINAPI BOOL SetConsoleScreenBufferInfoEx (HANDLE, PCONSOLE_SCREEN_BUFFER_INFOEX);
416+WINAPI BOOL SetCurrentConsoleFontEx (HANDLE, BOOL, PCONSOLE_FONT_INFOEX);
417+
418+#endif /* Vista and later */
419+#endif /* WinXP and later */
420+#endif /* Win2K and later */
365421
366422 _END_C_DECLS
367423
368-#endif
424+#endif /* !_WINCON_H: $RCSfile$: end of file */
Show on old repository browser