/**********************************************************************/ /** Microsoft Windows/NT **/ /** Copyright(c) Microsoft Corporation, 1997 - 1999 **/ /**********************************************************************/ /* basehand.h base classes for node handlers. FILE HISTORY: */ #ifndef _BASEHAND_H #define _BASEHAND_H #ifndef _TFSINT_H #include "tfsint.h" #endif #ifndef _TFSNODE_H #include "tfsnode.h" #endif /*--------------------------------------------------------------------------- Class: CBaseHandler This class provides functionality for handling notification from the IComponentData interface on a node (or handler) basis. The CBaseResultHandler class handles notifcation to the IConponent interface that a snapin exposes. ---------------------------------------------------------------------------*/ #define OVERRIDE_BaseHandlerNotify_OnPropertyChange() \ virtual HRESULT OnPropertyChange(ITFSNode *pNode,LPDATAOBJECT pdo,DWORD dwType,LPARAM arg,LPARAM lParam) \ #define OVERRIDE_BaseHandlerNotify_OnDelete() \ virtual HRESULT OnDelete(ITFSNode *pNode,LPARAM arg,LPARAM lParam) #define OVERRIDE_BaseHandlerNotify_OnRename() \ virtual HRESULT OnRename(ITFSNode *pNode,LPARAM arg,LPARAM lParam) #define OVERRIDE_BaseHandlerNotify_OnRemoveChildren() \ virtual HRESULT OnRemoveChildren(ITFSNode *pNode,LPDATAOBJECT pdo,LPARAM arg,LPARAM lParam) #define OVERRIDE_BaseHandlerNotify_OnExpandSync() \ virtual HRESULT OnExpandSync(ITFSNode *pNode,LPDATAOBJECT pdo,LPARAM arg,LPARAM lParam) #define OVERRIDE_BaseHandlerNotify_OnExpand() \ virtual HRESULT OnExpand(ITFSNode *pNode,LPDATAOBJECT pdo, DWORD dwType, LPARAM arg,LPARAM lParam) #define OVERRIDE_BaseHandlerNotify_OnContextMenu() \ virtual HRESULT OnContextMenu(ITFSNode *pNode,LPARAM arg,LPARAM lParam) #define OVERRIDE_BaseHandlerNotify_OnVerbCopy() \ virtual HRESULT OnVerbCopy(ITFSNode *pNode,LPARAM arg,LPARAM lParam) #define OVERRIDE_BaseHandlerNotify_OnVerbPaste() \ virtual HRESULT OnVerbPaste(ITFSNode *pNode,LPARAM arg,LPARAM lParam) #define OVERRIDE_BaseHandlerNotify_OnVerbDelete() \ virtual HRESULT OnVerbDelete(ITFSNode *pNode,LPARAM arg,LPARAM lParam) #define OVERRIDE_BaseHandlerNotify_OnVerbProperties() \ virtual HRESULT OnVerbProperties(ITFSNode *pNode,LPARAM arg,LPARAM lParam) #define OVERRIDE_BaseHandlerNotify_OnVerbRename() \ virtual HRESULT OnVerbRename(ITFSNode *pNode,LPARAM arg,LPARAM lParam) #define OVERRIDE_BaseHandlerNotify_OnVerbRefresh() \ virtual HRESULT OnVerbRefresh(ITFSNode *pNode,LPARAM arg,LPARAM lParam) #define OVERRIDE_BaseHandlerNotify_OnVerbPrint() \ virtual HRESULT OnVerbPrint(ITFSNode *pNode,LPARAM arg,LPARAM lParam) #define OVERRIDE_BaseHandlerNotify_OnRestoreView() \ virtual HRESULT OnRestoreView(ITFSNode *pNode,LPARAM arg,LPARAM lParam) #define OVERRIDE_BaseHandlerNotify_OnCreateNodeId2() \ virtual HRESULT OnCreateNodeId2(ITFSNode *pNode,CString & strId,LPDWORD pdwFlags) //class TFS_EXPORT_CLASS CBaseHandler : class CBaseHandler : public ITFSNodeHandler { public: DeclareIUnknownMembers(IMPL) DeclareITFSNodeHandlerMembers(IMPL) CBaseHandler(ITFSComponentData *pTFSCompData); virtual ~CBaseHandler(); // Here are the possible notifications OVERRIDE_BaseHandlerNotify_OnPropertyChange(); OVERRIDE_BaseHandlerNotify_OnDelete(); OVERRIDE_BaseHandlerNotify_OnRename(); OVERRIDE_BaseHandlerNotify_OnRemoveChildren(); OVERRIDE_BaseHandlerNotify_OnExpandSync(); OVERRIDE_BaseHandlerNotify_OnExpand(); OVERRIDE_BaseHandlerNotify_OnContextMenu(); OVERRIDE_BaseHandlerNotify_OnVerbCopy(); OVERRIDE_BaseHandlerNotify_OnVerbPaste(); OVERRIDE_BaseHandlerNotify_OnVerbDelete(); OVERRIDE_BaseHandlerNotify_OnVerbProperties(); OVERRIDE_BaseHandlerNotify_OnVerbRename(); OVERRIDE_BaseHandlerNotify_OnVerbRefresh(); OVERRIDE_BaseHandlerNotify_OnVerbPrint(); OVERRIDE_BaseHandlerNotify_OnRestoreView(); OVERRIDE_BaseHandlerNotify_OnCreateNodeId2(); protected: SPITFSComponentData m_spTFSCompData; SPITFSNodeMgr m_spNodeMgr; long m_cRef; }; /*--------------------------------------------------------------------------- Class: CBaseResultHandler ---------------------------------------------------------------------------*/ #define OVERRIDE_BaseResultHandlerNotify_OnResultActivate() \ virtual HRESULT OnResultActivate(ITFSComponent *,MMC_COOKIE,LPARAM,LPARAM) #define OVERRIDE_BaseResultHandlerNotify_OnResultColumnClick() \ virtual HRESULT OnResultColumnClick(ITFSComponent *, LPARAM, BOOL) #define OVERRIDE_BaseResultHandlerNotify_OnResultColumnsChanged() \ virtual HRESULT OnResultColumnsChanged(ITFSComponent *, LPDATAOBJECT, MMC_VISIBLE_COLUMNS *) #define OVERRIDE_BaseResultHandlerNotify_OnResultDelete() \ virtual HRESULT OnResultDelete(ITFSComponent *,LPDATAOBJECT,MMC_COOKIE,LPARAM,LPARAM) #define OVERRIDE_BaseResultHandlerNotify_OnResultRename() \ virtual HRESULT OnResultRename(ITFSComponent *,LPDATAOBJECT,MMC_COOKIE,LPARAM,LPARAM) #define OVERRIDE_BaseResultHandlerNotify_OnResultRefresh() \ virtual HRESULT OnResultRefresh(ITFSComponent *,LPDATAOBJECT,MMC_COOKIE,LPARAM,LPARAM) #define OVERRIDE_BaseResultHandlerNotify_OnResultContextHelp() \ virtual HRESULT OnResultContextHelp(ITFSComponent *,LPDATAOBJECT,MMC_COOKIE,LPARAM,LPARAM) #define OVERRIDE_BaseResultHandlerNotify_OnResultQueryPaste() \ virtual HRESULT OnResultQueryPaste(ITFSComponent *,LPDATAOBJECT,MMC_COOKIE,LPARAM,LPARAM) #define OVERRIDE_BaseResultHandlerNotify_OnResultPropertyChange() \ virtual HRESULT OnResultPropertyChange(ITFSComponent *,LPDATAOBJECT,MMC_COOKIE,LPARAM,LPARAM) #define OVERRIDE_BaseResultHandlerNotify_OnResultItemClkOrDblClk() \ virtual HRESULT OnResultItemClkOrDblClk(ITFSComponent *,MMC_COOKIE,LPARAM,LPARAM,BOOL) #define OVERRIDE_BaseResultHandlerNotify_OnResultMinimize() \ virtual HRESULT OnResultMinimize(ITFSComponent *,MMC_COOKIE,LPARAM,LPARAM) #define OVERRIDE_BaseResultHandlerNotify_OnResultSelect() \ virtual HRESULT OnResultSelect(ITFSComponent *,LPDATAOBJECT,MMC_COOKIE,LPARAM,LPARAM) #define OVERRIDE_BaseResultHandlerNotify_OnResultInitOcx() \ virtual HRESULT OnResultInitOcx(ITFSComponent *,LPDATAOBJECT,MMC_COOKIE,LPARAM,LPARAM) #define OVERRIDE_BaseResultHandlerNotify_OnResultShow() \ virtual HRESULT OnResultShow(ITFSComponent *,MMC_COOKIE,LPARAM,LPARAM) #define OVERRIDE_BaseResultHandlerNotify_OnResultUpdateView() \ virtual HRESULT OnResultUpdateView(ITFSComponent *,LPDATAOBJECT,LPARAM,LPARAM) #define OVERRIDE_BaseResultHandlerNotify_OnResultVerbCopy() \ virtual HRESULT OnResultVerbCopy(ITFSComponent *,MMC_COOKIE,LPARAM,LPARAM) #define OVERRIDE_BaseResultHandlerNotify_OnResultVerbPaste() \ virtual HRESULT OnResultVerbPaste(ITFSComponent *,MMC_COOKIE,LPARAM,LPARAM) #define OVERRIDE_BaseResultHandlerNotify_OnResultVerbDelete() \ virtual HRESULT OnResultVerbDelete(ITFSComponent *,MMC_COOKIE,LPARAM,LPARAM) #define OVERRIDE_BaseResultHandlerNotify_OnResultVerbProperties() \ virtual HRESULT OnResultVerbProperties(ITFSComponent *,MMC_COOKIE,LPARAM,LPARAM) #define OVERRIDE_BaseResultHandlerNotify_OnResultVerbRename() \ virtual HRESULT OnResultVerbRename(ITFSComponent *,MMC_COOKIE,LPARAM,LPARAM) #define OVERRIDE_BaseResultHandlerNotify_OnResultVerbPrint() \ virtual HRESULT OnResultVerbPrint(ITFSComponent *,MMC_COOKIE,LPARAM,LPARAM) #define OVERRIDE_BaseResultHandlerNotify_OnResultVerbRefresh() \ virtual HRESULT OnResultVerbRefresh(ITFSComponent *,MMC_COOKIE,LPARAM,LPARAM) #define OVERRIDE_BaseResultHandlerNotify_OnResultRestoreView() \ virtual HRESULT OnResultRestoreView(ITFSComponent *,MMC_COOKIE,LPARAM,LPARAM) //class TFS_EXPORT_CLASS CBaseResultHandlerNotify : class CBaseResultHandler : public ITFSResultHandler { public: CBaseResultHandler(ITFSComponentData *pTFSCompData); virtual ~CBaseResultHandler(); DeclareIUnknownMembers(IMPL) DeclareITFSResultHandlerMembers(IMPL) // Here are the possible notifications OVERRIDE_BaseResultHandlerNotify_OnResultActivate(); OVERRIDE_BaseResultHandlerNotify_OnResultColumnClick(); OVERRIDE_BaseResultHandlerNotify_OnResultColumnsChanged(); OVERRIDE_BaseResultHandlerNotify_OnResultDelete(); OVERRIDE_BaseResultHandlerNotify_OnResultRename(); OVERRIDE_BaseResultHandlerNotify_OnResultRefresh(); OVERRIDE_BaseResultHandlerNotify_OnResultContextHelp(); OVERRIDE_BaseResultHandlerNotify_OnResultQueryPaste(); OVERRIDE_BaseResultHandlerNotify_OnResultItemClkOrDblClk(); OVERRIDE_BaseResultHandlerNotify_OnResultMinimize(); OVERRIDE_BaseResultHandlerNotify_OnResultPropertyChange(); OVERRIDE_BaseResultHandlerNotify_OnResultSelect(); OVERRIDE_BaseResultHandlerNotify_OnResultInitOcx(); OVERRIDE_BaseResultHandlerNotify_OnResultShow(); OVERRIDE_BaseResultHandlerNotify_OnResultUpdateView(); OVERRIDE_BaseResultHandlerNotify_OnResultVerbCopy(); OVERRIDE_BaseResultHandlerNotify_OnResultVerbPaste(); OVERRIDE_BaseResultHandlerNotify_OnResultVerbDelete(); OVERRIDE_BaseResultHandlerNotify_OnResultVerbProperties(); OVERRIDE_BaseResultHandlerNotify_OnResultVerbRename(); OVERRIDE_BaseResultHandlerNotify_OnResultVerbRefresh(); OVERRIDE_BaseResultHandlerNotify_OnResultVerbPrint(); OVERRIDE_BaseResultHandlerNotify_OnResultRestoreView(); // Over-ride these to provide custom column functionality // or custom ways to add things to the result pane virtual HRESULT LoadColumns(ITFSComponent *, MMC_COOKIE, LPARAM, LPARAM); virtual HRESULT SaveColumns(ITFSComponent *, MMC_COOKIE, LPARAM, LPARAM); virtual HRESULT EnumerateResultPane(ITFSComponent *, MMC_COOKIE, LPARAM, LPARAM); virtual HRESULT SortColumns(ITFSComponent *); virtual HRESULT SetVirtualLbSize(ITFSComponent * pComponent, LONG_PTR data); virtual HRESULT ClearVirtualLb(ITFSComponent * pComponent, LONG_PTR data); void SetColumnStringIDs(UINT * pStringIDs) { m_pColumnStringIDs = pStringIDs; } void SetColumnWidths(int * pWidths) { m_pColumnWidths = pWidths; } void SetColumnFormat(int nColumnFormat) { m_nColumnFormat = nColumnFormat; } HRESULT ShowMessage(ITFSNode * pNode, LPCTSTR pszTitle, LPCTSTR pszBody, IconIdentifier lIcon); HRESULT ClearMessage(ITFSNode * pNode); virtual HRESULT FIsTaskpadPreferred(ITFSComponent *pComponent); virtual HRESULT DoTaskpadResultSelect(ITFSComponent *pComponent, LPDATAOBJECT pDataObject, MMC_COOKIE cookie, LPARAM arg, LPARAM lParam, BOOL bTaskPadView); protected: HRESULT ChangeResultPaneItem(ITFSComponent *, ITFSNode *, LONG_PTR); HRESULT AddResultPaneItem(ITFSComponent *, ITFSNode *); HRESULT DeleteResultPaneItem(ITFSComponent *, ITFSNode *); HRESULT ShowResultMessage(ITFSComponent * pComponent, MMC_COOKIE cookie, LPARAM arg, LPARAM lParam); BOOL IsMessageView() {return m_fMessageView;} protected: SPITFSComponentData m_spTFSComponentData; SPITFSNodeMgr m_spResultNodeMgr; private: UINT * m_pColumnStringIDs; int * m_pColumnWidths; int m_nColumnFormat; LONG m_cRef; // result message view stuff BOOL m_fMessageView; CString m_strMessageTitle; CString m_strMessageBody; IconIdentifier m_lMessageIcon; }; #endif _BASEHAND_H