|
|
/*++
� 1998 Seagate Software, Inc. All rights reserved.
Module Name:
HsmAdmin.idl
Abstract:
IDL source for HSM Admin SnapIn.
Author:
Rohde Wakefield [rohde] 04-Mar-1997
Revision History:
--*/
// Standard types import "oaidl.idl"; import "comcat.idl"; import "mmc.idl";
import "hsmeng.idl"; import "rmsint.idl"; import "fsaint.idl";
// Necessary for OLE Automation support import "ocidl.idl";
interface ISakNode; interface ISakWizard;
// // Need a type to wrap MMC handles since these are in flux // typedef LONG_PTR RS_NOTIFY_HANDLE; typedef LONG_PTR RS_WIN32_HANDLE; typedef LONG_PTR RS_PCREATE_HANDLE; typedef LONG_PTR RS_PRIVATE_DATA;
//------------------------------------------------------------------------ // // ISakSnapAsk // // This is an interface that any UI node can use to get information from // the snapin about high-level snapin stuff // //------------------------------------------------------------------------
[ object, uuid(4E769F52-5512-11d0-8F99-00A0C9190447) ] interface ISakSnapAsk : IUnknown { HRESULT GetNodeOfType([in] REFGUID nodetype, [out] ISakNode** ppNode); HRESULT RefreshNode([in] ISakNode* pUnkNode); HRESULT ShowPropertySheet([in] ISakNode* pUnkNode, [in] IDataObject *pDataObject, [in] int initialPage); HRESULT UpdateAllViews ([in] ISakNode* pUnkNode); HRESULT GetHsmServer([out] IHsmServer** ppHsmServer); HRESULT GetRmsServer([out] IRmsServer** ppRmsServer); HRESULT GetFsaServer([out] IFsaServer** ppFsaServer); HRESULT GetHsmName([out, string] OLECHAR ** pszName); HRESULT GetState(); HRESULT Disable( [in] BOOL Disabled ); HRESULT IsDisabled( ); HRESULT CreateWizard( [in] ISakWizard * pWizard ); HRESULT DetachFromNode( [in] ISakNode* pNode );
};
//------------------------------------------------------------------------ // // ISakNode // //------------------------------------------------------------------------
[ object, uuid(C4F67F02-119C-11D0-8070-00A0C905F098) ] interface ISakNode : IUnknown { HRESULT InitNode( [in] ISakSnapAsk* pSakSnapAsk, [in] IUnknown* pHsmObj, [in] ISakNode* pParent ); HRESULT TerminateNode( void ); HRESULT GetHsmObj( [out] IUnknown** ppHsmObj ); HRESULT GetNodeType( [out] GUID *pGuid ); HRESULT FindNodeOfType( [in] REFGUID nodetype, [out] ISakNode** ppNode ); HRESULT GetPrivateData( [out] RS_PRIVATE_DATA* pData ); HRESULT SetPrivateData( [in] RS_PRIVATE_DATA Data ); HRESULT GetEnumState( [out] BOOL* pState ); HRESULT SetEnumState( [in] BOOL EnumState ); HRESULT GetScopeID( [out] HSCOPEITEM* pId ); HRESULT SetScopeID( [in] HSCOPEITEM Id ); HRESULT GetParent( [out] ISakNode ** ppParent ); HRESULT IsContainer( ); HRESULT CreateChildren( ); HRESULT EnumChildren( [out] IEnumUnknown ** ppEnum ); HRESULT DeleteChildren( ); HRESULT DeleteAllChildren( ); HRESULT ChildrenAreValid( ); HRESULT InvalidateChildren( ); HRESULT HasDynamicChildren( ); HRESULT IsValid( ); HRESULT EnumChildDisplayProps( [out] IEnumString ** ppEnum ); HRESULT EnumChildDisplayTitles( [out] IEnumString ** ppEnum ); HRESULT EnumChildDisplayPropWidths( [out] IEnumString ** ppEnum ); HRESULT InvokeCommand( [in] SHORT sCmd, [in] IDataObject *pDataObject ); HRESULT GetContextMenu( [in] BOOL bMultiSelect, [out] HMENU *phMenu); HRESULT GetMenuHelp( [in] LONG sCmd, [out] BSTR * szHelp ); HRESULT SupportsProperties( [in] BOOL bMultiSelect ); HRESULT SupportsPropertiesNoEngine( ); HRESULT SupportsDelete( [in] BOOL bMultiSelect ); HRESULT SupportsRefresh( [in] BOOL bMultiSelect ); HRESULT SupportsRefreshNoEngine( ); HRESULT AddPropertyPages([in]RS_PCREATE_HANDLE handle, [in] IUnknown* lpPropSheetCallback, [in] IEnumGUID* pEnumObjectId, [in] IEnumUnknown *pEnumUnkNode ); HRESULT ActivateView( [in] OLE_HANDLE hWnd ); HRESULT RefreshObject( ); HRESULT DeleteObject( ); HRESULT GetScopeOpenIcon ([in] BOOL bOK, [out] int* pIconIndex); HRESULT GetScopeCloseIcon ([in] BOOL bOK, [out] int* pIconIndex); HRESULT GetResultIcon ([in] BOOL bOK, [out] int* pIconIndex); HRESULT GetObjectId ([out] GUID *objectId); HRESULT SetObjectId ([in] GUID objectId); HRESULT SetupToolbar ([in] IToolbar *pToolbar ); HRESULT HasToolbar ( ); HRESULT OnToolbarButtonClick ([in] IDataObject *pDataObject, [in] LONG cmdId );
};
//------------------------------------------------------------------------ // // ISakNodeProp // //------------------------------------------------------------------------
[ object, uuid(C4F67F03-119C-11D0-8070-00A0C905F098), dual ] interface ISakNodeProp : IDispatch { [propget] HRESULT DisplayName( [out, retval, string] BSTR *pszName );
[propput] HRESULT DisplayName( [in] BSTR pszName );
[propget] HRESULT DisplayName_SortKey( [out, retval, string] BSTR *pszName );
[propput] HRESULT DisplayName_SortKey( [in] BSTR pszName );
[propget] HRESULT Type( [out, retval, string] BSTR *pszType );
[propput] HRESULT Type( [in] BSTR pszType );
[propget] HRESULT Type_SortKey( [out, retval, string] BSTR *pszType );
[propget] HRESULT Description( [out, retval, string] BSTR *pszDesc );
[propput] HRESULT Description( [in] BSTR pszDesc );
[propget] HRESULT Description_SortKey( [out, retval, string] BSTR *pszName );
};
//------------------------------------------------------------------------ // // IMsDataObject // //------------------------------------------------------------------------
[ object, uuid(374ba600-3aa0-11d1-b990-00a0c9190447) ] interface IMsDataObject : IUnknown { HRESULT AddNode ( [in] ISakNode *pNode ); HRESULT GetNodeEnumerator ( [out] IEnumUnknown ** ppEnum ); HRESULT GetObjectIdEnumerator ( [out] IEnumGUID ** ppEnumObjectId ); };
//------------------------------------------------------------------------ // // ILibrary - keep this around as an example, // allthough it is not currently used. // //------------------------------------------------------------------------
[ object, uuid(A00226E1-1B0D-11d0-8070-00A0C905F098), dual, pointer_default(unique) ] interface ICartridge : ISakNodeProp {
[propget] HRESULT MediaTypeP( [out, retval, string] BSTR *pszValue );
[propget] HRESULT CapacityP( [out, retval, string] BSTR *pszValue );
[propget] HRESULT CapacityP_SortKey( [out, retval, string] BSTR *pszValue );
[propget] HRESULT FreeSpaceP( [out, retval, string] BSTR *pszValue );
[propget] HRESULT FreeSpaceP_SortKey( [out, retval, string] BSTR *pszValue );
[propget] HRESULT StatusP( [out, retval, string] BSTR *pszValue );
[propget] HRESULT StatusP_SortKey( [out, retval, string] BSTR *pszValue );
[propget] HRESULT CopySet1P( [out, retval, string] BSTR *pszValue );
[propget] HRESULT CopySet1P_SortKey( [out, retval, string] BSTR *pszValue );
[propget] HRESULT CopySet2P( [out, retval, string] BSTR *pszValue );
[propget] HRESULT CopySet2P_SortKey( [out, retval, string] BSTR *pszValue );
[propget] HRESULT CopySet3P( [out, retval, string] BSTR *pszValue );
[propget] HRESULT CopySet3P_SortKey( [out, retval, string] BSTR *pszValue );
}
//------------------------------------------------------------------------ // // IManVolProp // //------------------------------------------------------------------------
[ object, uuid(EAA46600-E736-11D0-B988-00A0C9190447), dual, pointer_default(unique) ] interface IManVolProp : ISakNodeProp { [propget] HRESULT DesiredFreeSpaceP( [out, retval, string] BSTR *pszValue ); [propget] HRESULT DesiredFreeSpaceP_SortKey( [out, retval, string] BSTR *pszValue ); [propget] HRESULT MinFileSizeKb( [out, retval, string] BSTR *pszValue ); [propget] HRESULT AccessDays ( [out, retval, string] BSTR *pszValue ); [propget] HRESULT FreeSpaceP( [out, retval, string] BSTR *pszValue ); [propget] HRESULT Capacity( [out, retval, string] BSTR *pszValue ); [propget] HRESULT Capacity_SortKey( [out, retval, string] BSTR *pszValue ); [propget] HRESULT FreeSpace( [out, retval, string] BSTR *pszValue ); [propget] HRESULT FreeSpace_SortKey( [out, retval, string] BSTR *pszValue ); [propget] HRESULT Premigrated( [out, retval, string] BSTR *pszValue ); [propget] HRESULT Truncated( [out, retval, string] BSTR *pszValue );
}
//------------------------------------------------------------------------ // // ISakWizard // // This is an interface that is used to create the a wizard // // //------------------------------------------------------------------------
[ object, uuid(4E769F53-5512-11d0-8F99-00A0C9190447) ] interface ISakWizard : IUnknown {
HRESULT AddWizardPages([in] RS_PCREATE_HANDLE Handle, [in] IUnknown* pPropSheetCallback, [in] ISakSnapAsk* pSakSnapAsk );
HRESULT GetWatermarks([out] HBITMAP* pWatermark, [out] HBITMAP* pHeader, [out] HPALETTE* pPalette, [out] BOOL* pStretch);
HRESULT GetTitle( [out, string] OLECHAR ** pTitle );
};
//------------------------------------------------------------------------ // // LIBID_HSMADMINLib - Type Library // // Necessary both for the dispatch interfaces (the generated .tlb file) // and for the class ids (in _i.c file). This section defines the type // library, and all the COM objects that this library contains (nodes // in the HSM system. // //------------------------------------------------------------------------
[
uuid(C4F67F00-119C-11D0-8070-00A0C905F098), version(1.0) ] library HSMADMINLib { importlib("stdole2.tlb");
[ uuid(0B9A3960-8C3E-11d0-B797-00A02488FCDE), ] coclass HsmAdminDataSnapin { [default] interface IUnknown; };
[ uuid(AB926900-77F8-11d1-B9A0-00A0C9190447), ] coclass HsmAdminDataExtension { [default] interface IUnknown; };
[ uuid(A6CB8422-7EB8-11d0-8FC3-00A0C9190447), ] coclass HsmAdmin { [default] interface IUnknown; };
[ uuid(F7974E22-6823-11d0-8FA3-00A0C9190447), ] coclass CUiCar { [default] interface ICartridge; };
[ uuid(DEAAB3B2-8AAB-11d0-8FCD-00A0C9190447), ] coclass CUiMedSet { [default] interface ISakNodeProp; };
[ uuid(F30A9FD3-1BC4-11d0-964E-00A0C905F099), ] coclass CUiManVolLst { [default] interface IManVolProp; };
[ uuid(D82438F1-1C60-11d0-964E-00A0C905F099), ] coclass CUiHsmCom { [default] interface ISakNodeProp; };
[ uuid(D82438F4-1C60-11d0-964E-00A0C905F099), ] coclass CUiManVol { [default] interface ISakNodeProp; };
[ uuid(E1141BAB-08F6-11D1-B98A-00A0C9190447), helpstring("About Class") ] coclass CAbout { [default] interface IUnknown; };
};
|