/*++ © 1998 Seagate Software, Inc. All rights reserved. Module Name: HsmCom.h Abstract: Root node of snapin - represents the Computer. Author: Rohde Wakefield [rohde] 12-Aug-1997 Revision History: --*/ #ifndef _HSMCOM_H #define _HSMCOM_H #include "prhsmcom.h" #include "SakNodeI.h" class ATL_NO_VTABLE CUiHsmCom : public CSakNodeImpl, public CComCoClass { public: // constructor/destructor CUiHsmCom(void) {}; BEGIN_COM_MAP(CUiHsmCom) COM_INTERFACE_ENTRY2(IDispatch, ISakNodeProp) COM_INTERFACE_ENTRY(ISakNode) COM_INTERFACE_ENTRY(IDataObject) COM_INTERFACE_ENTRY(ISakNodeProp) END_COM_MAP() DECLARE_REGISTRY_RESOURCEID(IDR_CUiHsmCom) HRESULT FinalConstruct( void ); void FinalRelease( void ); public: // ISakNode methods STDMETHOD( InvokeCommand ) ( SHORT sCmd, IDataObject *pDataObject ); STDMETHOD( GetContextMenu ) ( BOOL bMultiSelect, HMENU *phMenu ); STDMETHOD( CreateChildren ) ( ); STDMETHOD( InitNode ) ( ISakSnapAsk* pSakSnapAsk, IUnknown* pHsmObj, ISakNode* pParent ); STDMETHOD( AddPropertyPages) ( RS_NOTIFY_HANDLE handle, IUnknown* pUnkPropSheetCallback, IEnumGUID* pEnumObjectId, IEnumUnknown *pEnumUnkNode ); // data members // static, class-wide variables static INT m_nScopeOpenIconIndex; // virtual scope index of Open Icon static INT m_nScopeCloseIconIndex; // virtual scope index of Close Icon static INT m_nResultIconIndex; // virtual scope index of Close Icon // data member unique to this class. CWsbStringPtr m_szHsmName; // name of Hsm // property pages CPropHsmComStat* m_pPageStat; CPropHsmComStat* m_pPageServices; // Private helper functions HRESULT GetEngineStatus (HSM_SYS_STS *status); HRESULT SetEngineStatus (HSM_SYS_STS status); HRESULT CheckStatusChange (HSM_SYS_STS oldStatus, HSM_SYS_STS newStatus, BOOL *fOk); }; class CUiHsmComSheet : public CSakPropertySheet { public: CUiHsmComSheet( ) { }; HRESULT AddPropertyPages( ); HRESULT InitSheet( RS_NOTIFY_HANDLE handle, IUnknown *pUnkPropSheetCallback, CSakNode *pSakNode, ISakSnapAsk *pSakSnapAsk, IEnumGUID *pEnumObjectId, IEnumUnknown *pEnumUnkNode); CString m_NodeTitle; private: }; #endif /////////////////////////////////////////////////////////////////////////////