ReactOS  0.4.13-dev-563-g0561610
CBaseBar.cpp
Go to the documentation of this file.
1 /*
2  * ReactOS Explorer
3  *
4  * Copyright 2009 Andrew Hill <ash77 at domain reactos.org>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19  */
20 
21 /*
22 This class knows how to contain base bar site in a cabinet window.
23 */
24 
25 #include "shellbars.h"
26 
27 /*
28 Base bar that contains a vertical or horizontal explorer band. It also
29 provides resizing abilities.
30 */
31 /*
32 TODO:
33  **Make base bar support resizing -- almost done (need to support integral ?)
34  Add context menu for base bar
35  Fix base bar to correctly initialize fVertical field
36  Fix base bar to correctly reposition its base bar site when resized -- done ?
37 */
38 
39 class CBaseBar :
40  public CWindowImpl<CBaseBar, CWindow, CControlWinTraits>,
41  public CComObjectRootEx<CComMultiThreadModelNoCS>,
42  public IInputObjectSite,
43  public IOleCommandTarget,
44  public IServiceProvider,
45  public IInputObject,
46  public IDeskBar,
47  public IDockingWindow,
48  public IPersistStream,
49  public IPersistStreamInit,
50  public IPersistPropertyBag,
51  public IObjectWithSite
52 {
53 private:
54  CComPtr<IUnknown> fSite;
55  CComPtr<IUnknown> fClient;
57  bool fVertical;
58  bool fVisible;
59  int fNeededSize; // width or height
60 
61  // used by resize tracking loop
62  bool fTracking;
64 public:
65  CBaseBar();
66  ~CBaseBar();
68 
69 public:
71 
72  // *** IOleWindow methods ***
73  virtual HRESULT STDMETHODCALLTYPE GetWindow(HWND *lphwnd);
75 
76  // *** IInputObjectSite specific methods ***
77  virtual HRESULT STDMETHODCALLTYPE OnFocusChangeIS(IUnknown *punkObj, BOOL fSetFocus);
78 
79  // *** IOleCommandTarget specific methods ***
80  virtual HRESULT STDMETHODCALLTYPE QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds,
81  OLECMD prgCmds[ ], OLECMDTEXT *pCmdText);
82  virtual HRESULT STDMETHODCALLTYPE Exec(const GUID *pguidCmdGroup, DWORD nCmdID,
83  DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut);
84 
85  // *** IServiceProvider methods ***
86  virtual HRESULT STDMETHODCALLTYPE QueryService(REFGUID guidService, REFIID riid, void **ppvObject);
87 
88  // *** IInputObject methods ***
89  // forward the methods to the contained active bar
90  virtual HRESULT STDMETHODCALLTYPE UIActivateIO(BOOL fActivate, LPMSG lpMsg);
93 
94  // *** IDeskBar methods ***
95  virtual HRESULT STDMETHODCALLTYPE SetClient(IUnknown *punkClient);
96  virtual HRESULT STDMETHODCALLTYPE GetClient(IUnknown **ppunkClient);
98 
99  // *** IDockingWindow methods ***
100  virtual HRESULT STDMETHODCALLTYPE ShowDW(BOOL fShow);
102  virtual HRESULT STDMETHODCALLTYPE ResizeBorderDW(LPCRECT prcBorder, IUnknown *punkToolbarSite, BOOL fReserved);
103 
104  // *** IObjectWithSite methods ***
105  virtual HRESULT STDMETHODCALLTYPE SetSite(IUnknown *pUnkSite);
106  virtual HRESULT STDMETHODCALLTYPE GetSite(REFIID riid, void **ppvSite);
107 
108  // *** IPersist methods ***
109  virtual HRESULT STDMETHODCALLTYPE GetClassID(CLSID *pClassID);
110 
111  // *** IPersistStream methods ***
113  virtual HRESULT STDMETHODCALLTYPE Load(IStream *pStm);
114  virtual HRESULT STDMETHODCALLTYPE Save(IStream *pStm, BOOL fClearDirty);
116 
117  // *** IPersistStreamInit methods ***
119 
120  // *** IPersistPropertyBag methods ***
121  virtual HRESULT STDMETHODCALLTYPE Load(IPropertyBag *pPropBag, IErrorLog *pErrorLog);
122  virtual HRESULT STDMETHODCALLTYPE Save(IPropertyBag *pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties);
123 
124  // message handlers
125  LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
126  LRESULT OnSetCursor(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
127  LRESULT OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
129  LRESULT OnLButtonUp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
130  LRESULT OnMouseMove(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
131  LRESULT OnCancelMode(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
133 
134 DECLARE_WND_CLASS_EX(_T("BaseBar"), 0, COLOR_3DFACE)
135 
145 END_MSG_MAP()
146 
149  COM_INTERFACE_ENTRY_IID(IID_IInputObjectSite, IInputObjectSite)
150  COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget)
151  COM_INTERFACE_ENTRY_IID(IID_IServiceProvider, IServiceProvider)
152  COM_INTERFACE_ENTRY_IID(IID_IInputObject, IInputObject)
153  COM_INTERFACE_ENTRY_IID(IID_IDeskBar, IDeskBar)
154  COM_INTERFACE_ENTRY_IID(IID_IDockingWindow, IDockingWindow)
160 END_COM_MAP()
161 };
162 
164 {
166  fVertical = true;
167  fVisible = false;
168  fNeededSize = 200;
169  fTracking = false;
170 }
171 
173 {
174 }
175 
177 {
178  fVertical = (vert == TRUE);
179  return S_OK;
180 }
181 
183 {
184  CComPtr<IDockingWindowSite> dockingWindowSite;
185  RECT availableBorderSpace;
186  RECT neededBorderSpace;
187  HRESULT hResult;
188 
189  hResult = fSite->QueryInterface(IID_PPV_ARG(IDockingWindowSite, &dockingWindowSite));
190  if (FAILED_UNEXPECTEDLY(hResult))
191  return hResult;
192  hResult = dockingWindowSite->GetBorderDW(static_cast<IDeskBar *>(this), &availableBorderSpace);
193  if (FAILED_UNEXPECTEDLY(hResult))
194  return hResult;
195  memset(&neededBorderSpace, 0, sizeof(neededBorderSpace));
196  if (fVisible)
197  {
198  if (fVertical)
199  neededBorderSpace.left = fNeededSize + GetSystemMetrics(SM_CXFRAME);
200  else
201  neededBorderSpace.bottom = fNeededSize + GetSystemMetrics(SM_CXFRAME);
202  }
203  hResult = dockingWindowSite->SetBorderSpaceDW(static_cast<IDeskBar *>(this), &neededBorderSpace);
204  if (FAILED_UNEXPECTEDLY(hResult))
205  return hResult;
206  return S_OK;
207 }
208 
209 // current bar size is stored in the registry under
210 // key=HKCU\Software\Microsoft\Internet Explorer\Explorer Bars
211 // value=current bar GUID
212 // result is 8 bytes of binary data, 2 longs. First is the size, second is reserved and will always be 0
213 /*HRESULT CBaseBar::StopCurrentBar()
214 {
215  CComPtr<IOleCommandTarget> commandTarget;
216  HRESULT hResult;
217 
218  if (fCurrentBar.p != NULL)
219  {
220  hResult = fCurrentBar->QueryInterface(IID_IOleCommandTarget, (void **)&commandTarget);
221  hResult = commandTarget->Exec(NULL, 0x17, 0, NULL, NULL);
222  }
223  // hide the current bar
224  memcpy(&fCurrentActiveClass, &GUID_NULL, sizeof(fCurrentActiveClass));
225  return S_OK;
226 }*/
227 
229 {
230  if (lphwnd == NULL)
231  return E_POINTER;
232  *lphwnd = m_hWnd;
233  return S_OK;
234 }
235 
237 {
238  return E_NOTIMPL;
239 }
240 
242 {
243  return IUnknown_OnFocusChangeIS(fSite, punkObj, fSetFocus);
244 }
245 
247  OLECMD prgCmds[ ], OLECMDTEXT *pCmdText)
248 {
249  return E_NOTIMPL;
250 }
251 
252 HRESULT STDMETHODCALLTYPE CBaseBar::Exec(const GUID *pguidCmdGroup, DWORD nCmdID,
253  DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
254 {
255  if (IsEqualIID(*pguidCmdGroup, CGID_Explorer))
256  {
257  // pass through to the explorer ?
258  }
259  else if (IsEqualIID(*pguidCmdGroup, IID_IDeskBarClient))
260  {
261  switch (nCmdID)
262  {
263  case 0:
264  {
265  // hide current band
266  ShowDW(0);
267 
268  // Inform our site that we closed
269  VARIANT var;
270  V_VT(&var) = VT_UNKNOWN;
271  V_UNKNOWN(&var) = static_cast<IDeskBar *>(this);
272  IUnknown_Exec(fSite, CGID_Explorer, 0x22, 0, &var, NULL);
273  break;
274  }
275  case 2:
276  // switch bands
277  break;
278  case 3:
279  break;
280  }
281  }
282  return E_NOTIMPL;
283 }
284 
286 {
287  CComPtr<IServiceProvider> serviceProvider;
288  HRESULT hResult;
289 
290  if (fSite == NULL)
291  return E_FAIL;
292  hResult = fSite->QueryInterface(IID_PPV_ARG(IServiceProvider, &serviceProvider));
293  if (FAILED_UNEXPECTEDLY(hResult))
294  return hResult;
295  // called for SID_STopLevelBrowser, IID_IBrowserService to find top level browser
296  // called for SID_IWebBrowserApp, IID_IConnectionPointContainer
297  // connection point called for DIID_DWebBrowserEvents2 to establish connection
298  return serviceProvider->QueryService(guidService, riid, ppvObject);
299 }
300 
302 {
303  return IUnknown_UIActivateIO(fClient, fActivate, lpMsg);
304 }
305 
307 {
309 }
310 
312 {
314 }
315 
317 {
318  CComPtr<IOleWindow> oleWindow;
319  HWND ownerWindow;
320  HRESULT hResult;
321 
322  /* Clean up old client */
323  fClient = NULL;
324 
325  if (punkClient)
326  {
327  hResult = punkClient->QueryInterface(IID_PPV_ARG(IUnknown, &fClient));
328  if (FAILED_UNEXPECTEDLY(hResult))
329  return hResult;
330  hResult = fSite->QueryInterface(IID_PPV_ARG(IOleWindow, &oleWindow));
331  if (FAILED_UNEXPECTEDLY(hResult))
332  return hResult;
333  hResult = oleWindow->GetWindow(&ownerWindow);
334  if (FAILED_UNEXPECTEDLY(hResult))
335  return hResult;
336  Create(ownerWindow, 0, NULL,
339  }
340  else
341  {
342  DestroyWindow();
343  }
344  return S_OK;
345 }
346 
348 {
349  if (ppunkClient == NULL)
350  return E_POINTER;
351  *ppunkClient = fClient;
352  if (fClient.p != NULL)
353  fClient.p->AddRef();
354  return S_OK;
355 }
356 
358 {
359  if (prc == NULL)
360  return E_POINTER;
361  if (fVertical)
362  fNeededSize = prc->right - prc->left;
363  else
364  fNeededSize = prc->bottom - prc->top;
366  return S_OK;
367 }
368 
370 {
371  fVisible = fShow ? true : false;
372  ShowWindow(fShow);
374  return S_OK;
375 }
376 
378 {
379  ShowDW(0);
380  // Detach from our client
381  SetClient(NULL);
382  // Destroy our site
383  SetSite(NULL);
384  return S_OK;
385 }
386 
388 {
390  return S_OK;
391 }
392 
394 {
395  fSite = pUnkSite;
396  return S_OK;
397 }
398 
400 {
401  if (ppvSite == NULL)
402  return E_POINTER;
403  *ppvSite = fSite;
404  if (fSite.p != NULL)
405  fSite.p->AddRef();
406  return S_OK;
407 }
408 
410 {
411  if (pClassID == NULL)
412  return E_POINTER;
413  // TODO: what class to return here?
414  return E_NOTIMPL;
415 }
416 
418 {
419  return E_NOTIMPL;
420 }
421 
423 {
424  return E_NOTIMPL;
425 }
426 
428 {
429  return E_NOTIMPL;
430 }
431 
433 {
434  if (pcbSize == NULL)
435  return E_POINTER;
436  return E_NOTIMPL;
437 }
438 
440 {
441  return E_NOTIMPL;
442 }
443 
445 {
446  return E_NOTIMPL;
447 }
448 
449 HRESULT STDMETHODCALLTYPE CBaseBar::Save(IPropertyBag *pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties)
450 {
451  return E_NOTIMPL;
452 }
453 
455 {
456  DWORD dwWidth;
457  DWORD dwHeight;
458  CComPtr<IOleWindow> pClient;
459  HWND clientHwnd;
460  HRESULT hr;
461 
462  if (fVisible)
463  {
464  dwWidth = LOWORD(lParam);
466 
467  // substract resizing grips to child's window size
468  if (fVertical)
470  else
472  hr = fClient->QueryInterface(IID_PPV_ARG(IOleWindow, &pClient));
473  if (FAILED_UNEXPECTEDLY(hr))
474  return 0;
475  hr = pClient->GetWindow(&clientHwnd);
476  if (FAILED_UNEXPECTEDLY(hr))
477  return 0;
479  bHandled = TRUE;
480  }
481  return 0;
482 }
483 
485 {
486  if ((short)lParam != HTCLIENT || (HWND)wParam != m_hWnd)
487  {
488  bHandled = FALSE;
489  return 0;
490  }
491  if (fVertical)
493  else
495  return 1;
496 }
497 
499 {
500  CComPtr<IWinEventHandler> winEventHandler;
501  LRESULT result;
502  HRESULT hResult;
503 
504  result = 0;
505  if (fClient.p != NULL)
506  {
507  hResult = fClient->QueryInterface(IID_PPV_ARG(IWinEventHandler, &winEventHandler));
508  if (SUCCEEDED(hResult) && winEventHandler.p != NULL)
509  hResult = winEventHandler->OnWinEvent(NULL, uMsg, wParam, lParam, &result);
510  }
511  return result;
512 }
513 
515 {
516  SetCapture();
517  fTracking = true;
520  return 0;
521 }
522 
524 {
525  ReleaseCapture();
526  fTracking = false;
527  return 0;
528 }
529 
531 {
532  POINT newLocation;
533  int delta;
534 
535  if (fTracking)
536  {
537  newLocation.x = (short)LOWORD(lParam);
538  newLocation.y = (short)HIWORD(lParam);
539  if (fVertical)
540  delta = newLocation.x - fLastLocation.x;
541  else
542  delta = fLastLocation.y - newLocation.y;
543  if (fNeededSize + delta < 0)
544  return 0;
545  fNeededSize += delta;
546  fLastLocation = newLocation;
548  }
549  return 0;
550 }
551 
553 {
554  fTracking = false;
555  return 0;
556 }
557 
559 {
560  fTracking = false;
561  return 0;
562 }
563 
565 {
566  return ShellObjectCreatorInit<CBaseBar, BOOL>(vertical, riid, ppv);
567 }
#define IDC_SIZEWE
Definition: winuser.h:689
#define WS_CLIPSIBLINGS
Definition: pedump.c:618
virtual HRESULT STDMETHODCALLTYPE IsDirty()
Definition: CBaseBar.cpp:417
HRESULT WINAPI IUnknown_UIActivateIO(IUnknown *unknown, BOOL activate, LPMSG msg)
Definition: ordinal.c:1580
virtual HRESULT STDMETHODCALLTYPE Load(IStream *pStm)
Definition: CBaseBar.cpp:422
#define REFIID
Definition: guiddef.h:113
#define TRUE
Definition: types.h:120
virtual HRESULT STDMETHODCALLTYPE QueryService(REFGUID guidService, REFIID riid, void **ppvObject)
Definition: CBaseBar.cpp:285
virtual HRESULT STDMETHODCALLTYPE SetClient(IUnknown *punkClient)
Definition: CBaseBar.cpp:316
long y
Definition: polytest.cpp:48
#define WM_LBUTTONDOWN
Definition: winuser.h:1752
HRESULT hr
Definition: shlfolder.c:183
Definition: scsiwmi.h:51
long x
Definition: polytest.cpp:48
REFIID riid
Definition: precomp.h:44
_In_ BOOLEAN Create
Definition: pstypes.h:511
const GUID IID_IPersist
Definition: proxy.cpp:14
HRESULT WINAPI IUnknown_OnFocusChangeIS(LPUNKNOWN lpUnknown, LPUNKNOWN pFocusObject, BOOL bFocus)
Definition: ordinal.c:4594
virtual HRESULT STDMETHODCALLTYPE InitNew()
Definition: CBaseBar.cpp:439
virtual HRESULT STDMETHODCALLTYPE Save(IStream *pStm, BOOL fClearDirty)
Definition: CBaseBar.cpp:427
#define WM_CAPTURECHANGED
Definition: winuser.h:1784
bool fVisible
Definition: CBaseBar.cpp:58
#define DECLARE_WND_CLASS_EX(WndClassName, style, bkgnd)
Definition: atlwin.h:1876
bool fVertical
Definition: CBaseBar.cpp:57
REFIID LPVOID * ppv
Definition: atlbase.h:39
virtual HRESULT STDMETHODCALLTYPE ResizeBorderDW(LPCRECT prcBorder, IUnknown *punkToolbarSite, BOOL fReserved)
Definition: CBaseBar.cpp:387
LONG top
Definition: windef.h:292
LRESULT OnMouseMove(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CBaseBar.cpp:530
UINT_PTR WPARAM
Definition: windef.h:207
LONG left
Definition: windef.h:291
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
#define SM_CXFRAME
Definition: winuser.h:984
#define WS_CLIPCHILDREN
Definition: pedump.c:619
virtual HRESULT STDMETHODCALLTYPE Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
Definition: CBaseBar.cpp:252
LRESULT OnSetCursor(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CBaseBar.cpp:484
LONG right
Definition: windef.h:293
#define IID_PPV_ARG(Itype, ppType)
#define E_FAIL
Definition: ddrawi.h:102
BOOL WINAPI DestroyWindow(_In_ HWND)
#define WS_EX_TOOLWINDOW
Definition: winuser.h:404
virtual HRESULT STDMETHODCALLTYPE UIActivateIO(BOOL fActivate, LPMSG lpMsg)
Definition: CBaseBar.cpp:301
WPARAM wParam
Definition: combotst.c:138
#define IDC_SIZENS
Definition: winuser.h:690
virtual HRESULT STDMETHODCALLTYPE QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText)
Definition: CBaseBar.cpp:246
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
Definition: typeof.h:93
virtual HRESULT STDMETHODCALLTYPE OnFocusChangeIS(IUnknown *punkObj, BOOL fSetFocus)
Definition: CBaseBar.cpp:241
#define COLOR_3DFACE
Definition: winuser.h:919
virtual HRESULT STDMETHODCALLTYPE GetSizeMax(ULARGE_INTEGER *pcbSize)
Definition: CBaseBar.cpp:432
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:90
unsigned int BOOL
Definition: ntddk_ex.h:94
const GUID IID_IPersistPropertyBag
Definition: proxy.cpp:11
#define WM_SETCURSOR
Definition: winuser.h:1618
LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CBaseBar.cpp:454
int fNeededSize
Definition: CBaseBar.cpp:59
HRESULT Initialize(BOOL)
Definition: CBaseBar.cpp:176
virtual HRESULT STDMETHODCALLTYPE SetSite(IUnknown *pUnkSite)
Definition: CBaseBar.cpp:393
smooth NULL
Definition: ftsmooth.c:416
bool fTracking
Definition: CBaseBar.cpp:62
LONG_PTR LPARAM
Definition: windef.h:208
virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorIO(LPMSG lpMsg)
Definition: CBaseBar.cpp:311
#define WS_CHILDWINDOW
Definition: pedump.c:639
static const WCHAR dwHeight[]
Definition: provider.c:60
virtual HRESULT STDMETHODCALLTYPE GetClassID(CLSID *pClassID)
Definition: CBaseBar.cpp:409
#define BEGIN_COM_MAP(x)
Definition: atlcom.h:541
#define _T(x)
Definition: vfdio.h:22
#define WM_SIZE
Definition: winuser.h:1593
LONG HRESULT
Definition: typedefs.h:77
#define END_MSG_MAP()
Definition: atlwin.h:1789
#define FAILED_UNEXPECTEDLY(hr)
Definition: shellutils.h:35
#define STDMETHODCALLTYPE
Definition: bdasup.h:9
const IID IID_IObjectWithSite
int WINAPI GetSystemMetrics(_In_ int)
unsigned long DWORD
Definition: ntddk_ex.h:95
virtual HRESULT STDMETHODCALLTYPE ShowDW(BOOL fShow)
Definition: CBaseBar.cpp:369
#define COM_INTERFACE_ENTRY2_IID(iid, x, x2)
Definition: atlcom.h:569
ULONG AddRef()
const GUID IID_IPersistStream
Definition: proxy.cpp:13
virtual HRESULT STDMETHODCALLTYPE OnPosRectChangeDB(LPRECT prc)
Definition: CBaseBar.cpp:357
HRESULT CBaseBar_CreateInstance(REFIID riid, void **ppv, BOOL vertical)
Definition: CBaseBar.cpp:564
HRESULT WINAPI IUnknown_HasFocusIO(IUnknown *lpUnknown)
Definition: ordinal.c:4136
virtual HRESULT STDMETHODCALLTYPE CloseDW(DWORD dwReserved)
Definition: CBaseBar.cpp:377
const GUID IID_IPersistStreamInit
#define V_VT(A)
Definition: oleauto.h:211
#define WM_CANCELMODE
Definition: winuser.h:1617
REFIID LPVOID * ppvObject
Definition: precomp.h:44
CComPtr< IUnknown > fClient
Definition: CBaseBar.cpp:55
CComPtr< IUnknown > fSite
Definition: CBaseBar.cpp:54
virtual HRESULT STDMETHODCALLTYPE GetClient(IUnknown **ppunkClient)
Definition: CBaseBar.cpp:347
#define V_UNKNOWN(A)
Definition: oleauto.h:281
#define LoadCursor
Definition: winuser.h:5678
LRESULT OnLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CBaseBar.cpp:514
HWND WINAPI SetCapture(_In_ HWND hWnd)
#define S_OK
Definition: intsafe.h:59
LRESULT OnLButtonUp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CBaseBar.cpp:523
virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode)
Definition: CBaseBar.cpp:236
HRESULT WINAPI IUnknown_TranslateAcceleratorIO(IUnknown *lpUnknown, LPMSG lpMsg)
Definition: ordinal.c:4104
HCURSOR WINAPI SetCursor(_In_opt_ HCURSOR)
POINT fLastLocation
Definition: CBaseBar.cpp:63
#define COM_INTERFACE_ENTRY_IID(iid, x)
Definition: atlcom.h:561
#define WM_LBUTTONUP
Definition: winuser.h:1753
#define E_NOTIMPL
Definition: ddrawi.h:99
HRESULT ReserveBorderSpace()
Definition: CBaseBar.cpp:182
HWND fClientWindow
Definition: CBaseBar.cpp:56
unsigned int UINT
Definition: ndis.h:50
#define WM_MOUSEMOVE
Definition: winuser.h:1751
LRESULT OnCaptureChanged(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CBaseBar.cpp:558
#define BEGIN_MSG_MAP(theClass)
Definition: atlwin.h:1770
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
#define MESSAGE_HANDLER(msg, func)
Definition: atlwin.h:1798
virtual HRESULT STDMETHODCALLTYPE HasFocusIO()
Definition: CBaseBar.cpp:306
BOOL WINAPI ReleaseCapture(void)
Definition: message.c:2888
const GUID IID_IOleWindow
#define HIWORD(l)
Definition: typedefs.h:246
unsigned int ULONG
Definition: retypes.h:1
LONG bottom
Definition: windef.h:294
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
#define END_COM_MAP()
Definition: atlcom.h:552
#define HTCLIENT
Definition: winuser.h:2429
LONG_PTR LRESULT
Definition: windef.h:209
#define E_POINTER
Definition: winerror.h:2365
LRESULT OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CBaseBar.cpp:498
_Out_ LPRECT prc
Definition: ntgdi.h:1658
#define WS_VISIBLE
Definition: pedump.c:620
LRESULT OnCancelMode(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CBaseBar.cpp:552
GLuint64EXT * result
Definition: glext.h:11304
#define memset(x, y, z)
Definition: compat.h:39
virtual HRESULT STDMETHODCALLTYPE GetSite(REFIID riid, void **ppvSite)
Definition: CBaseBar.cpp:399
#define true
Definition: stdbool.h:37
LPARAM lParam
Definition: combotst.c:139
#define LOWORD(l)
Definition: pedump.c:82
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:90
static const WCHAR dwWidth[]
Definition: provider.c:59
#define WM_NOTIFY
Definition: richedit.h:61
#define SUCCEEDED(hr)
Definition: intsafe.h:57
virtual HRESULT STDMETHODCALLTYPE GetWindow(HWND *lphwnd)
Definition: CBaseBar.cpp:228
HRESULT WINAPI IUnknown_Exec(IUnknown *lpUnknown, REFGUID pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
Definition: ordinal.c:1034