mirror of https://github.com/tongzx/nt5src
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.
694 lines
16 KiB
694 lines
16 KiB
// 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;
|
|
};
|
|
|
|
};
|