Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenbrandband.h
Go to the documentation of this file.
00001 /* 00002 * ReactOS Explorer 00003 * 00004 * Copyright 2009 Andrew Hill <ash77@reactos.org> 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2.1 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Lesser General Public 00017 * License along with this library; if not, write to the Free Software 00018 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00019 */ 00020 00021 #pragma once 00022 00023 class CBrandBand : 00024 public CWindowImpl<CBrandBand, CWindow, CControlWinTraits>, 00025 public CComCoClass<CBrandBand, &CLSID_BrandBand>, 00026 public CComObjectRootEx<CComMultiThreadModelNoCS>, 00027 public IDeskBand, 00028 public IObjectWithSite, 00029 public IInputObject, 00030 public IPersistStream, 00031 public IWinEventHandler, 00032 public IOleCommandTarget, 00033 public IServiceProvider, 00034 public IDispatch 00035 { 00036 private: 00037 CComPtr<IDockingWindowSite> fSite; 00038 DWORD fProfferCookie; 00039 int fCurrentFrame; 00040 int fMaxFrameCount; 00041 HBITMAP fImageBitmap; 00042 int fBitmapSize; 00043 DWORD fAdviseCookie; 00044 public: 00045 CBrandBand(); 00046 ~CBrandBand(); 00047 void StartAnimation(); 00048 void StopAnimation(); 00049 void SelectImage(); 00050 public: 00051 // *** IDeskBand methods *** 00052 virtual HRESULT STDMETHODCALLTYPE GetBandInfo(DWORD dwBandID, DWORD dwViewMode, DESKBANDINFO* pdbi); 00053 00054 // *** IObjectWithSite methods *** 00055 virtual HRESULT STDMETHODCALLTYPE SetSite(IUnknown* pUnkSite); 00056 virtual HRESULT STDMETHODCALLTYPE GetSite(REFIID riid, void **ppvSite); 00057 00058 // *** IOleWindow methods *** 00059 virtual HRESULT STDMETHODCALLTYPE GetWindow(HWND *lphwnd); 00060 virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode); 00061 00062 // *** IDockingWindow methods *** 00063 virtual HRESULT STDMETHODCALLTYPE CloseDW(DWORD dwReserved); 00064 virtual HRESULT STDMETHODCALLTYPE ResizeBorderDW(const RECT* prcBorder, IUnknown* punkToolbarSite, BOOL fReserved); 00065 virtual HRESULT STDMETHODCALLTYPE ShowDW(BOOL fShow); 00066 00067 // *** IInputObject methods *** 00068 virtual HRESULT STDMETHODCALLTYPE HasFocusIO(); 00069 virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorIO(LPMSG lpMsg); 00070 virtual HRESULT STDMETHODCALLTYPE UIActivateIO(BOOL fActivate, LPMSG lpMsg); 00071 00072 // *** IPersist methods *** 00073 virtual HRESULT STDMETHODCALLTYPE GetClassID(CLSID *pClassID); 00074 00075 // *** IPersistStream methods *** 00076 virtual HRESULT STDMETHODCALLTYPE IsDirty(); 00077 virtual HRESULT STDMETHODCALLTYPE Load(IStream *pStm); 00078 virtual HRESULT STDMETHODCALLTYPE Save(IStream *pStm, BOOL fClearDirty); 00079 virtual HRESULT STDMETHODCALLTYPE GetSizeMax(ULARGE_INTEGER *pcbSize); 00080 00081 // *** IWinEventHandler methods *** 00082 virtual HRESULT STDMETHODCALLTYPE OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult); 00083 virtual HRESULT STDMETHODCALLTYPE IsWindowOwner(HWND hWnd); 00084 00085 // *** IOleCommandTarget methods *** 00086 virtual HRESULT STDMETHODCALLTYPE QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[ ], OLECMDTEXT *pCmdText); 00087 virtual HRESULT STDMETHODCALLTYPE Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut); 00088 00089 // *** IServiceProvider methods *** 00090 virtual HRESULT STDMETHODCALLTYPE QueryService(REFGUID guidService, REFIID riid, void **ppvObject); 00091 00092 // *** IDispatch methods *** 00093 virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT *pctinfo); 00094 virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo); 00095 virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId); 00096 virtual HRESULT STDMETHODCALLTYPE Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr); 00097 00098 // message handlers 00099 LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled); 00100 LRESULT OnEraseBkgnd(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled); 00101 LRESULT OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled); 00102 LRESULT OnTimer(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled); 00103 00104 BEGIN_MSG_MAP(CBrandBand) 00105 // MESSAGE_HANDLER(WM_SIZE, OnSize) 00106 MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBkgnd) 00107 MESSAGE_HANDLER(WM_PAINT, OnPaint) 00108 MESSAGE_HANDLER(WM_TIMER, OnTimer) 00109 END_MSG_MAP() 00110 00111 DECLARE_REGISTRY_RESOURCEID(IDR_BRANDBAND) 00112 DECLARE_NOT_AGGREGATABLE(CBrandBand) 00113 00114 DECLARE_PROTECT_FINAL_CONSTRUCT() 00115 00116 BEGIN_COM_MAP(CBrandBand) 00117 COM_INTERFACE_ENTRY_IID(IID_IDeskBand, IDeskBand) 00118 COM_INTERFACE_ENTRY_IID(IID_IObjectWithSite, IObjectWithSite) 00119 COM_INTERFACE_ENTRY_IID(IID_IOleWindow, IOleWindow) 00120 COM_INTERFACE_ENTRY_IID(IID_IDockingWindow, IDockingWindow) 00121 COM_INTERFACE_ENTRY_IID(IID_IInputObject, IInputObject) 00122 COM_INTERFACE_ENTRY_IID(IID_IPersist, IPersist) 00123 COM_INTERFACE_ENTRY_IID(IID_IPersistStream, IPersistStream) 00124 COM_INTERFACE_ENTRY_IID(IID_IWinEventHandler, IWinEventHandler) 00125 COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget) 00126 COM_INTERFACE_ENTRY_IID(IID_IServiceProvider, IServiceProvider) 00127 COM_INTERFACE_ENTRY_IID(IID_IDispatch, IDispatch) 00128 END_COM_MAP() 00129 }; Generated on Fri May 25 2012 04:20:51 for ReactOS by
1.7.6.1
|