4 * Copyright 2009 Andrew Hill <ash77@reactos.org>
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.
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.
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
24 public CWindowImpl
<CBrandBand
, CWindow
, CControlWinTraits
>,
25 public CComCoClass
<CBrandBand
, &CLSID_BrandBand
>,
26 public CComObjectRootEx
<CComMultiThreadModelNoCS
>,
28 public IObjectWithSite
,
30 public IPersistStream
,
31 public IWinEventHandler
,
32 public IOleCommandTarget
,
33 public IServiceProvider
,
37 CComPtr
<IDockingWindowSite
> fSite
;
47 void StartAnimation();
51 // *** IDeskBand methods ***
52 virtual HRESULT STDMETHODCALLTYPE
GetBandInfo(DWORD dwBandID
, DWORD dwViewMode
, DESKBANDINFO
* pdbi
);
54 // *** IObjectWithSite methods ***
55 virtual HRESULT STDMETHODCALLTYPE
SetSite(IUnknown
* pUnkSite
);
56 virtual HRESULT STDMETHODCALLTYPE
GetSite(REFIID riid
, void **ppvSite
);
58 // *** IOleWindow methods ***
59 virtual HRESULT STDMETHODCALLTYPE
GetWindow(HWND
*lphwnd
);
60 virtual HRESULT STDMETHODCALLTYPE
ContextSensitiveHelp(BOOL fEnterMode
);
62 // *** IDockingWindow methods ***
63 virtual HRESULT STDMETHODCALLTYPE
CloseDW(DWORD dwReserved
);
64 virtual HRESULT STDMETHODCALLTYPE
ResizeBorderDW(const RECT
* prcBorder
, IUnknown
* punkToolbarSite
, BOOL fReserved
);
65 virtual HRESULT STDMETHODCALLTYPE
ShowDW(BOOL fShow
);
67 // *** IInputObject methods ***
68 virtual HRESULT STDMETHODCALLTYPE
HasFocusIO();
69 virtual HRESULT STDMETHODCALLTYPE
TranslateAcceleratorIO(LPMSG lpMsg
);
70 virtual HRESULT STDMETHODCALLTYPE
UIActivateIO(BOOL fActivate
, LPMSG lpMsg
);
72 // *** IPersist methods ***
73 virtual HRESULT STDMETHODCALLTYPE
GetClassID(CLSID
*pClassID
);
75 // *** IPersistStream methods ***
76 virtual HRESULT STDMETHODCALLTYPE
IsDirty();
77 virtual HRESULT STDMETHODCALLTYPE
Load(IStream
*pStm
);
78 virtual HRESULT STDMETHODCALLTYPE
Save(IStream
*pStm
, BOOL fClearDirty
);
79 virtual HRESULT STDMETHODCALLTYPE
GetSizeMax(ULARGE_INTEGER
*pcbSize
);
81 // *** IWinEventHandler methods ***
82 virtual HRESULT STDMETHODCALLTYPE
OnWinEvent(HWND hWnd
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
, LRESULT
*theResult
);
83 virtual HRESULT STDMETHODCALLTYPE
IsWindowOwner(HWND hWnd
);
85 // *** IOleCommandTarget methods ***
86 virtual HRESULT STDMETHODCALLTYPE
QueryStatus(const GUID
*pguidCmdGroup
, ULONG cCmds
, OLECMD prgCmds
[ ], OLECMDTEXT
*pCmdText
);
87 virtual HRESULT STDMETHODCALLTYPE
Exec(const GUID
*pguidCmdGroup
, DWORD nCmdID
, DWORD nCmdexecopt
, VARIANT
*pvaIn
, VARIANT
*pvaOut
);
89 // *** IServiceProvider methods ***
90 virtual HRESULT STDMETHODCALLTYPE
QueryService(REFGUID guidService
, REFIID riid
, void **ppvObject
);
92 // *** IDispatch methods ***
93 virtual HRESULT STDMETHODCALLTYPE
GetTypeInfoCount(UINT
*pctinfo
);
94 virtual HRESULT STDMETHODCALLTYPE
GetTypeInfo(UINT iTInfo
, LCID lcid
, ITypeInfo
**ppTInfo
);
95 virtual HRESULT STDMETHODCALLTYPE
GetIDsOfNames(REFIID riid
, LPOLESTR
*rgszNames
, UINT cNames
, LCID lcid
, DISPID
*rgDispId
);
96 virtual HRESULT STDMETHODCALLTYPE
Invoke(DISPID dispIdMember
, REFIID riid
, LCID lcid
, WORD wFlags
, DISPPARAMS
*pDispParams
, VARIANT
*pVarResult
, EXCEPINFO
*pExcepInfo
, UINT
*puArgErr
);
99 LRESULT
OnSize(UINT uMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
&bHandled
);
100 LRESULT
OnEraseBkgnd(UINT uMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
&bHandled
);
101 LRESULT
OnPaint(UINT uMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
&bHandled
);
102 LRESULT
OnTimer(UINT uMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
&bHandled
);
104 BEGIN_MSG_MAP(CBrandBand
)
105 // MESSAGE_HANDLER(WM_SIZE, OnSize)
106 MESSAGE_HANDLER(WM_ERASEBKGND
, OnEraseBkgnd
)
107 MESSAGE_HANDLER(WM_PAINT
, OnPaint
)
108 MESSAGE_HANDLER(WM_TIMER
, OnTimer
)
111 DECLARE_REGISTRY_RESOURCEID(IDR_BRANDBAND
)
112 DECLARE_NOT_AGGREGATABLE(CBrandBand
)
114 DECLARE_PROTECT_FINAL_CONSTRUCT()
116 BEGIN_COM_MAP(CBrandBand
)
117 COM_INTERFACE_ENTRY_IID(IID_IDeskBand
, IDeskBand
)
118 COM_INTERFACE_ENTRY_IID(IID_IObjectWithSite
, IObjectWithSite
)
119 COM_INTERFACE_ENTRY_IID(IID_IOleWindow
, IOleWindow
)
120 COM_INTERFACE_ENTRY_IID(IID_IDockingWindow
, IDockingWindow
)
121 COM_INTERFACE_ENTRY_IID(IID_IInputObject
, IInputObject
)
122 COM_INTERFACE_ENTRY_IID(IID_IPersist
, IPersist
)
123 COM_INTERFACE_ENTRY_IID(IID_IPersistStream
, IPersistStream
)
124 COM_INTERFACE_ENTRY_IID(IID_IWinEventHandler
, IWinEventHandler
)
125 COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget
, IOleCommandTarget
)
126 COM_INTERFACE_ENTRY_IID(IID_IServiceProvider
, IServiceProvider
)
127 COM_INTERFACE_ENTRY_IID(IID_IDispatch
, IDispatch
)