ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

addressband.h
Go to the documentation of this file.
00001 /*
00002  * ReactOS Explorer
00003  *
00004  * Copyright 2009 Andrew Hill <ash77 at domain 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 CAddressBand :
00024     public CWindowImpl<CAddressBand, CWindow, CControlWinTraits>,
00025     public CComCoClass<CAddressBand, &CLSID_SH_AddressBand>,
00026     public CComObjectRootEx<CComMultiThreadModelNoCS>,
00027     public IDeskBand,
00028     public IOleCommandTarget,
00029     public IObjectWithSite,
00030     public IInputObject,
00031     public IWinEventHandler,
00032     public IAddressBand,
00033     public IServiceProvider,
00034     public IInputObjectSite,
00035     public IPersistStream
00036 {
00037 private:
00038     CComPtr<IDockingWindowSite>             fSite;
00039     CComPtr<IAddressEditBox>                fAddressEditBox;
00040     HWND                                    fEditControl;
00041     HWND                                    fGoButton;
00042     HWND                                    fComboBox;
00043     bool                                    fGoButtonShown;
00044 public:
00045     CAddressBand();
00046     ~CAddressBand();
00047 private:
00048     void FocusChange(BOOL bFocus);
00049 public:
00050     // *** IDeskBand methods ***
00051     virtual HRESULT STDMETHODCALLTYPE GetBandInfo(DWORD dwBandID, DWORD dwViewMode, DESKBANDINFO *pdbi);
00052 
00053     // *** IObjectWithSite methods ***
00054     virtual HRESULT STDMETHODCALLTYPE SetSite(IUnknown *pUnkSite);
00055     virtual HRESULT STDMETHODCALLTYPE GetSite(REFIID riid, void **ppvSite);
00056 
00057     // *** IOleWindow methods ***
00058     virtual HRESULT STDMETHODCALLTYPE GetWindow(HWND *lphwnd);
00059     virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode);
00060 
00061     // *** IDockingWindow methods ***
00062     virtual HRESULT STDMETHODCALLTYPE CloseDW(DWORD dwReserved);
00063     virtual HRESULT STDMETHODCALLTYPE ResizeBorderDW(const RECT *prcBorder, IUnknown *punkToolbarSite, BOOL fReserved);
00064     virtual HRESULT STDMETHODCALLTYPE ShowDW(BOOL fShow);
00065 
00066     // *** IOleCommandTarget methods ***
00067     virtual HRESULT STDMETHODCALLTYPE QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[  ], OLECMDTEXT *pCmdText);
00068     virtual HRESULT STDMETHODCALLTYPE Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut);
00069 
00070     // *** IInputObject methods ***
00071     virtual HRESULT STDMETHODCALLTYPE UIActivateIO(BOOL fActivate, LPMSG lpMsg);
00072     virtual HRESULT STDMETHODCALLTYPE HasFocusIO();
00073     virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorIO(LPMSG lpMsg);
00074 
00075     // *** IWinEventHandler methods ***
00076     virtual HRESULT STDMETHODCALLTYPE OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult);
00077     virtual HRESULT STDMETHODCALLTYPE IsWindowOwner(HWND hWnd);
00078 
00079     // *** IAddressBand methods ***
00080     virtual HRESULT STDMETHODCALLTYPE FileSysChange(long param8, long paramC);
00081     virtual HRESULT STDMETHODCALLTYPE Refresh(long param8);
00082 
00083     // *** IServiceProvider methods ***
00084     virtual HRESULT STDMETHODCALLTYPE QueryService(REFGUID guidService, REFIID riid, void **ppvObject);
00085 
00086     // *** IInputObjectSite methods ***
00087     virtual HRESULT STDMETHODCALLTYPE OnFocusChangeIS(IUnknown *punkObj, BOOL fSetFocus);
00088 
00089     // *** IPersist methods ***
00090     virtual HRESULT STDMETHODCALLTYPE GetClassID(CLSID *pClassID);
00091 
00092     // *** IPersistStream methods ***
00093     virtual HRESULT STDMETHODCALLTYPE IsDirty();
00094     virtual HRESULT STDMETHODCALLTYPE Load(IStream *pStm);
00095     virtual HRESULT STDMETHODCALLTYPE Save(IStream *pStm, BOOL fClearDirty);
00096     virtual HRESULT STDMETHODCALLTYPE GetSizeMax(ULARGE_INTEGER *pcbSize);
00097 
00098     // message handlers
00099     LRESULT OnNotifyClick(WPARAM wParam, NMHDR *notifyHeader, BOOL &bHandled);
00100     LRESULT OnTipText(UINT idControl, NMHDR *notifyHeader, BOOL &bHandled);
00101     LRESULT OnEraseBackground(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
00102     LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
00103     LRESULT OnWindowPosChanging(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
00104 
00105 BEGIN_MSG_MAP(CAddressBand)
00106     NOTIFY_CODE_HANDLER(NM_CLICK, OnNotifyClick)
00107     NOTIFY_CODE_HANDLER(TTN_NEEDTEXTW, OnTipText)
00108     MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBackground)
00109     MESSAGE_HANDLER(WM_SIZE, OnSize)
00110     MESSAGE_HANDLER(WM_WINDOWPOSCHANGING, OnWindowPosChanging)
00111 END_MSG_MAP()
00112 
00113 DECLARE_REGISTRY_RESOURCEID(IDR_ADDRESSBAND)
00114 DECLARE_NOT_AGGREGATABLE(CAddressBand)
00115 
00116 DECLARE_PROTECT_FINAL_CONSTRUCT()
00117 
00118 BEGIN_COM_MAP(CAddressBand)
00119     COM_INTERFACE_ENTRY_IID(IID_IDeskBand, IDeskBand)
00120     COM_INTERFACE_ENTRY_IID(IID_IObjectWithSite, IObjectWithSite)
00121     COM_INTERFACE_ENTRY_IID(IID_IOleWindow, IOleWindow)
00122     COM_INTERFACE_ENTRY_IID(IID_IDockingWindow, IDockingWindow)
00123     COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget)
00124     COM_INTERFACE_ENTRY_IID(IID_IInputObject, IInputObject)
00125     COM_INTERFACE_ENTRY_IID(IID_IWinEventHandler, IWinEventHandler)
00126     COM_INTERFACE_ENTRY_IID(IID_IAddressBand, IAddressBand)
00127     COM_INTERFACE_ENTRY_IID(IID_IServiceProvider, IServiceProvider)
00128     COM_INTERFACE_ENTRY_IID(IID_IInputObjectSite, IInputObjectSite)
00129     COM_INTERFACE_ENTRY_IID(IID_IPersist, IPersist)
00130     COM_INTERFACE_ENTRY_IID(IID_IPersistStream, IPersistStream)
00131 END_COM_MAP()
00132 };

Generated on Sat May 26 2012 04:21:24 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.