home *** CD-ROM | disk | FTP | other *** search
- //
- // Copyright (C) Microsoft Corporation, 1997. All rights reserved.
- //
-
- // 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
- // 22 July 1997 - Added new interfaces Domains and ClusterDomain.
- // 20 Aug 1997 - Created new interfaces ClusNetwork and ClusNetInterface.
- // - Added new base interfaces ClusObj and ClusObjCollection for all collections and
- // - cluster objects respectively.
- // - Added the following new collections.
- // - ClusNetworks,ClusNetInterfaces,ClusResDependencies, ClusResTypeResources,
- // - ClusGroupOwners and ClusResOwners.
- // 27 Aug 1997 - New comments.
- // - New methods to ICluster.
- // This file will be processed by the MIDL tool to
- // produce the type library (msclus.tlb) and marshalling code.
-
-
-
- // f2e606ea-2631-11d1-89f1-00a0c90d061e -- interface ClusResTypes
- // f2e606eb-2631-11d1-89f1-00a0c90d061e -- interface ClusProperty
- // f2e606ec-2631-11d1-89f1-00a0c90d061e -- interface ClusProperties
- // f2e606ed-2631-11d1-89f1-00a0c90d061e -- interface DomainNames
- // f2e606ee-2631-11d1-89f1-00a0c90d061e -- interface ClusObjCollection
- // f2e606ef-2631-11d1-89f1-00a0c90d061e -- interface ClusObj
- // f2e606f0-2631-11d1-89f1-00a0c90d061e -- library MSClusterLib
- // f2e606f1-2631-11d1-89f1-00a0c90d061e -- coclass Application
- // f2e606f2-2631-11d1-89f1-00a0c90d061e -- coclass Cluster
- // f2e606f3-2631-11d1-89f1-00a0c90d061e -- interface ClusNetwork
- // f2e606f4-2631-11d1-89f1-00a0c90d061e -- interface ClusNetInterface
- // f2e606f5-2631-11d1-89f1-00a0c90d061e -- interface ClusResDependencies
- // f2e606f6-2631-11d1-89f1-00a0c90d061e -- interface ClusGroupResources
- // f2e606f7-2631-11d1-89f1-00a0c90d061e -- interface ClusResTypeResources
- // f2e606f8-2631-11d1-89f1-00a0c90d061e -- interface ClusGroupOwners
- // f2e606f9-2631-11d1-89f1-00a0c90d061e -- interface ClusResOwners
- // f2e606fa-2631-11d1-89f1-00a0c90d061e -- interface ClusNetworks
- // f2e606fb-2631-11d1-89f1-00a0c90d061e -- interface ClusNetInterfaces
- // f2e606fc-2631-11d1-89f1-00a0c90d061e -- interface ClusNetworkNetInterfaces
- // f2e606fd-2631-11d1-89f1-00a0c90d061e -- interface ClusNodeNetInterfaces
- // f2e606fe-2631-11d1-89f1-00a0c90d061e -- interface ClusRefObject
- // f2e606ff-2631-11d1-89f1-00a0c90d061e
- // f2e60700-2631-11d1-89f1-00a0c90d061e
- // f2e60701-2631-11d1-89f1-00a0c90d061e
- // f2e60702-2631-11d1-89f1-00a0c90d061e
- // f2e60703-2631-11d1-89f1-00a0c90d061e
- // f2e60704-2631-11d1-89f1-00a0c90d061e
- // f2e60705-2631-11d1-89f1-00a0c90d061e
- // f2e60706-2631-11d1-89f1-00a0c90d061e
- // f2e60707-2631-11d1-89f1-00a0c90d061e
-
- // UUIDS for MSCLUS
- // f2e606e0-2631-11d1-89f1-00a0c90d061e -- interface IClusterApplication;
- // f2e606e1-2631-11d1-89f1-00a0c90d061e -- interface ClusterNames
- // f2e606e2-2631-11d1-89f1-00a0c90d061e -- interface ICluster
- // f2e606e3-2631-11d1-89f1-00a0c90d061e -- interface ClusNode
- // f2e606e4-2631-11d1-89f1-00a0c90d061e -- interface ClusNodes
- // f2e606e5-2631-11d1-89f1-00a0c90d061e -- interface ClusResGroup
- // f2e606e6-2631-11d1-89f1-00a0c90d061e -- interface ClusResGroups
- // f2e606e7-2631-11d1-89f1-00a0c90d061e -- interface ClusResource
- // f2e606e8-2631-11d1-89f1-00a0c90d061e -- interface ClusResources
- // f2e606e9-2631-11d1-89f1-00a0c90d061e -- interface ClusResType
-
-
- 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 ICluster;
- // A reference Object that reference Counts the Cluster Handle.
- // This wouldn't close the Cluster, till the reference count becomes
- // zero. Every interface is passed this object instead of the Cluster
- // Handle. The interfaces increment the reference count as they are passed
- // this object and decrements on removal. This eliminates the Circular
- // reference problem.
-
- interface ClusRefObject;
- interface ClusObjCollection; // Base Class for all collections.
- interface DomainNames;
- interface ClusterNames;
- interface ClusObj; // Base Class for all the Cluster Objects viz. ClusNode, ClusResGroup,
- // ClusNetwork, ClusNetInterface and ClusResource.
-
- //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;
- // resource collection in ICluster.
- interface ClusResources;
-
- //old interface ResourceType;
- interface ClusResType;
- //old interface ResourceTypes;
- interface ClusResTypes;
-
- //old interface ClusterProperty;
- interface ClusProperty;
- //old interface ClusterProperties;
- interface ClusProperties;
-
- // New ClusObj derived interfaces.
- interface ClusNetwork;
- interface ClusNetInterface;
-
- // New Collections.
- // resouce collection in ClusResource.
- interface ClusResDependencies;
- // resource collection in ClusResGroup.
- interface ClusGroupResources;
- // resource collection in ClusResourceType.
- interface ClusResTypeResources;
- // Nodes collection in ClusResGroup.
- interface ClusGroupOwners;
- // Nodes collection in ClusResource.
- interface ClusResOwners;
- // Networks collection in ICluster.
- interface ClusNetworks;
- // Netinterface collection in ICluster.
- interface ClusNetInterfaces;
- // Netinterface collection in ClusNetwork.
- interface ClusNodeNetInterfaces;
- // Netinterface collection in ICluster.
- interface ClusNetworkNetInterfaces;
- //
- ///////////////////////////////////////
-
-
- /////////////////////////////////////////////////
- // Application
- [
- object,
- uuid(f2e606e0-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Application Interface"),
- hidden,
- pointer_default(unique)
- ]
- interface IClusterApplication : IDispatch
- {
- [propget]
- HRESULT DomainNames( [out, retval] DomainNames ** ppDomains );
-
- [propget]
- HRESULT ClusterNames( [in] BSTR bstrDomainName, [out, retval] ClusterNames ** ppClusters );
-
- HRESULT OpenCluster( [in] BSTR bstrClusterName, [out, retval] ICluster ** pCluster );
- };
-
- /////////////////////////////////////////////////
- // ClusObjCollection
- [
- object,
- uuid(f2e606ee-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("collections Base Class"),
- pointer_default(unique)
- ]
- interface ClusObjCollection : IDispatch
- {
- [propget]
- HRESULT Count( [out, retval] LONG * pnCount );
- [propget, restricted, id(DISPID_NEWENUM),
- helpstring("returns an enumerator for the collection.")] // Must be propget.
- HRESULT _NewEnum([out, retval] IUnknown** retval);
-
- [helpstring("Refresh data in collection")]
- HRESULT Refresh();
- };
-
-
-
- /////////////////////////////////////////////////
- // DomainNames
- [
- object,
- uuid(f2e606ed-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Domain Names collection"),
- pointer_default(unique)
- ]
- interface DomainNames : ClusObjCollection
- {
- [propget, id(DISPID_VALUE), helpstring("Given an index, returns an item in the collection.")]
- HRESULT Item([in] LONG nIndex , [out, retval] BSTR* pbstrDomainName);
- };
-
-
- /////////////////////////////////////////////////
- // ClusterNames
- [
- object,
- uuid(f2e606e1-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("ClusterNames collection"),
- pointer_default(unique)
- ]
- interface ClusterNames : ClusObjCollection
- {
- [propget, id(DISPID_VALUE), helpstring("Given an index, returns an item in the collection.")]
- HRESULT Item([in] LONG nIndex , [out, retval] BSTR* pbstrClusterName);
- [propget]
- HRESULT DomainName( [out, retval] BSTR * pbstrDomainName );
- };
-
-
- /////////////////////////////////////////////////
- // ClusRefObject
- [
- object,
- uuid(f2e606fe-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Cluster Reference Object Interface"),
- hidden,
- pointer_default(unique)
- ]
- interface ClusRefObject : IDispatch
- {
- [propget]
- HRESULT Handle( [out, retval] LONG * phandle );
- };
-
-
-
- /////////////////////////////////////////////////
- // ClusObj
- [
- object,
- uuid(f2e606ef-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Cluster Object Base Class"),
- pointer_default(unique)
- ]
- interface ClusObj : IDispatch
- {
- [propget]
- HRESULT Name( [out, retval] BSTR * pbstrName );
-
- [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 );
- };
-
-
- /////////////////////////////////////////////////
- // ICluster
- [
- object,
- uuid(f2e606e2-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("ICluster Interface"),
- hidden,
- pointer_default(unique)
- ]
- interface ICluster : ClusObj
- {
- /////////////////////////////////
- // Cluster
- [propget, hidden]
- HRESULT Handle( [out, retval] LONG * phandle );
-
- HRESULT Open( [in] BSTR bstrClusterName );
-
- // HRESULT Close();
-
- [propput]
- HRESULT Name( [in] BSTR bstrClusterName );
-
- 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 );
- /////////////////////////////////
- // Quorum Info
- HRESULT SetQuorumInfo([in] BSTR DevicePath, [in] LONG nLogSize);
-
- HRESULT GetQuorumInfo([out] BSTR* DevicePath, [out] LONG* pLogSize);
-
- /////////////////////////////////
- // 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 );
-
- /////////////////////////////////
- // Cluster Networks
- [propget]
- HRESULT Networks( [out, retval] ClusNetworks ** ppNetworks );
-
- /////////////////////////////////
- // Cluster NetInterfaces
- [propget]
- HRESULT NetInterfaces( [out, retval] ClusNetInterfaces ** ppNetInterfaces );
- };
-
-
-
-
-
- /////////////////////////////////////////////////
- // ClusNode
- [
- object,
- uuid(f2e606e3-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Cluster Node Interface"),
- pointer_default(unique)
- ]
- interface ClusNode : ClusObj
- {
- [propget, hidden]
- HRESULT Handle( [out, retval] LONG * phandle );
-
- [propget]
- HRESULT NodeID( [out, retval] BSTR * pbstrNodeID );
-
- [propget]
- HRESULT State( [out,retval] CLUSTER_NODE_STATE* dwState );
-
- HRESULT Pause();
-
- HRESULT Resume();
-
- HRESULT Evict();
-
- [propget]
- HRESULT ResourceGroups( [out, retval] ClusResGroups ** ppResourceGroups );
-
- [propget]
- HRESULT Cluster( [out,retval] ICluster ** ppCluster );
-
- [propget]
- HRESULT NetInterfaces( [out,retval] ClusNodeNetInterfaces ** ppClusNetInterfaces );
-
- };
-
-
-
- /////////////////////////////////////////////////
- // ClusNodes
- [
- object,
- uuid(f2e606e4-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Cluster Nodes Interface"),
- pointer_default(unique)
- ]
- interface ClusNodes : ClusObjCollection
- {
- [propget, id(DISPID_VALUE), helpstring("Given an index, returns an item in the collection.")]
- HRESULT Item([in] VARIANT varIndex , [out, retval] ClusNode ** ppClusNode);
- };
-
-
-
- /////////////////////////////////////////////////
- // ClusNetwork
- [
- object,
- uuid(f2e606f3-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Cluster Network Interface"),
- pointer_default(unique)
- ]
- interface ClusNetwork : ClusObj
- {
- [propget, hidden]
- HRESULT Handle( [out, retval] LONG * phandle );
-
- [propput]
- HRESULT Name( [in] BSTR bstrNetworkName );
- [propget]
- HRESULT NetworkID( [out, retval] BSTR * pbstrNetworkID );
-
- [propget]
- HRESULT State( [out,retval] CLUSTER_NETWORK_STATE* dwState );
-
- [propget]
- HRESULT NetInterfaces([out, retval] ClusNetworkNetInterfaces ** ppClusNetInterfaces);
-
- [propget]
- HRESULT Cluster( [out,retval] ICluster ** ppCluster );
- };
-
-
- /////////////////////////////////////////////////
- // ClusNetworks
- [
- object,
- uuid(f2e606fa-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Cluster Network Collection Interface"),
- pointer_default(unique)
- ]
- interface ClusNetworks : ClusObjCollection
- {
- [propget, id(DISPID_VALUE), helpstring("Given an index, returns an item in the collection.")]
- HRESULT Item([in] VARIANT varIndex , [out, retval] ClusNetwork ** ppClusNetwork);
- };
-
- /////////////////////////////////////////////////
- // ClusNetInterface
- [
- object,
- uuid(f2e606f4-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Cluster NetInterface Interface"),
- pointer_default(unique)
- ]
- interface ClusNetInterface : ClusObj
- {
- [propget, hidden]
- HRESULT Handle( [out, retval] LONG * phandle );
-
- [propget]
- HRESULT State( [out,retval] CLUSTER_NETINTERFACE_STATE * dwState );
-
- [propget]
- HRESULT Cluster( [out,retval] ICluster ** ppCluster );
- };
-
-
- /////////////////////////////////////////////////
- // ClusNetInterfaces
- [
- object,
- uuid(f2e606fb-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Cluster NetInterface Collection Interface in ICluster"),
- pointer_default(unique)
- ]
- interface ClusNetInterfaces : ClusObjCollection
- {
- [propget, id(DISPID_VALUE), helpstring("Given an index, returns an item in the collection.")]
- HRESULT Item([in] VARIANT varIndex , [out, retval] ClusNetInterface ** ppClusNetInterface);
- };
-
- /////////////////////////////////////////////////
- // ClusNodeNetInterfaces
- [
- object,
- uuid(f2e606fd-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Cluster NetInterface Collection Interface in Node"),
- pointer_default(unique)
- ]
- interface ClusNodeNetInterfaces : ClusObjCollection
- {
- [propget, id(DISPID_VALUE), helpstring("Given an index, returns an item in the collection.")]
- HRESULT Item([in] VARIANT varIndex , [out, retval] ClusNetInterface ** ppClusNetInterface);
- };
-
-
- /////////////////////////////////////////////////
- // ClusNetworkNetInterfaces
- [
- object,
- uuid(f2e606fc-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Cluster NetInterface Collection Interface in ClusNetwork"),
- pointer_default(unique)
- ]
- interface ClusNetworkNetInterfaces : ClusObjCollection
- {
- [propget, id(DISPID_VALUE), helpstring("Given an index, returns an item in the collection.")]
- HRESULT Item([in] VARIANT varIndex , [out, retval] ClusNetInterface ** ppClusNetInterface);
- };
-
- /////////////////////////////////////////////////
- // ClusResGroup
- [
- object,
- uuid(f2e606e5-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Cluster Resource Group Interface"),
- pointer_default(unique)
- ]
- interface ClusResGroup : ClusObj
- {
- [propget, hidden]
- HRESULT Handle( [out, retval] LONG * phandle );
-
- [propput]
- HRESULT Name( [in] BSTR bstrGroupName );
-
- [propget]
- HRESULT State( [out,retval] CLUSTER_GROUP_STATE * dwState );
-
- [propget]
- HRESULT OwnerNode( [out,retval] ClusNode ** ppOwnerNode );
-
- [propget]
- HRESULT Resources( [out, retval] ClusGroupResources ** ppClusterGroupResources );
-
- [propget]
- HRESULT PreferredOwnerNodes( [out, retval] ClusGroupOwners ** ppOwnerNodes );
-
- HRESULT SetPreferredOwnerNodes();
-
- HRESULT Delete();
-
- HRESULT Online( [in] LONG nTimeout, [in, optional] ClusNode * pDestinationNode,[out,retval] LONG* bPending );
-
- HRESULT Move( [in] LONG nTimeout, [in, optional] ClusNode * pDestinationNode,[out,retval] LONG* bPending );
-
- HRESULT Offline([in] LONG nTimeout, [out,retval] LONG* bPending);
-
- [propget]
- HRESULT Cluster( [out,retval] ICluster ** ppCluster );
- };
-
-
- /////////////////////////////////////////////////
- // ClusResGroups
- [
- object,
- uuid(f2e606e6-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Cluster Resource Groups Interface"),
- pointer_default(unique)
- ]
- interface ClusResGroups : ClusObjCollection
- {
- [propget, id(DISPID_VALUE), helpstring("Given an index, returns an item in the collection.")]
- HRESULT Item([in] VARIANT varIndex , [out, retval] ClusResGroup ** ppClusResGroup);
-
- [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 );
-
- };
-
-
- /////////////////////////////////////////////////
- // ClusResource
- [
- object,
- uuid(f2e606e7-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Cluster Resource Interface"),
- pointer_default(unique)
- ]
- interface ClusResource : ClusObj
- {
- [propget, hidden]
- HRESULT Handle( [out, retval] LONG * phandle );
-
- [propput]
- HRESULT Name( [in] BSTR bstrResourceName );
-
- [propget]
- HRESULT State( [out,retval] CLUSTER_RESOURCE_STATE* dwState );
-
- HRESULT BecomeQuorumResource( [in] BSTR bstrDevicePath, [in] LONG lMaxLogSize );
-
- HRESULT Delete();
-
- HRESULT Fail();
- HRESULT Online(LONG nTimeout,LONG* bPending);
- HRESULT Offline(LONG nTimeout, LONG* bPending);
-
- 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 PossibleOwnerNodes( [out, retval] ClusResOwners ** ppNodes );
-
- [propget]
- HRESULT Dependencies( [out, retval] ClusResDependencies ** ppResDependencies );
-
- [propget]
- HRESULT Group( [out, retval] ClusResGroup ** ppResGroup );
-
- [propget]
- HRESULT OwnerNode( [out, retval] ClusNode ** ppNode );
-
- [propget]
- HRESULT Cluster( [out, retval] ICluster ** ppCluster );
- };
-
- /////////////////////////////////////////////////
- // ClusResDependencies
- [
- object,
- uuid(f2e606f5-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Resource Dependencies for a resource"),
- pointer_default(unique)
- ]
- interface ClusResDependencies : ClusObjCollection
- {
- [propget, id(DISPID_VALUE), helpstring("Given an index, returns an item in the collection.")]
- HRESULT Item([in] VARIANT varIndex , [out, retval] ClusResource ** ppClusResource);
-
- [helpstring("Create a new resource.and add it to the dependency list")]
- HRESULT CreateItem(
- [in] BSTR bstrResourceName,
- [in] BSTR bstrResourceType,
- [in] BSTR bstrGroupName,
- [in] CLUSTER_RESOURCE_CREATE_FLAGS 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 );
-
- };
-
-
- /////////////////////////////////////////////////
- // ClusGroupResources
- [
- object,
- uuid(f2e606f6-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Resources Collection in a group"),
- pointer_default(unique)
- ]
- interface ClusGroupResources : ClusObjCollection
- {
- [propget, id(DISPID_VALUE), helpstring("Given an index, returns an item in the collection.")]
- HRESULT Item([in] VARIANT varIndex , [out, retval] ClusResource ** ppClusResource);
-
- [helpstring("Create a new resource.")]
- HRESULT CreateItem(
- [in] BSTR bstrResourceName,
- [in] BSTR bstrResourceType,
- [in] CLUSTER_RESOURCE_CREATE_FLAGS dwFlags,
- [out, retval] ClusResource ** ppClusterResource );
-
- [helpstring("Delete a resource by name or index.")]
- HRESULT DeleteItem( [in] VARIANT varIndex );
-
- };
-
- /////////////////////////////////////////////////
- // ClusResTypeResources
- [
- object,
- uuid(f2e606f7-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("ClusResTypeResources Collection"),
- pointer_default(unique)
- ]
- interface ClusResTypeResources : ClusObjCollection
- {
- [propget, id(DISPID_VALUE), helpstring("Given an index, returns an item in the collection.")]
- HRESULT Item([in] VARIANT varIndex , [out, retval] ClusResource ** ppClusResource);
-
- [helpstring("Create a new resource.")]
- HRESULT CreateItem(
- [in] BSTR bstrResourceName,
- [in] BSTR bstrGroupName,
- [in] CLUSTER_RESOURCE_CREATE_FLAGS dwFlags,
- [out, retval] ClusResource ** ppClusterResource );
-
- [helpstring("Delete a resource by name or index.")]
- HRESULT DeleteItem( [in] VARIANT varIndex );
- };
-
-
- // A Resource Collection in the ICluster Object.
-
- /////////////////////////////////////////////////
- // ClusResources
- [
- object,
- uuid(f2e606e8-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Cluster Resources Collection"),
- pointer_default(unique)
- ]
- interface ClusResources : ClusObjCollection
- {
- [propget, id(DISPID_VALUE), helpstring("Given an index, returns an item in the collection.")]
- HRESULT Item([in] VARIANT varIndex , [out, retval] ClusResource ** ppClusResource);
-
- [helpstring("Create a new resource and add it to the Resource list in the Cluster Object")]
- HRESULT CreateItem(
- [in] BSTR bstrResourceName,
- [in] BSTR bstrResourceType,
- [in] BSTR bstrGroupName,
- [in] CLUSTER_RESOURCE_CREATE_FLAGS dwFlags,
- [out, retval] ClusResource ** ppClusterResource );
- [helpstring("Delete a resource by name or index.")]
- HRESULT DeleteItem( [in] VARIANT varIndex );
- };
-
- /////////////////////////////////////////////////
- // ClusGroupOwners
- [
- object,
- uuid(f2e606f8-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Owner Nodes Collection"),
- pointer_default(unique)
- ]
- interface ClusGroupOwners : ClusObjCollection
- {
- [propget, id(DISPID_VALUE), helpstring("Given an index, returns an item in the collection.")]
- HRESULT Item([in] VARIANT varIndex , [out, retval] ClusNode ** ppClusNode);
-
- [helpstring("Insert a Node into the collection")]
- HRESULT InsertItem([in] ClusNode *pClusNode, [in,optional] LONG nPosition );
-
- [helpstring("Delete a Node by name or index.")]
- HRESULT RemoveItem( [in] VARIANT varIndex );
-
- [propget]
- HRESULT Modified([out,retval] boolean * flag);
-
-
- };
-
- /////////////////////////////////////////////////
- // ClusResOwners
- [
- object,
- uuid(f2e606f9-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Owner Nodes Collection"),
- pointer_default(unique)
- ]
- interface ClusResOwners : ClusObjCollection
- {
- [propget, id(DISPID_VALUE), helpstring("Given an index, returns an item in the collection.")]
- HRESULT Item([in] VARIANT varIndex , [out, retval] ClusNode ** ppClusNode);
-
- [helpstring("Add OwnerNode to the Possible Owner List of the Resource.")]
- HRESULT AddItem( [in] ClusNode* pNode );
-
- [helpstring("Remove a OwnerNode from the list by name or index.")]
- HRESULT RemoveItem( [in] VARIANT varIndex );
- [propget]
- HRESULT Modified([out,retval] boolean * pbflag);
- };
-
-
- /////////////////////////////////////////////////
- // ClusResType
- [
- object,
- uuid(f2e606e9-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Cluster Resource Type"),
- pointer_default(unique)
- ]
- interface ClusResType : ClusObj
- {
-
- HRESULT Delete();
-
- [propget]
- HRESULT Cluster( [out,retval] ICluster ** ppCluster );
-
- /////////////////////////////////
- // Cluster Resources
- [propget]
- HRESULT Resources( [out, retval] ClusResTypeResources ** ppClusterResTypeResources );
- };
-
-
- /////////////////////////////////////////////////
- // ClusResTypes
- [
- object,
- uuid(f2e606ea-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("Cluster Resource Types Collection"),
- pointer_default(unique)
- ]
- interface ClusResTypes : ClusObjCollection
- {
- [propget, id(DISPID_VALUE), helpstring("Given an index, returns an item in the collection.")]
- HRESULT Item([in] VARIANT varIndex , [out, retval] ClusResType ** ppClusResType);
-
- [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 );
-
- };
-
-
-
-
-
- /////////////////////////////////////////////////
- // ClusProperty
- [
- object,
- uuid(f2e606eb-2631-11d1-89f1-00a0c90d061e),
- 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(f2e606ec-2631-11d1-89f1-00a0c90d061e),
- dual,
- helpstring("ClusProperty collection"),
- pointer_default(unique)
- ]
- interface ClusProperties : ClusObjCollection
- {
- [propget, id(DISPID_VALUE), helpstring("Given an index, returns an item in the collection.")]
- HRESULT Item([in] VARIANT varIndex , [out, retval] ClusProperty ** ppClusProperty);
-
- [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("Save all property changes")]
- HRESULT SaveChanges();
- };
-
-
-
- /////////////////////////////////////////////////////////
- // MSClusterLib
- [
- uuid(f2e606f0-2631-11d1-89f1-00a0c90d061e),
- version(1.0),
- helpstring("MS Cluster 1.0 Type Library")
- ]
- library MSClusterLib
- {
- importlib("stdole32.tlb");
-
- // Temporary include file for CLUSAPI constants.
- // #include "cluconst.idl"
-
-
- [
- uuid(f2e606f1-2631-11d1-89f1-00a0c90d061e),
- helpstring("Application Class")
- ]
- coclass Application
- {
- [default] interface IClusterApplication;
- };
-
- [
- uuid(f2e606f2-2631-11d1-89f1-00a0c90d061e),
- helpstring("Cluster Class")
- ]
- coclass Cluster
- {
- [default] interface ICluster;
- };
-
- };
-