Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

419 lines
13 KiB

/*++
© 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;
};
};