ReactOS  0.4.14-dev-49-gfb4591c
conwnd.h
Go to the documentation of this file.
1 /*
2  * COPYRIGHT: See COPYING in the top level directory
3  * PROJECT: ReactOS Console Server DLL
4  * FILE: win32ss/user/winsrv/consrv/frontends/gui/conwnd.h
5  * PURPOSE: GUI Console Window Class
6  * PROGRAMMERS: Gé van Geldorp
7  * Johannes Anderwald
8  * Jeffrey Morlan
9  * Hermes Belusca-Maito (hermes.belusca@sfr.fr)
10  */
11 
12 #pragma once
13 
14 /* GUI Console Window Class name */
15 #define GUI_CONWND_CLASS L"ConsoleWindowClass"
16 
17 #ifndef WM_APP
18  #define WM_APP 0x8000
19 #endif
20 #define PM_RESIZE_TERMINAL (WM_APP + 3)
21 #define PM_CONSOLE_BEEP (WM_APP + 4)
22 #define PM_CONSOLE_SET_TITLE (WM_APP + 5)
23 
24 /* Flags for GetKeyState */
25 #define KEY_TOGGLED 0x0001
26 #define KEY_PRESSED 0x8000
27 
28 /*
29 typedef struct _CONSOLE_FONT
30 {
31  HFONT Font;
32  ULONG Flag;
33 } CONSOLE_FONT, *PCONSOLE_FONT;
34 */
35 #define FONT_NORMAL 0x00
36 #define FONT_BOLD 0x01
37 #define FONT_UNDERLINE 0x02
38 #define FONT_MAXNO 0x04
39 
40 typedef struct _GUI_CONSOLE_DATA
41 {
46 
47  // HANDLE InputThreadHandle;
49  HWINSTA WinSta;
50  HDESK Desktop;
51 
53 
55 
60 
61  HWND hWindow; /* Handle to the console's window */
62  HDC hMemDC; /* Memory DC holding the console framebuffer */
63  HBITMAP hBitmap; /* Console framebuffer */
64  HPALETTE hSysPalette; /* Handle to the original system palette */
65 
66  HICON hIcon; /* Handle to the console's icon (big) */
67  HICON hIconSm; /* Handle to the console's icon (small) */
68 
69 /*** The following may be put per-screen-buffer !! ***/
70  HCURSOR hCursor; /* Handle to the mouse cursor */
71  INT MouseCursorRefCount; /* The reference counter associated with the mouse cursor. >= 0 and the cursor is shown; < 0 and the cursor is hidden. */
72  BOOL IgnoreNextMouseSignal; /* Used when we need to not process a mouse signal */
73 
74  BOOL HackCORE8394IgnoreNextMove; /* HACK FOR CORE-8394. See conwnd.c!OnMouse for more details. */
75 
76  HMENU hSysMenu; /* Handle to the console window system menu */
77  BOOL IsCloseButtonEnabled; /* TRUE if the Close button and the corresponding system menu item are enabled (default), FALSE otherwise */
78  UINT CmdIdLow ; /* Lowest menu id of the user-reserved menu id range */
79  UINT CmdIdHigh; /* Highest menu id of the user-reserved menu id range */
80 
81 // COLORREF Colors[16];
82 
83 // PVOID ScreenBuffer; /* Hardware screen buffer */
84 
86  UINT CharWidth; /* The character width and height should be the same for */
87  UINT CharHeight; /* both normal and bold/underlined fonts... */
88 /*****************************************************/
89 
90  PCONSRV_CONSOLE Console; /* Pointer to the owned console */
91  PCONSOLE_SCREEN_BUFFER ActiveBuffer; /* Pointer to the active screen buffer (then maybe the previous Console member is redundant?? Or not...) */
92  CONSOLE_SELECTION_INFO Selection; /* Contains information about the selection */
93  COORD dwSelectionCursor; /* Selection cursor position, most of the time different from Selection.dwSelectionAnchor */
94  BOOL LineSelection; /* TRUE if line-oriented selection (a la *nix terminals), FALSE if block-oriented selection (default on Windows) */
95 
96  GUI_CONSOLE_INFO GuiInfo; /* GUI terminal settings */
COORD dwSelectionCursor
Definition: conwnd.h:93
HANDLE hGuiTermEvent
Definition: conwnd.h:45
static HICON
Definition: imagelist.c:84
INT MouseCursorRefCount
Definition: conwnd.h:71
HANDLE hGuiInitEvent
Definition: conwnd.h:44
BOOL IsCloseButtonEnabled
Definition: conwnd.h:77
HWINSTA WinSta
Definition: conwnd.h:49
struct _GUI_CONSOLE_DATA * PGUI_CONSOLE_DATA
#define FONT_MAXNO
Definition: conwnd.h:38
static HDC
Definition: imagelist.c:92
LONG_PTR WndStyle
Definition: conwnd.h:56
BOOL IgnoreNextMouseSignal
Definition: conwnd.h:72
CONSOLE_SELECTION_INFO Selection
Definition: conwnd.h:92
HICON HCURSOR
Definition: windef.h:284
#define PCONSRV_CONSOLE
Definition: conio.h:27
int32_t INT
Definition: typedefs.h:56
uint32_t ULONG_PTR
Definition: typedefs.h:63
BOOL WindowSizeLock
Definition: conwnd.h:43
UINT CharHeight
Definition: conwnd.h:87
HDESK Desktop
Definition: conwnd.h:50
BOOL HackCORE8394IgnoreNextMove
Definition: conwnd.h:74
unsigned int BOOL
Definition: ntddk_ex.h:94
HICON hIconSm
Definition: conwnd.h:67
PCONSOLE_SCREEN_BUFFER ActiveBuffer
Definition: conwnd.h:91
unsigned char BOOLEAN
LONG_PTR WndStyleEx
Definition: conwnd.h:57
HMENU hSysMenu
Definition: conwnd.h:76
BOOL LineSelection
Definition: conwnd.h:94
struct _GUI_CONSOLE_DATA GUI_CONSOLE_DATA
POINT OldCursor
Definition: conwnd.h:54
WINDOWPLACEMENT WndPl
Definition: conwnd.h:59
UINT CmdIdHigh
Definition: conwnd.h:79
CRITICAL_SECTION Lock
Definition: conwnd.h:42
BOOLEAN IsWindowVisible
Definition: conwnd.h:52
Definition: bl.h:1338
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
unsigned int UINT
Definition: ndis.h:50
UINT CharWidth
Definition: conwnd.h:86
HCURSOR hCursor
Definition: conwnd.h:70
GUI_CONSOLE_INFO GuiInfo
Definition: conwnd.h:96
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
HPALETTE hSysPalette
Definition: conwnd.h:64
PCONSRV_CONSOLE Console
Definition: conwnd.h:90
static HBITMAP
Definition: button.c:44
HBITMAP hBitmap
Definition: conwnd.h:63
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60
ULONG_PTR InputThreadId
Definition: conwnd.h:48