ReactOS 0.4.17-dev-1183-g3b30a2a
CConsoleWnd.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Management Console
3 * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4 * PURPOSE: Single 'console' window
5 * COPYRIGHT: Copyright 2006-2007 Thomas Weidenmueller
6 * Copyright 2017 Mark Jansen (mark.jansen@reactos.org)
7 * Copyright 2026 Eric Kohl (eric.kohl@reactos.org)
8 */
9
10#pragma once
11
12class CMainWnd;
13
14typedef enum
15{
20
22 public CWindowImpl<CConsoleWnd>,
23 public IConsole2,
25{
26private:
43
45
47
50
51public:
53
65
74
75
76 static CWndClassInfo& GetWndClassInfo()
77 {
78 static CWndClassInfo wc =
79 {
80 {
81 /* cbSize= */sizeof(WNDCLASSEX),
82 /* style= */CS_HREDRAW | CS_VREDRAW,
83 /* lpfnWndProc= */StartWindowProc,
84 /* cbClsExtra= */0,
85 /* cbWndExtra= */sizeof(CConsoleWnd*),
86 /* hInstance= */NULL,
87 /* hIcon= */LoadIcon(_AtlBaseModule.GetModuleInstance(), MAKEINTRESOURCE(IDI_MAINAPP)),
88 /* hCursor= */NULL,
89 /* hbrBackground= */(HBRUSH)(COLOR_3DFACE + 1),
90 /* lpszMenuName= */NULL,
91 /* lpszClassName= */L"MMCChildFrm",
92 /* hIconSm= */LoadIcon(_AtlBaseModule.GetModuleInstance(), MAKEINTRESOURCE(IDI_MAINAPP))
93 },
94 NULL, NULL, IDC_SIZEWE, TRUE, 0, L""
95 };
96 return wc;
97 }
98
100 {
101 return GetWndClassInfo().m_wc.lpszClassName;
102 }
103
104private:
108 static HRESULT ParseViewAttributes(MscFile *mscFile, IXMLDOMElement *pViewElement, UINT *puViewID,
109 INT *piScopePanelWidth, INT *piActionsPanelWidth);
110
111public:
112 CConsoleWnd(CMainWnd *MainWnd, CSnapin *RootNode, CSnapin *SelectedNode = NULL);
113 ~CConsoleWnd();
114
115 LRESULT OnCreate(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
116 LRESULT OnDestroy(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
117 LRESULT OnSize(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
118 LRESULT OnLButtonDown(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
119 LRESULT OnLButtonUp(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
120 LRESULT OnMouseMove(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
121 LRESULT OnContextMenu(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
122 LRESULT OnDrawItem(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
123 LRESULT OnNotify(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
124 LRESULT OnActivate(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
125
126 LRESULT OnActionNewWindow(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
127 LRESULT OnActionRename(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
128 LRESULT OnViewMode(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
129 LRESULT OnViewCustomize(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
130
132 VOID SetTreeViewVisible(BOOL bVisible);
134 VOID SetStatusBarVisible(BOOL bVisible);
139
141 VOID SetStatusBarText(LPWSTR pszStatusText);
143
145 VOID SetListViewMode(LISTVIEW_MODE ListViewMode);
146
147 VOID SaveView(MscFile *mscFile, IXMLDOMElement *pParentElement);
148 static HRESULT ParseView(CMainWnd *pMainWnd, MscFile *mscFile, IXMLDOMElement *pViewElement);
149
150 // +IConsole
151 STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject);
154
161 STDMETHODIMP MessageBox(LPCWSTR lpszText, LPCWSTR lpszTitle, UINT fuStyle, int *piRetval);
165 STDMETHODIMP NewWindow(HSCOPEITEM hScopeItem, ULONG lOptions);
166 // -IConsole
167
168 // +IConsole2
171 STDMETHODIMP SetStatusText(LPOLESTR pszStatusText);
172 // -IConsole2
173
174 // +IConsoleNameSpace
179 STDMETHODIMP GetChildItem(HSCOPEITEM item, HSCOPEITEM *pItemChild, LONG *plCookie);
180 STDMETHODIMP GetNextItem(HSCOPEITEM item, HSCOPEITEM *pItemNext, LONG *plCookie);
181 STDMETHODIMP GetParentItem(HSCOPEITEM item, HSCOPEITEM *pItemParent, LONG *plCookie);
182 // -IConsoleNameSpace
183
184 // +IConsoleNameSpace2
187 // -IConsoleNameSpace2
188};
189
SPLITTER_SIDE
Definition: CConsoleWnd.h:15
@ SPLITTER_LEFT
Definition: CConsoleWnd.h:17
@ SPLITTER_NONE
Definition: CConsoleWnd.h:16
@ SPLITTER_RIGHT
Definition: CConsoleWnd.h:18
#define IDI_MAINAPP
Definition: resource.h:6
enum _LISTVIEW_MODE LISTVIEW_MODE
#define IDM_VIEW_LARGE_ICONS
Definition: resource.h:45
#define IDM_VIEW_LIST
Definition: resource.h:47
#define IDM_ACTION_NEW
Definition: resource.h:40
#define IDM_VIEW_CUSTOMIZE
Definition: resource.h:49
#define IDM_ACTION_RENAME
Definition: resource.h:41
#define IDM_VIEW_DETAILS
Definition: resource.h:48
#define IDM_VIEW_SMALL_ICONS
Definition: resource.h:46
#define STDMETHODIMP
Definition: basetyps.h:43
LRESULT OnActionNewWindow(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
STDMETHODIMP GetParentItem(HSCOPEITEM item, HSCOPEITEM *pItemParent, LONG *plCookie)
static HRESULT ParseViewAttributes(MscFile *mscFile, IXMLDOMElement *pViewElement, UINT *puViewID, INT *piScopePanelWidth, INT *piActionsPanelWidth)
LRESULT OnLButtonDown(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
VOID AddTreeViewItemRecursive(HTREEITEM hParentTreeItem, CSnapin *Node)
LISTVIEW_MODE m_ListViewMode
Definition: CConsoleWnd.h:46
CSnapin * m_ViewRootNode
Definition: CConsoleWnd.h:48
STDMETHODIMP AddExtension(HSCOPEITEM hItem, LPCLSID lpClsid)
LRESULT OnViewMode(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
UINT m_ViewId
Definition: CConsoleWnd.h:52
LRESULT OnMouseMove(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
int m_iActionsPaneWidth
Definition: CConsoleWnd.h:34
BOOL m_bTreeViewVisible
Definition: CConsoleWnd.h:39
LRESULT OnDrawItem(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
STDMETHODIMP UpdateAllViews(LPDATAOBJECT lpDataObject, LPARAM data, LONG_PTR hint)
STDMETHODIMP QueryResultImageList(LPIMAGELIST *ppImageList)
BOOL m_bStatusBarVisible
Definition: CConsoleWnd.h:41
int m_iSplitterWidth
Definition: CConsoleWnd.h:35
STDMETHODIMP InsertItem(LPSCOPEDATAITEM item)
LRESULT OnCreate(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CConsoleWnd.cpp:42
STDMETHODIMP Expand(HSCOPEITEM hItem, BOOL bExpand)
CTreeView m_TreeView
Definition: CConsoleWnd.h:28
LRESULT OnActivate(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
STDMETHODIMP SetStatusText(LPOLESTR pszStatusText)
static CWndClassInfo & GetWndClassInfo()
Definition: CConsoleWnd.h:76
VOID SetStatusBarText(LPWSTR pszStatusText)
VOID UpdateView()
VOID SetStatusBarVisible(BOOL bVisible)
LRESULT OnNotify(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LISTVIEW_MODE GetListViewMode()
static HRESULT ParseView(CMainWnd *pMainWnd, MscFile *mscFile, IXMLDOMElement *pViewElement)
VOID SetListViewMode(LISTVIEW_MODE ListViewMode)
int m_iSplitOffset
Definition: CConsoleWnd.h:36
CMainWnd * m_MainWnd
Definition: CConsoleWnd.h:27
STDMETHODIMP_(ULONG) Release()
SPLITTER_SIDE m_iSplitSide
Definition: CConsoleWnd.h:37
STDMETHODIMP GetMainWindow(HWND *phwnd)
BOOL IsDescriptionBarVisible()
CListView m_ListView
Definition: CConsoleWnd.h:29
CActionWnd m_ActionsPane
Definition: CConsoleWnd.h:32
BOOL m_bActionsPaneVisible
Definition: CConsoleWnd.h:40
CSnapin * m_ViewSelectedNode
Definition: CConsoleWnd.h:49
STDMETHODIMP GetItem(LPSCOPEDATAITEM item)
STDMETHODIMP GetChildItem(HSCOPEITEM item, HSCOPEITEM *pItemChild, LONG *plCookie)
LRESULT OnContextMenu(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnLButtonUp(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
BOOL m_bDescriptionBarVisible
Definition: CConsoleWnd.h:42
STDMETHODIMP SetHeader(LPHEADERCTRL pHeader)
STDMETHODIMP GetNextItem(HSCOPEITEM item, HSCOPEITEM *pItemNext, LONG *plCookie)
VOID SaveView(MscFile *mscFile, IXMLDOMElement *pParentElement)
VOID SetDescriptionBarVisible(BOOL bVisible)
int m_iTreeViewWidth
Definition: CConsoleWnd.h:33
BOOL IsTreeViewVisible()
STDMETHODIMP QueryScopeImageList(LPIMAGELIST *ppImageList)
CWindow m_DescriptionBar
Definition: CConsoleWnd.h:31
STDMETHODIMP SelectScopeItem(HSCOPEITEM hScopeItem)
LRESULT OnDestroy(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CConsoleWnd.cpp:96
LRESULT OnViewCustomize(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
VOID UpdateTreeView()
STDMETHODIMP QueryConsoleVerb(LPCONSOLEVERB *ppConsoleVerb)
CStatusBar m_StatusBar
Definition: CConsoleWnd.h:30
int m_iStatusBarHeight
Definition: CConsoleWnd.h:38
VOID SelectParent()
LRESULT OnSize(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
STDMETHODIMP IsTaskpadViewPreferred()
STDMETHODIMP NewWindow(HSCOPEITEM hScopeItem, ULONG lOptions)
BOOL IsStatusBarVisible()
static LPCWSTR GetWndClassName()
Definition: CConsoleWnd.h:99
STDMETHODIMP SetToolbar(LPTOOLBAR pToolbar)
STDMETHODIMP QueryResultView(LPUNKNOWN *pUnknown)
LRESULT OnActionRename(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
STDMETHODIMP_(ULONG) AddRef()
STDMETHODIMP SetItem(LPSCOPEDATAITEM item)
HMENU m_hMenuTreeView
Definition: CConsoleWnd.h:44
VOID SetActionsPaneVisible(BOOL bVisible)
VOID SetTreeViewVisible(BOOL bVisible)
VOID UpdateLayout()
BOOL IsActionsPaneVisible()
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
_Check_return_ _In_ PQUERY_INTERFACE QueryInterface
Definition: dispmprt.h:1318
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define L(x)
Definition: resources.c:13
_In_ PUNKNOWN pUnknown
Definition: drmk.h:76
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned int BOOL
Definition: ntddk_ex.h:94
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
unsigned int UINT
Definition: sysinfo.c:13
FxContextHeader * pHeader
Definition: handleapi.cpp:604
REFIID riid
Definition: atlbase.h:39
ULONG AddRef()
ULONG Release()
#define MESSAGE_HANDLER(msg, func)
Definition: atlwin.h:1926
#define BEGIN_MSG_MAP(theClass)
Definition: atlwin.h:1898
#define COMMAND_ID_HANDLER(id, func)
Definition: atlwin.h:1953
#define END_MSG_MAP()
Definition: atlwin.h:1917
PCONFIGURATION_COMPONENT_DATA RootNode
Definition: macharm.c:19
LONG_PTR LPARAM
Definition: minwindef.h:175
LONG_PTR LRESULT
Definition: minwindef.h:176
UINT_PTR WPARAM
Definition: minwindef.h:174
LONG_PTR HSCOPEITEM
Definition: mmc.idl:115
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define MAKEINTRESOURCE(i)
Definition: ntverrsrc.c:25
interface IDataObject * LPDATAOBJECT
Definition: objfwd.h:21
long LONG
Definition: pedump.c:60
#define REFIID
Definition: guiddef.h:118
#define CS_VREDRAW
Definition: winuser.h:666
#define WM_CREATE
Definition: winuser.h:1636
#define WM_SIZE
Definition: winuser.h:1639
#define CS_HREDRAW
Definition: winuser.h:661
#define WM_MOUSEMOVE
Definition: winuser.h:1803
#define WM_LBUTTONDOWN
Definition: winuser.h:1804
#define WM_DRAWITEM
Definition: winuser.h:1673
#define WM_ACTIVATE
Definition: winuser.h:1640
#define LoadIcon
Definition: winuser.h:5979
WNDCLASSEXA WNDCLASSEX
Definition: winuser.h:5885
#define WM_LBUTTONUP
Definition: winuser.h:1805
#define MessageBox
Definition: winuser.h:5988
#define WM_DESTROY
Definition: winuser.h:1637
#define IDC_SIZEWE
Definition: winuser.h:702
#define COLOR_3DFACE
Definition: winuser.h:940
#define WM_CONTEXTMENU
Definition: richedit.h:64
#define WM_NOTIFY
Definition: richedit.h:61
const uint16_t * LPCWSTR
Definition: typedefs.h:57
uint16_t * LPWSTR
Definition: typedefs.h:56
int32_t INT
Definition: typedefs.h:58
uint32_t ULONG
Definition: typedefs.h:59
Definition: dlist.c:348
#define DeleteItem
Definition: userenv.h:210
DWORD hint
Definition: vfdcmd.c:88