ReactOS 0.4.15-dev-7942-gd23573b
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/*
29typedef 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
40typedef struct _GUI_CONSOLE_DATA
41{
46
47 // HANDLE InputThreadHandle;
49 HWINSTA WinSta;
50 HDESK Desktop;
51
54
56
61
62 HWND hWindow; /* Handle to the console's window */
63 HDC hMemDC; /* Memory DC holding the console framebuffer */
64 HBITMAP hBitmap; /* Console framebuffer */
65 HPALETTE hSysPalette; /* Handle to the original system palette */
66
67 HICON hIcon; /* Handle to the console's icon (big) */
68 HICON hIconSm; /* Handle to the console's icon (small) */
69
70/*** The following may be put per-screen-buffer !! ***/
71 HCURSOR hCursor; /* Handle to the mouse cursor */
72 INT MouseCursorRefCount; /* The reference counter associated with the mouse cursor. >= 0 and the cursor is shown; < 0 and the cursor is hidden. */
73 BOOL IgnoreNextMouseEvent; /* Used when we need to not process a mouse event */
74
75 BOOL HackCORE8394IgnoreNextMove; /* HACK FOR CORE-8394. See conwnd.c!OnMouse for more details. */
76
77 HMENU hSysMenu; /* Handle to the console window system menu */
78 BOOL IsCloseButtonEnabled; /* TRUE if the Close button and the corresponding system menu item are enabled (default), FALSE otherwise */
79 UINT CmdIdLow ; /* Lowest menu id of the user-reserved menu id range */
80 UINT CmdIdHigh; /* Highest menu id of the user-reserved menu id range */
81
82// COLORREF Colors[16];
83
84// PVOID ScreenBuffer; /* Hardware screen buffer */
85
87 UINT CharWidth; /* The character width and height should be the same for */
88 UINT CharHeight; /* both normal and bold/underlined fonts... */
89/*****************************************************/
90
91 PCONSRV_CONSOLE Console; /* Pointer to the owned console */
92 PCONSOLE_SCREEN_BUFFER ActiveBuffer; /* Pointer to the active screen buffer (then maybe the previous Console member is redundant?? Or not...) */
93 CONSOLE_SELECTION_INFO Selection; /* Contains information about the selection */
94 COORD dwSelectionCursor; /* Selection cursor position, most of the time different from Selection.dwSelectionAnchor */
95 BOOL LineSelection; /* TRUE if line-oriented selection (a la *nix terminals), FALSE if block-oriented selection (default on Windows) */
96
97 GUI_CONSOLE_INFO GuiInfo; /* GUI terminal settings */
unsigned char BOOLEAN
struct _GUI_CONSOLE_DATA * PGUI_CONSOLE_DATA
#define FONT_MAXNO
Definition: conwnd.h:38
struct _GUI_CONSOLE_DATA GUI_CONSOLE_DATA
unsigned int BOOL
Definition: ntddk_ex.h:94
static HBITMAP
Definition: button.c:44
static HDC
Definition: imagelist.c:92
static HICON
Definition: imagelist.c:84
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:63
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
unsigned int UINT
Definition: ndis.h:50
Definition: bl.h:1338
HMENU hSysMenu
Definition: conwnd.h:77
LONG_PTR WndStyleEx
Definition: conwnd.h:58
WINDOWPLACEMENT WndPl
Definition: conwnd.h:60
UINT CmdIdHigh
Definition: conwnd.h:80
PCONSOLE_SCREEN_BUFFER ActiveBuffer
Definition: conwnd.h:92
HWINSTA WinSta
Definition: conwnd.h:49
HDESK Desktop
Definition: conwnd.h:50
BOOLEAN IsWindowActive
Definition: conwnd.h:53
CONSOLE_SELECTION_INFO Selection
Definition: conwnd.h:93
HANDLE hGuiInitEvent
Definition: conwnd.h:44
BOOLEAN IsWindowVisible
Definition: conwnd.h:52
BOOL IsCloseButtonEnabled
Definition: conwnd.h:78
HANDLE hGuiTermEvent
Definition: conwnd.h:45
BOOL WindowSizeLock
Definition: conwnd.h:43
BOOL LineSelection
Definition: conwnd.h:95
BOOL HackCORE8394IgnoreNextMove
Definition: conwnd.h:75
BOOL IgnoreNextMouseEvent
Definition: conwnd.h:73
PCONSRV_CONSOLE Console
Definition: conwnd.h:91
HCURSOR hCursor
Definition: conwnd.h:71
CRITICAL_SECTION Lock
Definition: conwnd.h:42
UINT CharWidth
Definition: conwnd.h:87
ULONG_PTR InputThreadId
Definition: conwnd.h:48
POINT OldCursor
Definition: conwnd.h:55
GUI_CONSOLE_INFO GuiInfo
Definition: conwnd.h:97
HBITMAP hBitmap
Definition: conwnd.h:64
LONG_PTR WndStyle
Definition: conwnd.h:57
HICON hIconSm
Definition: conwnd.h:68
HPALETTE hSysPalette
Definition: conwnd.h:65
UINT CharHeight
Definition: conwnd.h:88
INT MouseCursorRefCount
Definition: conwnd.h:72
COORD dwSelectionCursor
Definition: conwnd.h:94
int32_t INT
Definition: typedefs.h:58
uint32_t ULONG_PTR
Definition: typedefs.h:65
HICON HCURSOR
Definition: windef.h:299