#if !defined(AFX_SCOPEPANE_H__7D4A6859_9056_11D2_BD45_0000F87A3912__INCLUDED_) #define AFX_SCOPEPANE_H__7D4A6859_9056_11D2_BD45_0000F87A3912__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // ScopePane.h : header file // #include #include "ScopePaneItem.h" #include "ResultsPaneItem.h" #include "ResultsPaneView.h" #include "ResultsPane.h" #include "SnapinDataObject.h" #include "MmcMsgHook.h" typedef CTypedPtrArray ResultsPaneArray; ///////////////////////////////////////////////////////////////////////////// // CScopePane command target class CScopePane : public CCmdTarget { DECLARE_DYNCREATE(CScopePane) // Construction/Destruction public: CScopePane(); virtual ~CScopePane(); // Creation/Destruction Overrideable Members protected: virtual bool OnCreate(); virtual LPCOMPONENT OnCreateComponent(); virtual bool OnDestroy(); // Root Scope Pane Item Members public: virtual CScopePaneItem* CreateRootScopeItem(); CScopePaneItem* GetRootScopeItem(); void SetRootScopeItem(CScopePaneItem* pRootItem); protected: CScopePaneItem* m_pRootItem; // MMC Frame Window Message Hook Members public: bool HookWindow(); void UnhookWindow(); protected: CMmcMsgHook* m_pMsgHook; // MMC Interface Members public: LPCONSOLENAMESPACE2 GetConsoleNamespacePtr(); LPCONSOLE2 GetConsolePtr(); LPIMAGELIST GetImageListPtr(); LPUNKNOWN GetCustomOcxPtr(); protected: LPCONSOLENAMESPACE2 m_pIConsoleNamespace; LPCONSOLE2 m_pIConsole; LPIMAGELIST m_pIImageList; // MMC Scope Pane Helper Members public: CScopePaneItem* GetSelectedScopeItem(); void SetSelectedScopeItem(CScopePaneItem* pItem); protected: CScopePaneItem* m_pSelectedScopeItem; // Scope Item Icon Management public: int AddIcon(UINT nIconResID); int GetIconIndex(UINT nIconResID); int GetIconCount(); void RemoveAllIcons(); protected: CMap m_IconMap; // Results Pane Members public: int GetResultsPaneCount() const; CResultsPane* GetResultsPane(int iIndex); int AddResultsPane(CResultsPane* pPane); void RemoveResultsPane(int iIndex); protected: ResultsPaneArray m_ResultsPanes; // Serialization public: virtual bool OnLoad(CArchive& ar); virtual bool OnSave(CArchive& ar); // MMC Help public: bool ShowTopic(const CString& sHelpTopic); // MFC Operations public: // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CScopePane) public: virtual void OnFinalRelease(); //}}AFX_VIRTUAL // MFC Implementation protected: // Generated message map functions //{{AFX_MSG(CScopePane) // NOTE - the ClassWizard will add and remove member functions here. //}}AFX_MSG DECLARE_MESSAGE_MAP() // Generated OLE dispatch map functions //{{AFX_DISPATCH(CScopePane) // NOTE - the ClassWizard will add and remove member functions here. //}}AFX_DISPATCH DECLARE_DISPATCH_MAP() DECLARE_INTERFACE_MAP() //////////////////////////////// // IComponentData Interface Part BEGIN_INTERFACE_PART(ComponentData,IComponentData) /* [helpstring] */ HRESULT STDMETHODCALLTYPE Initialize( /* [in] */ LPUNKNOWN pUnknown); /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateComponent( /* [out] */ LPCOMPONENT __RPC_FAR *ppComponent); /* [helpstring] */ HRESULT STDMETHODCALLTYPE Notify( /* [in] */ LPDATAOBJECT lpDataObject, /* [in] */ MMC_NOTIFY_TYPE event, /* [in] */ LPARAM arg, /* [in] */ LPARAM param); /* [helpstring] */ HRESULT STDMETHODCALLTYPE Destroy( void); /* [helpstring] */ HRESULT STDMETHODCALLTYPE QueryDataObject( /* [in] */ MMC_COOKIE cookie, /* [in] */ DATA_OBJECT_TYPES type, /* [out] */ LPDATAOBJECT __RPC_FAR *ppDataObject); /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDisplayInfo( /* [out][in] */ SCOPEDATAITEM __RPC_FAR *pScopeDataItem); /* [helpstring] */ HRESULT STDMETHODCALLTYPE CompareObjects( /* [in] */ LPDATAOBJECT lpDataObjectA, /* [in] */ LPDATAOBJECT lpDataObjectB); END_INTERFACE_PART(ComponentData) //////////////////////////////// // IPersistStream Interface Part BEGIN_INTERFACE_PART(PersistStream,IPersistStream) HRESULT STDMETHODCALLTYPE GetClassID( /* [out] */ CLSID __RPC_FAR *pClassID); HRESULT STDMETHODCALLTYPE IsDirty( void); HRESULT STDMETHODCALLTYPE Load( /* [unique][in] */ IStream __RPC_FAR *pStm); HRESULT STDMETHODCALLTYPE Save( /* [unique][in] */ IStream __RPC_FAR *pStm, /* [in] */ BOOL fClearDirty); HRESULT STDMETHODCALLTYPE GetSizeMax( /* [out] */ ULARGE_INTEGER __RPC_FAR *pcbSize); END_INTERFACE_PART(PersistStream) //////////////////////////////// // IExtendContextMenu Interface Part BEGIN_INTERFACE_PART(ExtendContextMenu,IExtendContextMenu) /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddMenuItems( /* [in] */ LPDATAOBJECT piDataObject, /* [in] */ LPCONTEXTMENUCALLBACK piCallback, /* [out][in] */ long __RPC_FAR *pInsertionAllowed); /* [helpstring] */ HRESULT STDMETHODCALLTYPE Command( /* [in] */ long lCommandID, /* [in] */ LPDATAOBJECT piDataObject); END_INTERFACE_PART(ExtendContextMenu) //////////////////////////////// // IExtendPropertySheet2 Interface Part BEGIN_INTERFACE_PART(ExtendPropertySheet2,IExtendPropertySheet2) /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreatePropertyPages( /* [in] */ LPPROPERTYSHEETCALLBACK lpProvider, /* [in] */ LONG_PTR handle, /* [in] */ LPDATAOBJECT lpIDataObject); /* [helpstring] */ HRESULT STDMETHODCALLTYPE QueryPagesFor( /* [in] */ LPDATAOBJECT lpDataObject); /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetWatermarks( /* [in] */ LPDATAOBJECT lpIDataObject, /* [out] */ HBITMAP __RPC_FAR *lphWatermark, /* [out] */ HBITMAP __RPC_FAR *lphHeader, /* [out] */ HPALETTE __RPC_FAR *lphPalette, /* [out] */ BOOL __RPC_FAR *bStretch); END_INTERFACE_PART(ExtendPropertySheet2) //////////////////////////////// // ISnapinHelp Interface Part BEGIN_INTERFACE_PART(SnapinHelp,ISnapinHelp) /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetHelpTopic( /* [out] */ LPOLESTR __RPC_FAR *lpCompiledHelpFile); END_INTERFACE_PART(SnapinHelp) }; ///////////////////////////////////////////////////////////////////////////// //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_SCOPEPANE_H__7D4A6859_9056_11D2_BD45_0000F87A3912__INCLUDED_)