include: Add missing declarations and definitions to wincon.h.

Dylan Smith dylan.ah.smith at gmail.com
Sat Aug 15 18:52:48 CDT 2009


After trying to use AttachConsole for windows testing, and having it
fail to compile, I found wincon.h needed to be updated with new
definitions and declarations.  I tried to add what was missing.
---
 include/wincon.h |  150 +++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 137 insertions(+), 13 deletions(-)
-------------- next part --------------
diff --git a/include/wincon.h b/include/wincon.h
index 5d1e8e7..b133d48 100644
--- a/include/wincon.h
+++ b/include/wincon.h
@@ -23,9 +23,29 @@
 extern "C" {
 #endif
 
+#ifndef NOGDI
+#include <wingdi.h>
+#endif
+
+/* AttachConsole special pid value */
+#define ATTACH_PARENT_PROCESS ((DWORD) -1)
+
+/* GetConsoleDisplayMode flags */
 #define CONSOLE_FULLSCREEN          1
 #define CONSOLE_FULLSCREEN_HARDWARE 2
 
+/* SetConsoleDisplayMode flags */
+#define CONSOLE_FULLSCREEN_MODE 1
+#define CONSOLE_WINDOWED_MODE   2
+
+/* CONSOLE_SELECTION_INFO.dwFlags */
+#define CONSOLE_NO_SELECTION          0x00
+#define CONSOLE_SELECTION_IN_PROGRESS 0x01
+#define CONSOLE_SELECTION_NOT_EMPTY   0x02
+#define CONSOLE_MOUSE_SELECTION       0x04
+#define CONSOLE_MOUSE_DOWN            0x08
+
+/* handler routine control signal type */
 #define CTRL_C_EVENT        0
 #define CTRL_BREAK_EVENT    1
 #define CTRL_CLOSE_EVENT    2
@@ -33,11 +53,15 @@ extern "C" {
 #define CTRL_SHUTDOWN_EVENT 6
 
 /* Console Mode flags */
-#define ENABLE_PROCESSED_INPUT 0x01
-#define ENABLE_LINE_INPUT      0x02
-#define ENABLE_ECHO_INPUT      0x04
-#define ENABLE_WINDOW_INPUT    0x08
-#define ENABLE_MOUSE_INPUT     0x10
+#define ENABLE_PROCESSED_INPUT 0x0001
+#define ENABLE_LINE_INPUT      0x0002
+#define ENABLE_ECHO_INPUT      0x0004
+#define ENABLE_WINDOW_INPUT    0x0008
+#define ENABLE_MOUSE_INPUT     0x0010
+#define ENABLE_INSERT_MODE     0x0020
+#define ENABLE_QUICK_EDIT_MODE 0x0040
+#define ENABLE_EXTENDED_FLAGS  0x0080
+#define ENABLE_AUTO_POSITION   0x0100
 
 #define ENABLE_PROCESSED_OUTPUT   0x01
 #define ENABLE_WRAP_AT_EOL_OUTPUT 0x02
@@ -47,14 +71,24 @@ typedef BOOL (WINAPI *PHANDLER_ROUTINE)(DWORD dwCtrlType);
 
 /* Attributes flags: */
 
-#define FOREGROUND_BLUE      0x0001 /* text color contains blue. */
-#define FOREGROUND_GREEN     0x0002 /* text color contains green. */
-#define FOREGROUND_RED       0x0004 /* text color contains red. */
-#define FOREGROUND_INTENSITY 0x0008 /* text color is intensified. */
-#define BACKGROUND_BLUE      0x0010 /* background color contains blue. */
-#define BACKGROUND_GREEN     0x0020 /* background color contains green. */
-#define BACKGROUND_RED       0x0040 /* background color contains red. */
-#define BACKGROUND_INTENSITY 0x0080 /* background color is intensified. */
+#define FOREGROUND_BLUE            0x0001 /* text color contains blue. */
+#define FOREGROUND_GREEN           0x0002 /* text color contains green. */
+#define FOREGROUND_RED             0x0004 /* text color contains red. */
+#define FOREGROUND_INTENSITY       0x0008 /* text color is intensified. */
+#define BACKGROUND_BLUE            0x0010 /* background color contains blue. */
+#define BACKGROUND_GREEN           0x0020 /* background color contains green. */
+#define BACKGROUND_RED             0x0040 /* background color contains red. */
+#define BACKGROUND_INTENSITY       0x0080 /* background color is intensified. */
+#define COMMON_LVB_LEADING_BYTE    0x0100
+#define COMMON_LVB_TRAILING_BYTE   0x0200
+#define COMMON_LVB_GRID_HORIZONTAL 0x0400
+#define COMMON_LVB_GRID_LVERTICAL  0x0800
+#define COMMON_LVB_GRID_RVERTICAL  0x1000
+#define COMMON_LVB_REVERSE_VIDEO   0x4000
+#define COMMON_LVB_UNDERSCORE      0x8000
+
+/* CONSOLE_HISTORY_INFO.dwFlags */
+#define HISTORY_NO_DUP_FLAG  0x01
 
 typedef struct _CONSOLE_CURSOR_INFO {
     DWORD	dwSize;   /* Between 1 & 100 for percentage of cell filled */
@@ -75,6 +109,40 @@ typedef struct tagSMALL_RECT
     SHORT Bottom;
 } SMALL_RECT,*LPSMALL_RECT;
 
+typedef struct tagCONSOLE_FONT_INFO
+{
+    DWORD       nFont;
+    COORD       dwFontSize;
+} CONSOLE_FONT_INFO,*LPCONSOLE_FONT_INFO;
+
+#ifndef NOGDI
+typedef struct tagCONSOLE_FONT_INFOEX
+{
+    ULONG       cbSize;
+    DWORD       nFont;
+    COORD       dwFontSize;
+    UINT        FontFamily;
+    UINT        FontWeight;
+    WCHAR       FaceName[LF_FACESIZE];
+} CONSOLE_FONT_INFOEX,*LPCONSOLE_FONT_INFOEX;
+#endif
+
+typedef struct tagCONSOLE_HISTORY_INFO
+{
+    UINT        cbSize;
+    UINT        HistoryBufferSize;
+    UINT        NumberOfHistoryBuffers;
+    DWORD       dwFlags;
+} CONSOLE_HISTORY_INFO,*LPCONSOLE_HISTORY_INFO;
+
+typedef struct tagCONSOLE_READCONSOLE_CONTROL
+{
+    ULONG       nLength;
+    ULONG       nInitialChars;
+    ULONG       dwCtrlWakeupMask;
+    ULONG       dwConsoleKeyState;
+} CONSOLE_READCONSOLE_CONTROL,*LPCONSOLE_READCONSOLE_CONTROL;
+
 typedef struct tagCONSOLE_SCREEN_BUFFER_INFO
 {
     COORD       dwSize;
@@ -84,6 +152,26 @@ typedef struct tagCONSOLE_SCREEN_BUFFER_INFO
     COORD       dwMaximumWindowSize;
 } CONSOLE_SCREEN_BUFFER_INFO,*LPCONSOLE_SCREEN_BUFFER_INFO;
 
+typedef struct tagCONSOLE_SCREEN_BUFFER_INFOEX
+{
+    ULONG       cbSize;
+    COORD       dwSize;
+    COORD       dwCursorPosition;
+    WORD        wAttributes;
+    SMALL_RECT  srWindow;
+    COORD       dwMaximumWindowSize;
+    WORD        wPopupAttributes;
+    BOOL        bFullscreenSupported;
+    COLORREF    ColorTable[16];
+} CONSOLE_SCREEN_BUFFER_INFOEX,*LPCONSOLE_SCREEN_BUFFER_INFOEX;
+
+typedef struct tagCONSOLE_SELECTION_INFO
+{
+    DWORD       dwFlags;
+    COORD       dwSelectionAnchor;
+    SMALL_RECT  srSelection;
+} CONSOLE_SELECTION_INFO,*LPCONSOLE_SELECTION_INFO;
+
 typedef struct tagCHAR_INFO
 {
     union
@@ -127,15 +215,18 @@ typedef struct tagMOUSE_EVENT_RECORD
     DWORD	dwEventFlags;
 } MOUSE_EVENT_RECORD,*LPMOUSE_EVENT_RECORD;
 
+/* MOUSE_EVENT_RECORD.dwButtonState */
 #define FROM_LEFT_1ST_BUTTON_PRESSED    0x0001
 #define RIGHTMOST_BUTTON_PRESSED        0x0002
 #define FROM_LEFT_2ND_BUTTON_PRESSED    0x0004
 #define FROM_LEFT_3RD_BUTTON_PRESSED    0x0008
 #define FROM_LEFT_4TH_BUTTON_PRESSED    0x0010
 
+/* MOUSE_EVENT_RECORD.dwEventFlags */
 #define MOUSE_MOVED                     0x0001
 #define DOUBLE_CLICK                    0x0002
 #define MOUSE_WHEELED                   0x0004
+#define MOUSE_HWHEELED                  0x0008
 
 typedef struct tagWINDOW_BUFFER_SIZE_RECORD
 {
@@ -194,7 +285,11 @@ static inline COORD __wine_GetLargestConsoleWindowSize_wrapper(HANDLE h)
 WINBASEAPI COORD WINAPI GetLargestConsoleWindowSize(HANDLE);
 #endif  /* __i386__ */
 
+WINBASEAPI BOOL   WINAPI AddConsoleAliasA(LPSTR,LPSTR,LPSTR);
+WINBASEAPI BOOL   WINAPI AddConsoleAliasW(LPWSTR,LPWSTR,LPWSTR);
+#define                  AddConsoleAlias WINELIB_NAME_AW(AddConsoleAlias)
 WINBASEAPI BOOL   WINAPI AllocConsole(VOID);
+WINBASEAPI BOOL   WINAPI AttachConsole(DWORD);
 WINBASEAPI HANDLE WINAPI CreateConsoleScreenBuffer( DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,LPVOID);
 WINBASEAPI BOOL WINAPI   FillConsoleOutputAttribute( HANDLE,WORD,DWORD,COORD,LPDWORD);
 WINBASEAPI BOOL WINAPI   FillConsoleOutputCharacterA(HANDLE,CHAR,DWORD,COORD,LPDWORD);
@@ -203,18 +298,43 @@ WINBASEAPI BOOL WINAPI   FillConsoleOutputCharacterW(HANDLE,WCHAR,DWORD,COORD,LP
 WINBASEAPI BOOL WINAPI   FlushConsoleInputBuffer( HANDLE);
 WINBASEAPI BOOL WINAPI   FreeConsole(VOID);
 WINBASEAPI BOOL WINAPI   GenerateConsoleCtrlEvent( DWORD,DWORD);
+WINBASEAPI DWORD WINAPI  GetConsoleAliasA(LPSTR,LPSTR,DWORD,LPSTR);
+WINBASEAPI DWORD WINAPI  GetConsoleAliasW(LPWSTR,LPWSTR,DWORD,LPWSTR);
+#define                  GetConsoleAlias WINELIB_NAME_AW(GetConsoleAlias)
+WINBASEAPI DWORD WINAPI  GetConsoleAliasesA(LPSTR,DWORD,LPSTR);
+WINBASEAPI DWORD WINAPI  GetConsoleAliasesW(LPWSTR,DWORD,LPWSTR);
+#define                  GetConsoleAliases WINELIB_NAME_AW(GetConsoleAliases)
+WINBASEAPI DWORD WINAPI  GetConsoleAliasesLengthA(LPSTR);
+WINBASEAPI DWORD WINAPI  GetConsoleAliasesLengthW(LPWSTR);
+#define                  GetConsoleAliasesLength WINELIB_NAME_AW(GetConsoleAliasesLength)
+WINBASEAPI DWORD WINAPI  GetConsoleAliasExesA(LPSTR,DWORD);
+WINBASEAPI DWORD WINAPI  GetConsoleAliasExesW(LPWSTR,DWORD);
+#define                  GetConsoleAliasExes WINELIB_NAME_AW(GetConsoleAliasExes)
+WINBASEAPI DWORD WINAPI  GetConsoleAliasExesLengthA(VOID);
+WINBASEAPI DWORD WINAPI  GetConsoleAliasExesLengthW(VOID);
+#define                  GetConsoleAliasExesLength WINELIB_NAME_AW(GetConsoleAliasExesLength)
 WINBASEAPI UINT WINAPI   GetConsoleCP(VOID);
 WINBASEAPI BOOL WINAPI   GetConsoleCursorInfo( HANDLE,LPCONSOLE_CURSOR_INFO);
+WINBASEAPI BOOL WINAPI   GetConsoleDisplayMode(LPDWORD);
+WINBASEAPI COORD WINAPI  GetConsoleFontSize(HANDLE,DWORD);
+WINBASEAPI BOOL WINAPI   GetConsoleHistoryInfo(LPCONSOLE_HISTORY_INFO);
 WINBASEAPI BOOL WINAPI   GetConsoleInputExeNameA(DWORD,LPSTR);
 WINBASEAPI BOOL WINAPI   GetConsoleInputExeNameW(DWORD,LPWSTR);
 #define                  GetConsoleInputExeName WINELIB_NAME_AW(GetConsoleInputExeName)
 WINBASEAPI BOOL WINAPI   GetConsoleMode( HANDLE,LPDWORD);
+WINBASEAPI DWORD WINAPI  GetConsoleOriginalTitleA(LPSTR,DWORD);
+WINBASEAPI DWORD WINAPI  GetConsoleOriginalTitleW(LPWSTR,DWORD);
+#define                  GetConsoleOriginalTitle WINELIB_NAME_AW(GetConsoleOriginalTitle)
 WINBASEAPI UINT WINAPI   GetConsoleOutputCP(VOID);
+WINBASEAPI DWORD WINAPI  GetConsoleProcessList(LPDWORD,DWORD);
 WINBASEAPI BOOL WINAPI   GetConsoleScreenBufferInfo(HANDLE,LPCONSOLE_SCREEN_BUFFER_INFO);
+WINBASEAPI BOOL WINAPI   GetConsoleScreenBufferInfoEx(HANDLE,LPCONSOLE_SCREEN_BUFFER_INFOEX);
 WINBASEAPI DWORD WINAPI  GetConsoleTitleA(LPSTR,DWORD);
 WINBASEAPI DWORD WINAPI  GetConsoleTitleW(LPWSTR,DWORD);
 #define                  GetConsoleTitle WINELIB_NAME_AW(GetConsoleTitle)
 WINBASEAPI HWND WINAPI   GetConsoleWindow(void);
+WINBASEAPI BOOL WINAPI   GetCurrentConsoleFont(HANDLE,BOOL,LPCONSOLE_FONT_INFO);
+WINBASEAPI BOOL WINAPI   GetCurrentConsoleFontEx(HANDLE,BOOL,LPCONSOLE_FONT_INFOEX);
 WINBASEAPI BOOL WINAPI   GetNumberOfConsoleInputEvents( HANDLE,LPDWORD);
 WINBASEAPI BOOL WINAPI   GetNumberOfConsoleMouseButtons(LPDWORD);
 WINBASEAPI BOOL WINAPI   PeekConsoleInputA( HANDLE,PINPUT_RECORD,DWORD,LPDWORD);
@@ -241,14 +361,18 @@ WINBASEAPI BOOL WINAPI   SetConsoleCP(UINT);
 WINBASEAPI BOOL WINAPI   SetConsoleCtrlHandler( PHANDLER_ROUTINE,BOOL);
 WINBASEAPI BOOL WINAPI   SetConsoleCursorInfo( HANDLE,LPCONSOLE_CURSOR_INFO);
 WINBASEAPI BOOL WINAPI   SetConsoleCursorPosition(HANDLE,COORD);
+WINBASEAPI BOOL WINAPI   SetConsoleDisplayMode(HANDLE,DWORD,LPCOORD);
+WINBASEAPI BOOL WINAPI   SetConsoleHistoryInfo(LPCONSOLE_HISTORY_INFO);
 WINBASEAPI BOOL WINAPI   SetConsoleMode( HANDLE,DWORD);
 WINBASEAPI BOOL WINAPI   SetConsoleOutputCP(UINT);
+WINBASEAPI BOOL WINAPI   SetConsoleScreenBufferInfoEx(HANDLE,LPCONSOLE_SCREEN_BUFFER_INFOEX);
 WINBASEAPI BOOL WINAPI   SetConsoleScreenBufferSize(HANDLE,COORD);
 WINBASEAPI BOOL WINAPI   SetConsoleTextAttribute( HANDLE,WORD);
 WINBASEAPI BOOL WINAPI   SetConsoleTitleA(LPCSTR);
 WINBASEAPI BOOL WINAPI   SetConsoleTitleW(LPCWSTR);
 #define                  SetConsoleTitle WINELIB_NAME_AW(SetConsoleTitle)
 WINBASEAPI BOOL WINAPI   SetConsoleWindowInfo( HANDLE,BOOL,LPSMALL_RECT);
+WINBASEAPI BOOL WINAPI   SetCurrentConsoleFontEx(HANDLE,BOOL,LPCONSOLE_FONT_INFOEX);
 WINBASEAPI BOOL WINAPI   WriteConsoleA(HANDLE,CONST VOID *,DWORD,LPDWORD,LPVOID);
 WINBASEAPI BOOL WINAPI   WriteConsoleW(HANDLE,CONST VOID *,DWORD,LPDWORD,LPVOID);
 #define                  WriteConsole WINELIB_NAME_AW(WriteConsole)


More information about the wine-patches mailing list