/*****************************************************************************\ FILE: isfvcb.h DESCRIPTION: This is a base class that implements the default behavior of IShellFolderViewCallBack. This allows default DefView implementation with this callback to override specific behavior. \*****************************************************************************/ #ifndef _CBASEFOLDERVIEWCB_H #define _CBASEFOLDERVIEWCB_H class CBaseFolderViewCB : public IShellFolderViewCB , public CObjectWithSite { public: ////////////////////////////////////////////////////// // Public Interfaces ////////////////////////////////////////////////////// // *** IUnknown *** virtual STDMETHODIMP_(ULONG) AddRef(void); virtual STDMETHODIMP_(ULONG) Release(void); virtual STDMETHODIMP QueryInterface(REFIID riid, LPVOID * ppvObj); // *** IShellFolderViewCB methods *** virtual STDMETHODIMP MessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam); public: // Friend Functions static HRESULT _IShellFolderViewCallBack(IShellView * psvOuter, IShellFolder * psf, HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); protected: // Private Member Variables int m_cRef; IUnknown * m_psfv; // Our parent's IShellFolderView. (Same as _punkSite) DWORD m_dwSignature; enum { c_dwSignature = 0x43564642 }; // "BFVC" - BaseFolderViewCb // Private Member Functions CBaseFolderViewCB(); virtual ~CBaseFolderViewCB(); // We have implementations for these. virtual HRESULT _OnSetISFV(IShellFolderView * psfv); // The caller needs to provide implementations for these // or they will get default behavior. virtual HRESULT _OnWindowCreated(void) {return E_NOTIMPL;}; virtual HRESULT _OnDefItemCount(LPINT pi) {return E_NOTIMPL;}; virtual HRESULT _OnGetHelpText(LPARAM lParam, WPARAM wParam) {return E_NOTIMPL;}; virtual HRESULT _OnGetHelpTopic(SFVM_HELPTOPIC_DATA * phtd) {return E_NOTIMPL;}; virtual HRESULT _OnGetZone(DWORD * pdwZone, WPARAM wParam) {return E_NOTIMPL;}; virtual HRESULT _OnGetPane(DWORD dwPaneID, DWORD * pdwPane) {return E_NOTIMPL;}; virtual HRESULT _OnRefresh(BOOL fReload) {return E_NOTIMPL;}; virtual HRESULT _OnDidDragDrop(DROPEFFECT de, IDataObject * pdto) {return E_NOTIMPL;}; virtual HRESULT _OnGetDetailsOf(UINT ici, PDETAILSINFO pdi) {return E_NOTIMPL;}; virtual HRESULT _OnInvokeCommand(UINT idc) {return E_NOTIMPL;}; virtual HRESULT _OnMergeMenu(LPQCMINFO pqcm) {return E_NOTIMPL;}; virtual HRESULT _OnUnMergeMenu(HMENU hMenu) {return E_NOTIMPL;}; virtual HRESULT _OnColumnClick(UINT ici) {return E_NOTIMPL;}; virtual HRESULT _OnGetNotify(LPITEMIDLIST * ppidl, LONG * lEvents) {return E_NOTIMPL;}; virtual HRESULT _OnFSNotify(LPITEMIDLIST * ppidl, LONG * lEvents) {return E_NOTIMPL;}; virtual HRESULT _OnQueryFSNotify(SHChangeNotifyEntry * pshcne) {return E_NOTIMPL;}; virtual HRESULT _OnSize(LONG x, LONG y) {return E_NOTIMPL;}; virtual HRESULT _OnUpdateStatusBar(void) {return E_NOTIMPL;}; virtual HRESULT _OnThisIDList(LPITEMIDLIST * ppidl) {return E_NOTIMPL;}; virtual HRESULT _OnAddPropertyPages(SFVM_PROPPAGE_DATA * pData) {return E_NOTIMPL;}; virtual HRESULT _OnInitMenuPopup(HMENU hmenu, UINT idCmdFirst, UINT nIndex) {return E_NOTIMPL;}; virtual HRESULT _OnBackGroundEnumDone(void) {return E_NOTIMPL;}; }; #endif // _CBASEFOLDERVIEWCB_H