/**********************************************************************/ /** Microsoft Windows/NT **/ /** Copyright(c) Microsoft Corporation, 1997 - 1999 **/ /**********************************************************************/ /* ipxadmin.h Interface administration FILE HISTORY: */ #ifndef _IPXADMIN_H #define _IPXADMIN_H #ifndef _BASEHAND_H #include "basehand.h" #endif #ifndef _HANDLERS_H #include "handlers.h" #endif #ifndef _INFO_H #include "info.h" #endif #ifndef _RTRUTIL_H #include "rtrutil.h" #endif #ifndef _BASERTR_H #include "basertr.h" #endif #ifndef _IPXSTATS_H #include "ipxstats.h" // IPX statistics dialogs #endif #define MPR_INTERFACE_NOT_LOADED 0x00010000 // forward declarations class IPXAdminConfigStream; interface IRouterInfo; struct ColumnData; /*--------------------------------------------------------------------------- We store a pointer to the IPXConnection object in our node data ---------------------------------------------------------------------------*/ #define GET_IPXADMIN_NODEDATA(pNode) \ (IPXConnection *) pNode->GetData(TFS_DATA_USER) #define SET_IPXADMIN_NODEDATA(pNode, pData) \ pNode->SetData(TFS_DATA_USER, (LONG_PTR) pData) /*--------------------------------------------------------------------------- Class: IPXAdminNodeHandler ---------------------------------------------------------------------------*/ class IPXAdminNodeHandler : public BaseRouterHandler { public: IPXAdminNodeHandler(ITFSComponentData *pCompData); ~IPXAdminNodeHandler() { DEBUG_DECREMENT_INSTANCE_COUNTER(IPXAdminNodeHandler) }; HRESULT Init(IRouterInfo *pInfo, IPXAdminConfigStream *pConfigStream); // Override QI to handle embedded interface STDMETHOD(QueryInterface)(REFIID iid, LPVOID *ppv); DeclareEmbeddedInterface(IRtrAdviseSink, IUnknown) // base handler functionality we override OVERRIDE_NodeHandler_OnCommand(); OVERRIDE_NodeHandler_GetString(); OVERRIDE_NodeHandler_OnCreateDataObject(); OVERRIDE_NodeHandler_DestroyHandler(); OVERRIDE_NodeHandler_OnAddMenuItems(); OVERRIDE_NodeHandler_CreatePropertyPages(); OVERRIDE_NodeHandler_HasPropertyPages(); // override handler notifications OVERRIDE_BaseHandlerNotify_OnExpand(); // Initializes the node HRESULT ConstructNode(ITFSNode *pNode, BOOL fAddedAsLocal); // User-initiated commands // Refresh the data for these nodes HRESULT RefreshInterfaces(ITFSNode *pThisNode); public: // Structure used to pass data to callbacks - used as a way of // avoiding recomputation struct SMenuData { SPITFSNode m_spNode; }; protected: SPIRtrMgrInfo m_spRtrMgrInfo; CString m_stTitle; // holds the title of the node BOOL m_bExpanded; // is the node expanded? MMC_COOKIE m_cookie; // cookie for the node LONG_PTR m_ulStatsConnId; // notification id for stats refresh LONG_PTR m_ulConnId; // notification id IPXAdminConfigStream * m_pConfigStream; IpxInfoStatistics m_IpxStats; IpxRoutingStatistics m_IpxRoutingStats; IpxServiceStatistics m_IpxServiceStats; HRESULT OnNewProtocol(); }; HRESULT CreateDataObjectFromRouterInfo(IRouterInfo *pInfo, DATA_OBJECT_TYPES type, MMC_COOKIE cookie, ITFSComponentData *pTFSCompData, IDataObject **ppDataObject, CDynamicExtensions * pDynExt = NULL); HRESULT CreateDataObjectFromRtrMgrInfo(IRtrMgrInfo *pInfo, DATA_OBJECT_TYPES type, MMC_COOKIE cookie, ITFSComponentData *pTFSCompData, IDataObject **ppDataObject, CDynamicExtensions * pDynExt = NULL); HRESULT CreateDataObjectFromRtrMgrProtocolInfo(IRtrMgrProtocolInfo *pInfo, DATA_OBJECT_TYPES type, MMC_COOKIE cookie, ITFSComponentData *pTFSCompData, IDataObject **ppDataObject); HRESULT CreateDataObjectFromInterfaceInfo(IInterfaceInfo *pInfo, DATA_OBJECT_TYPES type, MMC_COOKIE cookie, ITFSComponentData *pTFSCompData, IDataObject **ppDataObject); #endif _IPXADMIN_H