/*++ © 1998 Seagate Software, Inc. All rights reserved Module Name: ManVol.h Abstract: Node representing a Managed Volume. Author: Rohde Wakefield [rohde] 12-Aug-1997 Revision History: --*/ #ifndef _MANVOL_H #define _MANVOL_H #include "PrMrSts.h" #include "PrMrIE.h" #include "PrMrLvl.h" #include "SakNodeI.h" class ATL_NO_VTABLE CUiManVol : public CSakNodeImpl, public CComCoClass, public CComDualImpl { public: // constructor/destructor CUiManVol(void) {}; BEGIN_COM_MAP(CUiManVol) COM_INTERFACE_ENTRY2(IDispatch, IManVolProp) COM_INTERFACE_ENTRY2(ISakNodeProp, IManVolProp) COM_INTERFACE_ENTRY(IHsmEvent) COM_INTERFACE_ENTRY(ISakNode) COM_INTERFACE_ENTRY(IDataObject) END_COM_MAP() DECLARE_REGISTRY_RESOURCEID(IDR_CUiManVol) // for multiple-inheritance, forward all base implementations to CSakNode. FORWARD_BASEHSM_IMPLS HRESULT FinalConstruct( void ); void FinalRelease( void ); public: STDMETHOD( InvokeCommand ) ( SHORT sCmd, IDataObject *pDataObject ); STDMETHOD( GetContextMenu ) ( BOOL bMultiSelect, HMENU *phMenu ); // ISakNode methods STDMETHOD( InitNode ) ( ISakSnapAsk* pSakSnapAsk, IUnknown* pHsmObj, ISakNode* pParent ); STDMETHOD( TerminateNode ) ( void ); STDMETHOD( AddPropertyPages ) ( RS_NOTIFY_HANDLE handle, IUnknown* pUnkPropSheetCallback, IEnumGUID* pEnumObjectId, IEnumUnknown *pEnumUnkNode ); STDMETHOD( RefreshObject ) ( ); STDMETHOD( OnToolbarButtonClick ) ( IDataObject *pDataObject, long cmdId ); STDMETHOD( GetResultIcon ) ( IN BOOL bOK, OUT int* pIconIndex ); STDMETHOD( SupportsProperties ) ( BOOL bMutliSelec ); STDMETHOD( SupportsRefresh ) ( BOOL bMutliSelect ); STDMETHOD( IsValid ) ( ); // IManVolProp methods STDMETHOD( get_DesiredFreeSpaceP ) ( BSTR *pszValue ); STDMETHOD( get_DesiredFreeSpaceP_SortKey )( BSTR *pszValue ); STDMETHOD( get_MinFileSizeKb ) ( BSTR *pszValue ); STDMETHOD( get_AccessDays ) ( BSTR *pszValue ); STDMETHOD( get_FreeSpaceP ) ( BSTR *pszValue ); STDMETHOD( get_Capacity ) ( BSTR *pszValue ); STDMETHOD( get_Capacity_SortKey ) ( BSTR *pszValue ); STDMETHOD( get_FreeSpace ) ( BSTR *pszValue ); STDMETHOD( get_FreeSpace_SortKey ) ( BSTR *pszValue ); STDMETHOD( get_Premigrated ) ( BSTR *pszValue ); STDMETHOD( get_Truncated ) ( BSTR *pszValue ); // 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 private: HRESULT RemoveObject( ); HRESULT ShowManVolProperties (IDataObject *pDataObject, int initialPage); HRESULT CreateAndRunManVolJob (HSM_JOB_DEF_TYPE jobType); HRESULT HandleTask(IDataObject * pDataObject, HSM_JOB_DEF_TYPE jobType); HRESULT IsDataObjectMs ( IDataObject *pDataObject ); HRESULT IsDataObjectOt ( IDataObject *pDataObject ); HRESULT IsDataObjectMultiSelect ( IDataObject *pDataObject ); HRESULT GetOtFromMs ( IDataObject *pDataObject, IDataObject ** pOtDataObject ); HRESULT GetTaskTypeMessageId ( HSM_JOB_DEF_TYPE jobType, BOOL multiSelect, UINT* msgId ); HRESULT IsAvailable ( ); // Put properties HRESULT put_DesiredFreeSpaceP (int percent); HRESULT put_MinFileSizeKb (LONG minFileSizeKb); HRESULT put_AccessDays (int accessTimeDays); HRESULT put_FreeSpaceP (int percent); HRESULT put_Capacity (LONGLONG capacity); HRESULT put_FreeSpace (LONGLONG freeSpace); HRESULT put_Premigrated (LONGLONG premigrated); HRESULT put_Truncated (LONGLONG truncated); HRESULT put_IsAvailable( BOOL Available ); // Properties for display int m_DesiredFreeSpaceP; LONG m_MinFileSizeKb; int m_AccessDays; int m_FreeSpaceP; LONGLONG m_Capacity; LONGLONG m_FreeSpace; LONGLONG m_Premigrated; LONGLONG m_Truncated; HRESULT m_HrAvailable; static int m_nResultIconD; static UINT m_MultiSelect; static UINT m_ObjectTypes; public: CComPtr m_pFsaResource; }; class CUiManVolSheet : public CSakVolPropSheet { public: HRESULT AddPropertyPages( ); HRESULT GetNextFsaResource( int *pBookMark, IFsaResource ** ppFsaResource ); CUiManVolSheet( ) { }; private: }; #endif /////////////////////////////////////////////////////////////////////////////