2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Console Server DLL
4 * FILE: frontends/gui/conwnd.h
5 * PURPOSE: GUI Console Window Class
6 * PROGRAMMERS: Gé van Geldorp
9 * Hermes Belusca-Maito (hermes.belusca@sfr.fr)
14 /* GUI Console Window Class name */
15 #define GUI_CONWND_CLASS L"ConsoleWindowClass"
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)
25 typedef struct _GUI_CONSOLE_DATA
27 CRITICAL_SECTION Lock
;
36 WINDOWPLACEMENT WndPl
;
38 HWND hWindow
; /* Handle to the console's window */
39 HDC hMemDC
; /* Memory DC holding the console framebuffer */
40 HBITMAP hBitmap
; /* Console framebuffer */
41 HPALETTE hSysPalette
; /* Handle to the original system palette */
43 HICON hIcon
; /* Handle to the console's icon (big) */
44 HICON hIconSm
; /* Handle to the console's icon (small) */
46 /*** The following may be put per-screen-buffer !! ***/
47 HCURSOR hCursor
; /* Handle to the mouse cursor */
48 INT MouseCursorRefCount
; /* The reference counter associated with the mouse cursor. >= 0 and the cursor is shown; < 0 and the cursor is hidden. */
49 BOOL IgnoreNextMouseSignal
; /* Used in cases where we don't want to treat a mouse signal */
51 BOOL IsCloseButtonEnabled
; /* TRUE if the Close button and the corresponding system menu item are enabled (default), FALSE otherwise */
52 UINT CmdIdLow
; /* Lowest menu id of the user-reserved menu id range */
53 UINT CmdIdHigh
; /* Highest menu id of the user-reserved menu id range */
55 // COLORREF Colors[16];
57 // PVOID ScreenBuffer; /* Hardware screen buffer */
62 /*****************************************************/
64 PCONSOLE Console
; /* Pointer to the owned console */
65 PCONSOLE_SCREEN_BUFFER ActiveBuffer
; /* Pointer to the active screen buffer (then maybe the previous Console member is redundant?? Or not...) */
66 CONSOLE_SELECTION_INFO Selection
; /* Contains information about the selection */
67 COORD dwSelectionCursor
; /* Selection cursor position, most of the time different from Selection.dwSelectionAnchor */
68 BOOL LineSelection
; /* TRUE if line-oriented selection (a la *nix terminals), FALSE if block-oriented selection (default on Windows) */
70 GUI_CONSOLE_INFO GuiInfo
; /* GUI terminal settings */
71 } GUI_CONSOLE_DATA
, *PGUI_CONSOLE_DATA
;