ReactOS 0.4.17-dev-784-g3812a95
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 */
8
9#pragma once
10
12 public CWindowImpl<CConsoleWnd>,
13 public IConsole2,
15{
16private:
17 CWindow* m_MainWnd;
18
19public:
20 CAtlString m_Filename;
21
22 //CComPtr<CImageList> m_ScopeImageList;
23
24public:
25
30
31
32 static CWndClassInfo& GetWndClassInfo()
33 {
34 static CWndClassInfo wc =
35 {
36 {
37 /* cbSize= */sizeof(WNDCLASSEX),
38 /* style= */CS_HREDRAW | CS_VREDRAW,
39 /* lpfnWndProc= */StartWindowProc,
40 /* cbClsExtra= */0,
41 /* cbWndExtra= */sizeof(CConsoleWnd*),
42 /* hInstance= */NULL,
43 /* hIcon= */LoadIcon(_AtlBaseModule.GetModuleInstance(), MAKEINTRESOURCE(IDI_MAINAPP)),
44 /* hCursor= */NULL,
45 /* hbrBackground= */(HBRUSH)(COLOR_3DFACE + 1),
46 /* lpszMenuName= */NULL,
47 /* lpszClassName= */L"MMCChildFrm",
48 /* hIconSm= */LoadIcon(_AtlBaseModule.GetModuleInstance(), MAKEINTRESOURCE(IDI_MAINAPP))
49 },
50 NULL, NULL, IDC_ARROW, TRUE, 0, _T("")
51 };
52 return wc;
53 }
54
55
57 {
58 return GetWndClassInfo().m_wc.lpszClassName;
59 }
60
61public:
63 {
65 m_pfnSuperWindowProc = DefMDIChildProc;
66
67 //m_ScopeImageList = new CComObject<CImageList>();
68
69 if (!m_thunk.Init(NULL, NULL))
70 return;
71 _AtlWinModule.AddCreateWndData(&m_thunk.cd, this);
72 }
73
75 {
76 SetWindowLongPtr(0, (LONG_PTR)this);
77
78 LPMDICREATESTRUCT mdicreate = reinterpret_cast<LPMDICREATESTRUCT>(reinterpret_cast<LPCREATESTRUCT>(lParam)->lpCreateParams);
79 if (mdicreate->lParam)
81
82 return 0;
83 }
84
86 {
87 m_MainWnd->PostMessage(WM_USER_CLOSE_CHILD, 0, 0);
88 return 0;
89 }
90
91
92 // +IConsole
94 {
95 if (riid == IID_IUnknown || riid == IID_IConsole)
96 {
97 *ppvObject = static_cast<IConsole*>(this);
98 AddRef();
99 return S_OK;
100 }
101 else if (riid == IID_IConsole2)
102 {
103 *ppvObject = static_cast<IConsole2*>(this);
104 AddRef();
105 return S_OK;
106 }
107 else if (riid == IID_IConsoleNameSpace)
108 {
109 *ppvObject = static_cast<IConsoleNameSpace*>(this);
110 AddRef();
111 return S_OK;
112 }
113 else if (riid == IID_IConsoleNameSpace2)
114 {
115 *ppvObject = static_cast<IConsoleNameSpace2*>(this);
116 AddRef();
117 return S_OK;
118 }
119 else
120 {
121 CComHeapPtr<OLECHAR> guidstr;
122 HRESULT hr = StringFromCLSID(riid, &guidstr);
123 if (SUCCEEDED(hr))
124 DPRINT1("Unhandled riid: %S\n", (PCWSTR)guidstr);
125 else
126 DPRINT1("Unhandled riid\n");
127 }
128
129
130 *ppvObject = NULL;
131 return E_NOINTERFACE;
132 }
133
135 {
136 DPRINT("%s()\n", __FUNCTION__);
137 return 2;
138 }
139
141 {
142 DPRINT("%s()\n", __FUNCTION__);
143 return 1;
144 }
145
146
148 {
149 DPRINT("%s()\n", __FUNCTION__);
150 __debugbreak();
151 return E_NOTIMPL;
152 }
153
155 {
156 DPRINT("%s()\n", __FUNCTION__);
157 __debugbreak();
158 return E_NOTIMPL;
159 }
160
162 {
163 DPRINT("%s()\n", __FUNCTION__);
164 __debugbreak();
165 return E_NOTIMPL;
166 }
167
169 {
170 DPRINT("%s(%p)\n", __FUNCTION__);
171 if (!ppImageList)
172 return E_INVALIDARG;
173
174 __debugbreak();
175 //*ppImageList = m_ScopeImageList;
176 return S_OK;
177 }
178
180 {
181 DPRINT("%s()\n", __FUNCTION__);
182 __debugbreak();
183 return E_NOTIMPL;
184 }
185
187 {
188 DPRINT("%s()\n", __FUNCTION__);
189 __debugbreak();
190 return E_NOTIMPL;
191 }
192
193 STDMETHODIMP MessageBox(LPCWSTR lpszText, LPCWSTR lpszTitle, UINT fuStyle, int *piRetval)
194 {
195 DPRINT("%s()\n", __FUNCTION__);
196 __debugbreak();
197 return E_NOTIMPL;
198 }
199
201 {
202 DPRINT("%s()\n", __FUNCTION__);
203 __debugbreak();
204 return E_NOTIMPL;
205 }
206
208 {
209 DPRINT("%s()\n", __FUNCTION__);
210 __debugbreak();
211 return E_NOTIMPL;
212 }
213
215 {
216 DPRINT("%s()\n", __FUNCTION__);
217 __debugbreak();
218 return E_NOTIMPL;
219 }
220
222 {
223 DPRINT("%s()\n", __FUNCTION__);
224 __debugbreak();
225 return E_NOTIMPL;
226 }
227 // -IConsole
228
229 // +IConsole2
231 {
232 DPRINT("%s()\n", __FUNCTION__);
233 __debugbreak();
234 return E_NOTIMPL;
235 }
236
238 {
239 DPRINT("%s()\n", __FUNCTION__);
240 __debugbreak();
241 return E_NOTIMPL;
242 }
243
244
245 STDMETHODIMP SetStatusText(LPOLESTR pszStatusText)
246 {
247 DPRINT("%s()\n", __FUNCTION__);
248 __debugbreak();
249 return E_NOTIMPL;
250 }
251 // -IConsole2
252
253 // +IConsoleNameSpace
255 {
256 DPRINT("%s()\n", __FUNCTION__);
257 __debugbreak();
258 return E_NOTIMPL;
259 }
260
262 {
263 DPRINT("%s()\n", __FUNCTION__);
264 __debugbreak();
265 return E_NOTIMPL;
266 }
267
269 {
270 DPRINT("%s()\n", __FUNCTION__);
271 __debugbreak();
272 return E_NOTIMPL;
273 }
274
276 {
277 DPRINT("%s()\n", __FUNCTION__);
278 __debugbreak();
279 return E_NOTIMPL;
280 }
281
283 {
284 DPRINT("%s()\n", __FUNCTION__);
285 __debugbreak();
286 return E_NOTIMPL;
287 }
288
290 {
291 DPRINT("%s()\n", __FUNCTION__);
292 __debugbreak();
293 return E_NOTIMPL;
294 }
295
297 {
298 DPRINT("%s()\n", __FUNCTION__);
299 __debugbreak();
300 return E_NOTIMPL;
301 }
302 // -IConsoleNameSpace
303
304
305
306 // +IConsoleNameSpace2
308 {
309 DPRINT("%s()\n", __FUNCTION__);
310 __debugbreak();
311 return E_NOTIMPL;
312 }
313
315 {
316 DPRINT("%s()\n", __FUNCTION__);
317 __debugbreak();
318 return E_NOTIMPL;
319 }
320 // -IConsoleNameSpace2
321
322
323};
324
#define WM_USER_CLOSE_CHILD
Definition: precomp.h:14
#define IDI_MAINAPP
Definition: resource.h:6
#define DPRINT1
Definition: precomp.h:8
#define STDMETHODIMP
Definition: basetyps.h:43
const GUID IID_IUnknown
STDMETHODIMP GetParentItem(HSCOPEITEM item, HSCOPEITEM *pItemParent, LONG *plCookie)
Definition: CConsoleWnd.h:296
STDMETHODIMP AddExtension(HSCOPEITEM hItem, LPCLSID lpClsid)
Definition: CConsoleWnd.h:314
CAtlString m_Filename
Definition: CConsoleWnd.h:20
static LPCTSTR GetWndClassName()
Definition: CConsoleWnd.h:56
STDMETHODIMP UpdateAllViews(LPDATAOBJECT lpDataObject, LPARAM data, LONG_PTR hint)
Definition: CConsoleWnd.h:186
STDMETHODIMP QueryResultImageList(LPIMAGELIST *ppImageList)
Definition: CConsoleWnd.h:179
STDMETHODIMP DeleteItem(HSCOPEITEM hItem, LONG fDeleteThis)
Definition: CConsoleWnd.h:261
STDMETHODIMP InsertItem(LPSCOPEDATAITEM item)
Definition: CConsoleWnd.h:254
LRESULT OnCreate(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CConsoleWnd.h:74
STDMETHODIMP Expand(HSCOPEITEM hItem, BOOL bExpand)
Definition: CConsoleWnd.h:230
STDMETHODIMP SetStatusText(LPOLESTR pszStatusText)
Definition: CConsoleWnd.h:245
static CWndClassInfo & GetWndClassInfo()
Definition: CConsoleWnd.h:32
STDMETHODIMP MessageBox(LPCWSTR lpszText, LPCWSTR lpszTitle, UINT fuStyle, int *piRetval)
Definition: CConsoleWnd.h:193
STDMETHODIMP_(ULONG) Release()
Definition: CConsoleWnd.h:140
STDMETHODIMP GetMainWindow(HWND *phwnd)
Definition: CConsoleWnd.h:214
STDMETHODIMP GetItem(LPSCOPEDATAITEM item)
Definition: CConsoleWnd.h:275
STDMETHODIMP GetChildItem(HSCOPEITEM item, HSCOPEITEM *pItemChild, LONG *plCookie)
Definition: CConsoleWnd.h:282
STDMETHODIMP SetHeader(LPHEADERCTRL pHeader)
Definition: CConsoleWnd.h:147
STDMETHODIMP GetNextItem(HSCOPEITEM item, HSCOPEITEM *pItemNext, LONG *plCookie)
Definition: CConsoleWnd.h:289
STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject)
Definition: CConsoleWnd.h:93
STDMETHODIMP Expand(HSCOPEITEM hItem)
Definition: CConsoleWnd.h:307
STDMETHODIMP QueryScopeImageList(LPIMAGELIST *ppImageList)
Definition: CConsoleWnd.h:168
STDMETHODIMP SelectScopeItem(HSCOPEITEM hScopeItem)
Definition: CConsoleWnd.h:207
LRESULT OnDestroy(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CConsoleWnd.h:85
CConsoleWnd(CWindow *parent)
Definition: CConsoleWnd.h:62
STDMETHODIMP QueryConsoleVerb(LPCONSOLEVERB *ppConsoleVerb)
Definition: CConsoleWnd.h:200
CWindow * m_MainWnd
Definition: CConsoleWnd.h:17
STDMETHODIMP IsTaskpadViewPreferred()
Definition: CConsoleWnd.h:237
STDMETHODIMP NewWindow(HSCOPEITEM hScopeItem, ULONG lOptions)
Definition: CConsoleWnd.h:221
STDMETHODIMP SetToolbar(LPTOOLBAR pToolbar)
Definition: CConsoleWnd.h:154
STDMETHODIMP QueryResultView(LPUNKNOWN *pUnknown)
Definition: CConsoleWnd.h:161
STDMETHODIMP_(ULONG) AddRef()
Definition: CConsoleWnd.h:134
STDMETHODIMP SetItem(LPSCOPEDATAITEM item)
Definition: CConsoleWnd.h:268
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define E_INVALIDARG
Definition: ddrawi.h:101
#define E_NOTIMPL
Definition: ddrawi.h:99
HRESULT hr
Definition: delayimp.cpp:582
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
HRESULT WINAPI StringFromCLSID(REFCLSID clsid, LPOLESTR *str)
Definition: combase.c:1515
#define L(x)
Definition: resources.c:13
r parent
Definition: btrfs.c:3010
#define __FUNCTION__
Definition: types.h:116
_In_ PUNKNOWN pUnknown
Definition: drmk.h:76
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 S_OK
Definition: intsafe.h:52
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define MESSAGE_HANDLER(msg, func)
Definition: atlwin.h:1926
#define BEGIN_MSG_MAP(theClass)
Definition: atlwin.h:1898
#define END_MSG_MAP()
Definition: atlwin.h:1917
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
LPCSTR LPCTSTR
Definition: ms-dtyp.idl:130
__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 DefMDIChildProc
Definition: ros2win.h:33
void __cdecl __debugbreak(void)
Definition: intrin_ppc.h:698
#define DPRINT
Definition: sndvol32.h:73
#define SetWindowLongPtr
Definition: treelist.c:70
const uint16_t * PCWSTR
Definition: typedefs.h:57
const uint16_t * LPCWSTR
Definition: typedefs.h:57
uint32_t ULONG
Definition: typedefs.h:59
DWORD hint
Definition: vfdcmd.c:88
#define _T(x)
Definition: vfdio.h:22
#define E_NOINTERFACE
Definition: winerror.h:3479
#define CS_VREDRAW
Definition: winuser.h:666
#define WM_SYSCOMMAND
Definition: winuser.h:1769
#define WM_CREATE
Definition: winuser.h:1636
#define CS_HREDRAW
Definition: winuser.h:661
#define IDC_ARROW
Definition: winuser.h:695
#define LoadIcon
Definition: winuser.h:5979
WNDCLASSEXA WNDCLASSEX
Definition: winuser.h:5885
#define PostMessage
Definition: winuser.h:5998
#define WM_DESTROY
Definition: winuser.h:1637
#define SC_MAXIMIZE
Definition: winuser.h:2624
#define COLOR_3DFACE
Definition: winuser.h:940