|
|
// msclus.idl : IDL source for msclus.dll // ~~~~~~~~~~ // // History // ?? Mar 1997 - Original creation. // 12 May 1997 - Changed the collections to use Add/Remove/Create/Delete // 14 May 1997 - Changed interface names per code review // //
// This file will be processed by the MIDL tool to // produce the type library (msclus.tlb) and marshalling code.
// UUIDS for MSCLUS // e9d74360-e986-11d0-a1cf-00a024ab73e5 -- interface IClusterApplication; // e9d74361-e986-11d0-a1cf-00a024ab73e5 -- interface Clusters // e9d74362-e986-11d0-a1cf-00a024ab73e5 -- interface ICluster // e9d74363-e986-11d0-a1cf-00a024ab73e5 -- interface ClusNode // e9d74364-e986-11d0-a1cf-00a024ab73e5 -- interface ClusNodes // e9d74365-e986-11d0-a1cf-00a024ab73e5 -- interface ClusResGroup // e9d74366-e986-11d0-a1cf-00a024ab73e5 -- interface ClusResGroups // e9d74367-e986-11d0-a1cf-00a024ab73e5 -- interface ClusResource // e9d74368-e986-11d0-a1cf-00a024ab73e5 -- interface ClusResources // e9d74369-e986-11d0-a1cf-00a024ab73e5 -- interface ClusResType // e9d7436a-e986-11d0-a1cf-00a024ab73e5 -- interface ClusResTypes // e9d7436b-e986-11d0-a1cf-00a024ab73e5 -- interface ClusProperty // e9d7436c-e986-11d0-a1cf-00a024ab73e5 -- interface ClusProperties // e9d7436d-e986-11d0-a1cf-00a024ab73e5 -- interface IClusterDomain // e9d7436e-e986-11d0-a1cf-00a024ab73e5 -- interface Domains // e9d7436f-e986-11d0-a1cf-00a024ab73e5
// e9d74370-e986-11d0-a1cf-00a024ab73e5 -- library MSClusterLib // e9d74371-e986-11d0-a1cf-00a024ab73e5 -- coclass Application // e9d74372-e986-11d0-a1cf-00a024ab73e5 -- coclass Cluster // e9d74373-e986-11d0-a1cf-00a024ab73e5 -- coclass ClusterDomain // e9d74374-e986-11d0-a1cf-00a024ab73e5 // e9d74375-e986-11d0-a1cf-00a024ab73e5 // e9d74376-e986-11d0-a1cf-00a024ab73e5 // e9d74377-e986-11d0-a1cf-00a024ab73e5 // e9d74378-e986-11d0-a1cf-00a024ab73e5 // e9d74379-e986-11d0-a1cf-00a024ab73e5 // e9d7437a-e986-11d0-a1cf-00a024ab73e5 // e9d7437b-e986-11d0-a1cf-00a024ab73e5 // e9d7437c-e986-11d0-a1cf-00a024ab73e5 // e9d7437d-e986-11d0-a1cf-00a024ab73e5 // e9d7437e-e986-11d0-a1cf-00a024ab73e5 // e9d7437f-e986-11d0-a1cf-00a024ab73e5
import "oaidl.idl"; cpp_quote("#ifndef _CLUSTER_API_TYPES_") #include "clusapi.h" cpp_quote("#define _CLUSTER_API_TYPES_") cpp_quote("#endif // _CLUSTER_API_TYPES_")
/////////////////////////////////////// // definitions interface IClusterApplication; interface IClusterDomain; interface ICluster;
interface Domains; interface Clusters;
//old interface ClusterNode; interface ClusNode; //old interface ClusterNodes; interface ClusNodes;
//old interface ResourceGroup; interface ClusResGroup; //old interface ResourceGroups; interface ClusResGroups;
//old interface Resource; interface ClusResource; //old interface Resources; interface ClusResources;
//old interface ResourceType; interface ClusResType; //old interface ResourceTypes; interface ClusResTypes;
//old interface ClusterProperty; interface ClusProperty; //old interface ClusterProperties; interface ClusProperties;
// ///////////////////////////////////////
///////////////////////////////////////////////// // Application [ object, uuid(e9d74360-e986-11d0-a1cf-00a024ab73e5), dual, helpstring("Application Interface"), hidden, pointer_default(unique) ] interface IClusterApplication : IDispatch { [propget] HRESULT Domains( [out, retval] Domains ** ppDomains );
HRESULT OpenCluster( [in] BSTR bstrClusterName, [out, retval] ICluster ** pCluster ); };
///////////////////////////////////////////////// // Domains [ object, uuid(e9d7436e-e986-11d0-a1cf-00a024ab73e5), dual, helpstring("Domains collection"), pointer_default(unique) ] interface Domains : IDispatch { [propget] HRESULT Count( [out, retval] long * pnCount );
[propget, id(DISPID_VALUE)] HRESULT Item( [in] VARIANT varIndex, [out, retval] IClusterDomain ** ppClusterDomain ); HRESULT AddItem( [in] IClusterDomain * pClusterDomain ); };
///////////////////////////////////////////////// // ClusterDomain [ object, uuid(e9d7436d-e986-11d0-a1cf-00a024ab73e5), dual, helpstring("ClusterDomain Interface"), hidden, pointer_default(unique) ] interface IClusterDomain : IDispatch { ///////////////////////////////// // ClusterDomain
[propget] HRESULT DomainName( [out, retval] BSTR * pbstrDomainName );
[propget] HRESULT Clusters( [out, retval] Clusters ** ppClusters );
};
///////////////////////////////////////////////// // Clusters [ object, uuid(e9d74361-e986-11d0-a1cf-00a024ab73e5), dual, helpstring("Clusters collection"), pointer_default(unique) ] interface Clusters : IDispatch { [propget] HRESULT DomainName( [out, retval] BSTR * pbstrDomainName );
[propget] HRESULT Count( [out, retval] long * pnCount );
[propget, id(DISPID_VALUE), helpstring("Index by integer")] HRESULT Item( [in] LONG nIndex, [out, retval] BSTR * bstrClusterName ); };
///////////////////////////////////////////////// // Cluster [ object, uuid(e9d74362-e986-11d0-a1cf-00a024ab73e5), dual, helpstring("Cluster Interface"), hidden, pointer_default(unique) ] interface ICluster : IDispatch { ///////////////////////////////// // Cluster [propget, hidden] HRESULT Handle( [out, retval] LONG * phandle );
HRESULT Open( [in] BSTR bstrClusterName );
HRESULT Close();
[propput] HRESULT Name( [in] BSTR bstrClusterName );
[propget] HRESULT Name( [out, retval] BSTR * pbstrClusterName );
HRESULT GetVersion( [out] BSTR * pbstrClusterName, [out] SHORT * MajorVersion, [out] SHORT * MinorVersion, [out] SHORT * BuildNumber, [out] BSTR * pbstrVendorId, [out] BSTR * pbstrCSDVersion );
///////////////////////////////// // Quorum Resource [propput] HRESULT QuorumResource( [in] ClusResource * pClusterResource );
[propget] HRESULT QuorumResource( [out, retval] ClusResource ** pClusterResource );
///////////////////////////////// // Cluster Nodes
[propget] HRESULT Nodes( [out, retval] ClusNodes ** ppClusterNodes );
///////////////////////////////// // Cluster Resource Groups
[propget] HRESULT ResourceGroups( [out, retval] ClusResGroups ** ppClusterResourceGroups );
///////////////////////////////// // Cluster Resources
[propget] HRESULT Resources( [out, retval] ClusResources ** ppClusterResources );
///////////////////////////////// // Cluster Resource Types
[propget] HRESULT ResourceTypes( [out, retval] ClusResTypes ** ppResourceTypes );
};
///////////////////////////////////////////////// // ClusNode [ object, uuid(e9d74363-e986-11d0-a1cf-00a024ab73e5), dual, helpstring("Cluster Node Interface"), pointer_default(unique) ] interface ClusNode : IDispatch { [propget, hidden] HRESULT Handle( [out, retval] LONG * phandle );
[propget] HRESULT Name( [out, retval] BSTR * pbstrNodeName );
[propget] HRESULT NodeID( [out, retval] BSTR * pbstrNodeID );
[propget] HRESULT State( [out,retval] LONG * dwState );
HRESULT Pause();
HRESULT Resume();
HRESULT Evict();
[propget] HRESULT ResourceGroups( [out, retval] ClusResGroups ** ppResourceGroups );
[propget] HRESULT CommonProperties( [out, retval] ClusProperties ** ppProperties );
[propget] HRESULT PrivateProperties( [out, retval] ClusProperties ** ppProperties );
[propget] HRESULT CommonROProperties( [out, retval] ClusProperties ** ppProperties );
[propget] HRESULT PrivateROProperties( [out, retval] ClusProperties ** ppProperties ); };
///////////////////////////////////////////////// // ClusNodes [ object, uuid(e9d74364-e986-11d0-a1cf-00a024ab73e5), dual, helpstring("Cluster Nodes Interface"), pointer_default(unique) ] interface ClusNodes : IDispatch { [propget] HRESULT Count( [out, retval] long * pnCount );
[propget, id(DISPID_VALUE), helpstring("Index by name or integer")] HRESULT Item( [in] VARIANT varIndex, [out, retval] ClusNode ** ppClusterNode );
[propget, restricted, id(DISPID_NEWENUM)] HRESULT _NewEnum( [out, retval] IUnknown ** ppEnum ); };
///////////////////////////////////////////////// // ClusResGroup [ object, uuid(e9d74365-e986-11d0-a1cf-00a024ab73e5), dual, helpstring("Cluster Resource Group Interface"), pointer_default(unique) ] interface ClusResGroup : IDispatch { [propget, hidden] HRESULT Handle( [out, retval] LONG * phandle );
[propput] HRESULT Name( [in] BSTR bstrGroupName );
[propget] HRESULT Name( [out, retval] BSTR * pbstrGroupName );
[propget] HRESULT State( [out,retval] LONG * dwState );
[propget] HRESULT OwnerNode( [out,retval] ClusNode ** ppOwnerNode );
[propget] HRESULT Resources( [out, retval] ClusResources ** ppClusterResources );
[propget] HRESULT PreferredOwnerNodes( [out, retval] ClusNodes ** ppOwnerNodes );
HRESULT Delete();
HRESULT Online( [in, optional] ClusNode * pDestinationNode );
HRESULT Move( [in, optional] ClusNode * pDestinationNode );
HRESULT Offline();
[propget] HRESULT CommonProperties( [out, retval] ClusProperties ** ppProperties );
[propget] HRESULT PrivateProperties( [out, retval] ClusProperties ** ppProperties );
[propget] HRESULT CommonROProperties( [out, retval] ClusProperties ** ppProperties );
[propget] HRESULT PrivateROProperties( [out, retval] ClusProperties ** ppProperties ); };
///////////////////////////////////////////////// // ClusResGroups [ object, uuid(e9d74366-e986-11d0-a1cf-00a024ab73e5), dual, helpstring("Cluster Resource Groups Interface"), pointer_default(unique) ] interface ClusResGroups : IDispatch { [propget] HRESULT Count( [out, retval] long * pnCount );
[propget, id(DISPID_VALUE)] HRESULT Item( [in] VARIANT varIndex, [out, retval] ClusResGroup ** ppResourceGroup );
[propget, restricted, id(DISPID_NEWENUM)] HRESULT _NewEnum( [out, retval] IUnknown ** ppEnum );
[helpstring("Create a new resource group")] HRESULT CreateItem( [in] BSTR bstrResourceGroupName, [out, retval] ClusResGroup ** ppResourceGroup );
[helpstring("Delete a resource group")] HRESULT DeleteItem( [in] VARIANT varIndex );
[helpstring("Add a resource group to the list.")] HRESULT AddItem( [in] ClusResGroup* pResourceGroup );
[helpstring("Remove a resource group from the list by name or index.")] HRESULT RemoveItem( [in] VARIANT varIndex );
[helpstring("Refresh data in collection")] HRESULT Refresh(); };
///////////////////////////////////////////////// // ClusResource [ object, uuid(e9d74367-e986-11d0-a1cf-00a024ab73e5), dual, helpstring("Cluster Resource Interface"), pointer_default(unique) ] interface ClusResource : IDispatch { [propget, hidden] HRESULT Handle( [out, retval] LONG * phandle );
[propput] HRESULT Name( [in] BSTR bstrResourceName ); [propget] HRESULT Name( [out, retval] BSTR * pbstrResourceName );
[propget] HRESULT State( [out,retval] LONG * dwState );
HRESULT BecomeQuorumResource( [in] BSTR bstrDevicePath, [in] long lMaxLogSize );
HRESULT Delete();
HRESULT Fail(); HRESULT Online(); HRESULT Offline();
HRESULT ChangeResourceGroup( [in] ClusResGroup * pResourceGroup );
HRESULT AddResourceNode( [in] ClusNode * pNode ); HRESULT RemoveResourceNode( [in] ClusNode * pNode );
HRESULT AddResourceDependency( [in] ClusResource * pResource ); HRESULT RemoveResourceDependency( [in] ClusResource * pResource ); HRESULT CanResourceBeDependent( [in] ClusResource * pResource, [out, retval] BOOL * bDependent );
[propget] HRESULT AllowedNodes( [out, retval] ClusNodes ** ppNodes );
[propget] HRESULT Dependencies( [out, retval] ClusResources ** ppResources );
[propget] HRESULT CommonProperties( [out, retval] ClusProperties ** ppProperties );
[propget] HRESULT PrivateProperties( [out, retval] ClusProperties ** ppProperties );
[propget] HRESULT CommonROProperties( [out, retval] ClusProperties ** ppProperties );
[propget] HRESULT PrivateROProperties( [out, retval] ClusProperties ** ppProperties ); };
///////////////////////////////////////////////// // ClusResources [ object, uuid(e9d74368-e986-11d0-a1cf-00a024ab73e5), dual, helpstring("Cluster Resources Interface"), pointer_default(unique) ] interface ClusResources : IDispatch { [propget] HRESULT Count( [out, retval] long * pnCount );
[propget, id(DISPID_VALUE)] HRESULT Item( [in] VARIANT varIndex, [out, retval] ClusResource ** ppClusterResource );
[propget, restricted, id(DISPID_NEWENUM)] HRESULT _NewEnum( [out, retval] IUnknown ** ppEnum );
[helpstring("Create a new resource.")] HRESULT CreateItem( [in] BSTR bstrResourceName, [in] BSTR bstrResourceType, [in] long dwFlags, [out, retval] ClusResource ** ppClusterResource );
[helpstring("Delete a resource by name or index.")] HRESULT DeleteItem( [in] VARIANT varIndex );
[helpstring("Add a resource to the list.")] HRESULT AddItem( [in] ClusResource* pResource );
[helpstring("Remove a resource from the list by name or index.")] HRESULT RemoveItem( [in] VARIANT varIndex );
[helpstring("Refresh data in collection")] HRESULT Refresh(); };
///////////////////////////////////////////////// // ClusResType [ object, uuid(e9d74369-e986-11d0-a1cf-00a024ab73e5), dual, helpstring("Cluster Resource Type"), pointer_default(unique) ] interface ClusResType : IDispatch { [propget] HRESULT Name( [out, retval] BSTR * strTypeName );
HRESULT Delete();
[propget] HRESULT CommonProperties( [out, retval] ClusProperties ** ppProperties );
[propget] HRESULT PrivateProperties( [out, retval] ClusProperties ** ppProperties );
[propget] HRESULT CommonROProperties( [out, retval] ClusProperties ** ppProperties );
[propget] HRESULT PrivateROProperties( [out, retval] ClusProperties ** ppProperties ); };
///////////////////////////////////////////////// // ClusResTypes [ object, uuid(e9d7436a-e986-11d0-a1cf-00a024ab73e5), dual, helpstring("Cluster Resource Types"), pointer_default(unique) ] interface ClusResTypes : IDispatch { [propget] HRESULT Count( [out, retval] long * pnCount );
[propget, id(DISPID_VALUE)] HRESULT Item( [in] VARIANT varIndex, [out, retval] ClusResType ** ppResourceType );
[propget, restricted, id(DISPID_NEWENUM)] HRESULT _NewEnum( [out, retval] IUnknown ** ppEnum );
[helpstring("Create a resource type")] HRESULT CreateItem( [in] BSTR bstrResourceTypeName, [in] BSTR bstrDisplayName, [in] BSTR bstrResourceTypeDll, [in] LONG dwLooksAlivePollInterval, [in] LONG dwIsAlivePollInterval, [out, retval] ClusResType ** ppResourceType );
[helpstring("Delete a resource type")] HRESULT DeleteItem( [in] VARIANT varIndex );
[helpstring("Add a resource type to the list.")] HRESULT AddItem( [in] ClusResType * pResourceType );
[helpstring("Remove a resource type from the list by name or index.")] HRESULT RemoveItem( [in] VARIANT varIndex );
[helpstring("Refresh data in collection")] HRESULT Refresh(); };
///////////////////////////////////////////////// // ClusProperty [ object, uuid(e9d7436b-e986-11d0-a1cf-00a024ab73e5), dual, helpstring("Property of an object in the cluster"), pointer_default(unique) ] interface ClusProperty : IDispatch { [propget] HRESULT Name( [out, retval] BSTR * pbstrName );
[propget] HRESULT Value( [out, retval] VARIANT * pvarValue );
[propput, id(DISPID_VALUE)] HRESULT Value( [in] VARIANT varValue ); };
///////////////////////////////////////////////// // ClusProperties [ object, uuid(e9d7436c-e986-11d0-a1cf-00a024ab73e5), dual, helpstring("ClusProperty collection"), pointer_default(unique) ] interface ClusProperties : IDispatch { [propget] HRESULT Count( [out, retval] long * pnCount );
[propget, id(DISPID_VALUE)] HRESULT Item( [in] VARIANT varIndex, [out, retval] ClusProperty ** ppProperty );
[propget, restricted, id(DISPID_NEWENUM)] HRESULT _NewEnum( [out, retval] IUnknown ** ppEnum );
[helpstring("Add an object")] HRESULT Add( [in] BSTR bstrName, [in] VARIANT varValue, [out, retval] ClusProperty ** pProperty );
[helpstring("Remove an object")] HRESULT Remove( [in] VARIANT varIndex );
[helpstring("Refresh data in collection")] HRESULT Refresh();
[helpstring("Save all property changes")] HRESULT SaveChanges(); };
///////////////////////////////////////////////////////// // MSClusterLib [ uuid(e9d74370-e986-11d0-a1cf-00a024ab73e5), version(1.0), helpstring("MS Cluster 1.0 Type Library") ] library MSClusterLib { importlib("stdole2.tlb");
// Temporary include file for CLUSAPI constants. // #include "cluconst.idl"
[ uuid(e9d74371-e986-11d0-a1cf-00a024ab73e5), helpstring("Application Class") ] coclass Application { [default] interface IClusterApplication; };
[ uuid(e9d74372-e986-11d0-a1cf-00a024ab73e5), helpstring("Cluster Class") ] coclass Cluster { [default] interface ICluster; };
[ uuid(e9d74373-e986-11d0-a1cf-00a024ab73e5), helpstring("ClusterDomain Class") ] coclass ClusterDomain { [default] interface IClusterDomain; };
};
|