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.

2110 lines
85 KiB

  1. /////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 1997-1999 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // MSClus.idl
  7. //
  8. // Description:
  9. // Interface definitions for Microsoft Cluster Server automation classes
  10. // provided in MSCLUS.DLL.
  11. //
  12. // Author:
  13. // Charles Stacy Harris (stacyh) 28-Feb-1997
  14. // Galen Barbee (galenb) July 1998
  15. //
  16. // Revision History:
  17. // 09-Jan-2002 Added the typedefs to MSClusterLib to export all of the
  18. // clusapi enums.
  19. //
  20. // Notes:
  21. //
  22. /////////////////////////////////////////////////////////////////////////////
  23. //
  24. // UUIDS for MSCLUS
  25. //
  26. // f2e606e0-2631-11d1-89f1-00a0c90d061e -- library MSClusterLib
  27. // f2e606e1-2631-11d1-89f1-00a0c90d061e -- coclass DomainNames
  28. // f2e606e2-2631-11d1-89f1-00a0c90d061e -- interface ISDomainNames Read only collection
  29. // f2e606e3-2631-11d1-89f1-00a0c90d061e -- coclass Cluster
  30. // f2e606e4-2631-11d1-89f1-00a0c90d061e -- interface ISCluster
  31. // f2e606e5-2631-11d1-89f1-00a0c90d061e -- coclass ClusApplication
  32. // f2e606e6-2631-11d1-89f1-00a0c90d061e -- interface ISClusApplication
  33. // f2e606e7-2631-11d1-89f1-00a0c90d061e -- coclass ClusResGroupPreferredOwnerNodes
  34. // f2e606e8-2631-11d1-89f1-00a0c90d061e -- interface ISClusResGroupPreferredOwnerNodes collection
  35. // f2e606e9-2631-11d1-89f1-00a0c90d061e -- coclass ClusResGroupResources
  36. // f2e606ea-2631-11d1-89f1-00a0c90d061e -- interface ISClusResGroupResources collection
  37. // f2e606eb-2631-11d1-89f1-00a0c90d061e -- coclass ClusterNames
  38. // f2e606ec-2631-11d1-89f1-00a0c90d061e -- interface ISClusterNames Read only collection
  39. // f2e606ed-2631-11d1-89f1-00a0c90d061e -- coclass ClusNetInterface
  40. // f2e606ee-2631-11d1-89f1-00a0c90d061e -- interface ISClusNetInterface
  41. // f2e606ef-2631-11d1-89f1-00a0c90d061e -- coclass ClusNetInterfaces
  42. // f2e606f0-2631-11d1-89f1-00a0c90d061e -- interface ISClusNetInterfaces Read only collection
  43. // f2e606f1-2631-11d1-89f1-00a0c90d061e -- coclass ClusNetwork
  44. // f2e606f2-2631-11d1-89f1-00a0c90d061e -- interface ISClusNetwork
  45. // f2e606f3-2631-11d1-89f1-00a0c90d061e -- coclass ClusNetworks
  46. // f2e606f4-2631-11d1-89f1-00a0c90d061e -- interface ISClusNetworks Read only collection
  47. // f2e606f5-2631-11d1-89f1-00a0c90d061e -- coclass ClusNetworkNetInterfaces
  48. // f2e606f6-2631-11d1-89f1-00a0c90d061e -- interface ISClusNetworkNetInterfaces Read only collection
  49. // f2e606f7-2631-11d1-89f1-00a0c90d061e -- coclass ClusNode
  50. // f2e606f8-2631-11d1-89f1-00a0c90d061e -- interface ISClusNode
  51. // f2e606f9-2631-11d1-89f1-00a0c90d061e -- coclass ClusNodes
  52. // f2e606fa-2631-11d1-89f1-00a0c90d061e -- interface ISClusNodes Read only collection
  53. // f2e606fb-2631-11d1-89f1-00a0c90d061e -- coclass ClusNodeNetInterfaces
  54. // f2e606fc-2631-11d1-89f1-00a0c90d061e -- interface ISClusNodeNetInterfaces Read only collection
  55. // f2e606fd-2631-11d1-89f1-00a0c90d061e -- coclass ClusProperty
  56. // f2e606fe-2631-11d1-89f1-00a0c90d061e -- interface ISClusProperty
  57. // f2e606ff-2631-11d1-89f1-00a0c90d061e -- coclass ClusProperties
  58. // f2e60700-2631-11d1-89f1-00a0c90d061e -- interface ISClusProperties collection
  59. // f2e60701-2631-11d1-89f1-00a0c90d061e -- coclass ClusRefObject
  60. // f2e60702-2631-11d1-89f1-00a0c90d061e -- interface ISClusRefObject
  61. // f2e60703-2631-11d1-89f1-00a0c90d061e -- coclass ClusResDependencies
  62. // f2e60704-2631-11d1-89f1-00a0c90d061e -- interface ISClusResDependencies collection
  63. // f2e60705-2631-11d1-89f1-00a0c90d061e -- coclass ClusResGroup
  64. // f2e60706-2631-11d1-89f1-00a0c90d061e -- interface ISClusResGroup
  65. // f2e60707-2631-11d1-89f1-00a0c90d061e -- coclass ClusResGroups
  66. // f2e60708-2631-11d1-89f1-00a0c90d061e -- interface ISClusResGroups collection
  67. // f2e60709-2631-11d1-89f1-00a0c90d061e -- coclass ClusResource
  68. // f2e6070a-2631-11d1-89f1-00a0c90d061e -- interface ISClusResource
  69. // f2e6070b-2631-11d1-89f1-00a0c90d061e -- coclass ClusResources
  70. // f2e6070c-2631-11d1-89f1-00a0c90d061e -- interface ISClusResources collection
  71. // f2e6070d-2631-11d1-89f1-00a0c90d061e -- coclass ClusResPossibleOwnerNodes
  72. // f2e6070e-2631-11d1-89f1-00a0c90d061e -- interface ISClusResPossibleOwnerNodes collection
  73. // f2e6070f-2631-11d1-89f1-00a0c90d061e -- coclass ClusResType
  74. // f2e60710-2631-11d1-89f1-00a0c90d061e -- interface ISClusResType
  75. // f2e60711-2631-11d1-89f1-00a0c90d061e -- coclass ClusResTypes
  76. // f2e60712-2631-11d1-89f1-00a0c90d061e -- interface ISClusResTypes
  77. // f2e60713-2631-11d1-89f1-00a0c90d061e -- coclass ClusResTypeResources
  78. // f2e60714-2631-11d1-89f1-00a0c90d061e -- interface ISClusResTypeResources collection
  79. // f2e60715-2631-11d1-89f1-00a0c90d061e -- coclass ClusVersion
  80. // f2e60716-2631-11d1-89f1-00a0c90d061e -- interface ISClusVersion
  81. // f2e60717-2631-11d1-89f1-00a0c90d061e -- coclass ClusResTypePossibleOwnerNodes
  82. // f2e60718-2631-11d1-89f1-00a0c90d061e -- interface ISClusResTypePossibleOwnerNodes Read only collection
  83. // f2e60719-2631-11d1-89f1-00a0c90d061e -- coClass ClusPropertyValue
  84. // f2e6071a-2631-11d1-89f1-00a0c90d061e -- interface ISClusPropertyValue
  85. // f2e6071b-2631-11d1-89f1-00a0c90d061e -- coClass ClusPropertyValues
  86. // f2e6071c-2631-11d1-89f1-00a0c90d061e -- interface ISClusPropertyValues collection
  87. // f2e6071d-2631-11d1-89f1-00a0c90d061e -- coClass ClusPropertyValueData
  88. // f2e6071e-2631-11d1-89f1-00a0c90d061e -- interface ISClusPropertyValueData collection
  89. // f2e6071f-2631-11d1-89f1-00a0c90d061e -- CoClass ClusPartition
  90. // f2e60720-2631-11d1-89f1-00a0c90d061e -- interface ISClusPartition
  91. // f2e60721-2631-11d1-89f1-00a0c90d061e -- CoClass ClusPartitions
  92. // f2e60722-2631-11d1-89f1-00a0c90d061e -- interface ISClusPartitions read only collection
  93. // f2e60723-2631-11d1-89f1-00a0c90d061e -- CoClass ClusDisk
  94. // f2e60724-2631-11d1-89f1-00a0c90d061e -- interface ISClusDisk
  95. // f2e60725-2631-11d1-89f1-00a0c90d061e -- CoClass ClusDisks
  96. // f2e60726-2631-11d1-89f1-00a0c90d061e -- interface ISClusDisks read only collection
  97. // f2e60727-2631-11d1-89f1-00a0c90d061e -- CoClass ClusScsiAddress
  98. // f2e60728-2631-11d1-89f1-00a0c90d061e -- interface ISClusScsiAddress
  99. // f2e60729-2631-11d1-89f1-00a0c90d061e -- CoClass ClusRegistryKeys
  100. // f2e6072a-2631-11d1-89f1-00a0c90d061e -- interface ISClusRegistryKeys
  101. // f2e6072b-2631-11d1-89f1-00a0c90d061e -- CoClass ClusCryptoKeys
  102. // f2e6072c-2631-11d1-89f1-00a0c90d061e -- interface ISClusCryptoKeys
  103. // f2e6072d-2631-11d1-89f1-00a0c90d061e -- coclass ClusResDependents
  104. // f2e6072e-2631-11d1-89f1-00a0c90d061e -- interface ISClusResDependents collection
  105. #if WINVER >= 0x0500
  106. import "basetsd.h";
  107. #else
  108. #ifndef _BASETSD_H_
  109. typedef [public] unsigned long ULONG_PTR; // this is for the NT4 build
  110. #endif
  111. #endif // WINVER >= 0x0500
  112. import "oaidl.idl";
  113. cpp_quote("#ifndef _CLUSTER_API_TYPES_")
  114. cpp_quote("#define _CLUSTER_API_TYPES_")
  115. #include "clusapi.h"
  116. cpp_quote("#endif // _CLUSTER_API_TYPES_")
  117. //
  118. // Forward interface definitions
  119. //
  120. interface ISDomainNames;
  121. interface ISCluster;
  122. interface ISClusApplication;
  123. interface ISClusResGroupPreferredOwnerNodes;
  124. interface ISClusResGroupResources;
  125. interface ISClusterNames;
  126. interface ISClusNetInterface;
  127. interface ISClusNetInterfaces;
  128. interface ISClusNetwork;
  129. interface ISClusNetworks;
  130. interface ISClusNetworkNetInterfaces;
  131. interface ISClusNode;
  132. interface ISClusNodes;
  133. interface ISClusNodeNetInterfaces;
  134. interface ISClusProperty;
  135. interface ISClusProperties;
  136. interface ISClusRefObject;
  137. interface ISClusResDependencies;
  138. interface ISClusResGroup;
  139. interface ISClusResGroups;
  140. interface ISClusResource;
  141. interface ISClusResources;
  142. interface ISClusResPossibleOwnerNodes;
  143. interface ISClusResType;
  144. interface ISClusResTypes;
  145. interface ISClusResTypeResources;
  146. interface ISClusVersion;
  147. interface ISClusResTypePossibleOwnerNodes;
  148. interface ISClusPropertyValue;
  149. interface ISClusPropertyValues;
  150. interface ISClusPropertyValueData;
  151. interface ISClusPropertyBase;
  152. interface ISClusPartition;
  153. interface ISClusPartitions;
  154. interface ISClusDisk;
  155. interface ISClusDisks;
  156. interface ISClusScsiAddress;
  157. interface ISClusRegistryKeys;
  158. interface ISClusCryptoKeys;
  159. interface ISClusResDependents;
  160. /////////////////////////////////////////////////////////
  161. // MSClusterLib
  162. [
  163. uuid(f2e606e0-2631-11d1-89f1-00a0c90d061e),
  164. version(1.0),
  165. helpstring("Microsoft Cluster Service Automation Classes.")
  166. ]
  167. library MSClusterLib
  168. {
  169. importlib("stdole2.tlb");
  170. typedef CLUSTER_QUORUM_TYPE _CLUSTER_QUORUM_TYPE;
  171. typedef NODE_CLUSTER_STATE _NODE_CLUSTER_STATE;
  172. typedef CLUSTER_RESOURCE_STATE_CHANGE_REASON _CLUSTER_RESOURCE_STATE_CHANGE_REASON;
  173. typedef CLUSTER_SET_PASSWORD_FLAGS _CLUSTER_SET_PASSWORD_FLAGS;
  174. typedef CLUSTER_CHANGE _CLUSTER_CHANGE;
  175. typedef CLUSTER_ENUM _CLUSTER_ENUM;
  176. typedef CLUSTER_NODE_ENUM _CLUSTER_NODE_ENUM;
  177. typedef CLUSTER_NODE_STATE _CLUSTER_NODE_STATE;
  178. typedef CLUSTER_GROUP_ENUM _CLUSTER_GROUP_ENUM;
  179. typedef CLUSTER_GROUP_STATE _CLUSTER_GROUP_STATE;
  180. typedef CLUSTER_GROUP_AUTOFAILBACK_TYPE _CLUSTER_GROUP_AUTOFAILBACK_TYPE;
  181. typedef CLUSTER_RESOURCE_STATE _CLUSTER_RESOURCE_STATE;
  182. typedef CLUSTER_RESOURCE_RESTART_ACTION _CLUSTER_RESOURCE_RESTART_ACTION;
  183. typedef CLUSTER_RESOURCE_CREATE_FLAGS _CLUSTER_RESOURCE_CREATE_FLAGS;
  184. typedef CLUSTER_PROPERTY_TYPE _CLUSTER_PROPERTY_TYPE;
  185. typedef CLUSTER_PROPERTY_FORMAT _CLUSTER_PROPERTY_FORMAT;
  186. typedef CLUSTER_PROPERTY_SYNTAX _CLUSTER_PROPERTY_SYNTAX;
  187. typedef CLUSTER_CONTROL_OBJECT _CLUSTER_CONTROL_OBJECT;
  188. typedef CLCTL_CODES _CLCTL_CODES;
  189. typedef CLUSCTL_RESOURCE_CODES _CLUSCTL_RESOURCE_CODES;
  190. typedef CLUSCTL_RESOURCE_TYPE_CODES _CLUSCTL_RESOURCE_TYPE_CODES;
  191. typedef CLUSCTL_GROUP_CODES _CLUSCTL_GROUP_CODES;
  192. typedef CLUSCTL_NODE_CODES _CLUSCTL_NODE_CODES;
  193. typedef CLUSCTL_NETWORK_CODES _CLUSCTL_NETWORK_CODES;
  194. typedef CLUSCTL_NETINTERFACE_CODES _CLUSCTL_NETINTERFACE_CODES;
  195. typedef CLUSCTL_CLUSTER_CODES _CLUSCTL_CLUSTER_CODES;
  196. typedef CLUSTER_RESOURCE_CLASS _CLUSTER_RESOURCE_CLASS;
  197. typedef CLUS_RESSUBCLASS _CLUS_RESSUBCLASS;
  198. typedef CLUS_CHARACTERISTICS _CLUS_CHARACTERISTICS;
  199. typedef CLUS_FLAGS _CLUS_FLAGS;
  200. typedef CLUSPROP_PIFLAGS _CLUSPROP_PIFLAGS;
  201. typedef CLUSTER_RESOURCE_ENUM _CLUSTER_RESOURCE_ENUM;
  202. typedef CLUSTER_RESOURCE_TYPE_ENUM _CLUSTER_RESOURCE_TYPE_ENUM;
  203. typedef CLUSTER_NETWORK_ENUM _CLUSTER_NETWORK_ENUM;
  204. typedef CLUSTER_NETWORK_STATE _CLUSTER_NETWORK_STATE;
  205. typedef CLUSTER_NETWORK_ROLE _CLUSTER_NETWORK_ROLE;
  206. typedef CLUSTER_NETINTERFACE_STATE _CLUSTER_NETINTERFACE_STATE;
  207. [
  208. uuid(f2e606e5-2631-11d1-89f1-00a0c90d061e),
  209. helpstring("Top-level object providing access to the clusters on all available domains.")
  210. ]
  211. coclass ClusApplication
  212. {
  213. [default] interface ISClusApplication;
  214. };
  215. [
  216. uuid(f2e606e3-2631-11d1-89f1-00a0c90d061e),
  217. helpstring("Top-level object providing access to a cluster and the groups, networks, network interfaces, nodes, resources, resource types in the cluster.")
  218. ]
  219. coclass Cluster
  220. {
  221. [default] interface ISCluster;
  222. };
  223. [
  224. uuid(f2e60715-2631-11d1-89f1-00a0c90d061e),
  225. helpstring("Provides detailed cluster version information. Obtained from a Cluster object."),
  226. noncreatable
  227. ]
  228. coclass ClusVersion
  229. {
  230. [default] interface ISClusVersion;
  231. };
  232. [
  233. uuid(f2e6070f-2631-11d1-89f1-00a0c90d061e),
  234. helpstring("Provides access to a resource type and all resource instances of that type in the cluster. Obtained from a Cluster object."),
  235. noncreatable
  236. ]
  237. coclass ClusResType
  238. {
  239. [default] interface ISClusResType;
  240. };
  241. [
  242. uuid(f2e606fd-2631-11d1-89f1-00a0c90d061e),
  243. helpstring("Provides access to the name and value of a common or private property."),
  244. noncreatable
  245. ]
  246. coclass ClusProperty
  247. {
  248. [default] interface ISClusProperty;
  249. };
  250. [
  251. uuid(f2e606ff-2631-11d1-89f1-00a0c90d061e),
  252. helpstring("Provides access to the common or private properties of a group, network, network interface, node, resource, or resource type."),
  253. noncreatable
  254. ]
  255. coclass ClusProperties
  256. {
  257. [default] interface ISClusProperties;
  258. };
  259. [
  260. uuid(f2e606e1-2631-11d1-89f1-00a0c90d061e),
  261. helpstring("Provides access to the domain names available to an application. Obtained from a ClusApplication object."),
  262. noncreatable
  263. ]
  264. coclass DomainNames
  265. {
  266. [default] interface ISDomainNames;
  267. };
  268. [
  269. uuid(f2e606f1-2631-11d1-89f1-00a0c90d061e),
  270. helpstring("Provides access to a cluster network, its common and private properties, and the network interfaces on the network."),
  271. noncreatable
  272. ]
  273. coclass ClusNetwork
  274. {
  275. [default] interface ISClusNetwork;
  276. };
  277. [
  278. uuid(f2e606ed-2631-11d1-89f1-00a0c90d061e),
  279. helpstring("Provides access to a network interface, its common and private properties. Obtained from a ClusNetInterfaces, ClusNodeNetInterfaces, or ClusNetworkNetInterfaces collection."),
  280. noncreatable
  281. ]
  282. coclass ClusNetInterface
  283. {
  284. [default] interface ISClusNetInterface;
  285. };
  286. [
  287. uuid(f2e606ef-2631-11d1-89f1-00a0c90d061e),
  288. helpstring("Provides access to the network interfaces available to the cluster. Obtained from a Cluster object."),
  289. noncreatable
  290. ]
  291. coclass ClusNetInterfaces
  292. {
  293. [default] interface ISClusNetInterfaces;
  294. };
  295. [
  296. uuid(f2e60703-2631-11d1-89f1-00a0c90d061e),
  297. helpstring("Provides access to the dependencies of a resource. Obtained from a ClusResource object."),
  298. noncreatable
  299. ]
  300. coclass ClusResDependencies
  301. {
  302. [default] interface ISClusResDependencies;
  303. };
  304. [
  305. uuid(f2e606e9-2631-11d1-89f1-00a0c90d061e),
  306. helpstring("Provides access to all the resources in a group. Obtained from a ClusResGroup object."),
  307. noncreatable
  308. ]
  309. coclass ClusResGroupResources
  310. {
  311. [default] interface ISClusResGroupResources;
  312. };
  313. [
  314. uuid(f2e60713-2631-11d1-89f1-00a0c90d061e),
  315. helpstring("Provides access to all resources of a particular type in the cluster. Obtained from a ClusResType object."),
  316. noncreatable
  317. ]
  318. coclass ClusResTypeResources
  319. {
  320. [default] interface ISClusResTypeResources;
  321. };
  322. [
  323. uuid(f2e606e7-2631-11d1-89f1-00a0c90d061e),
  324. helpstring("Provides access to the preferred host nodes of a group. Obtained from a ClusResGroup object."),
  325. noncreatable
  326. ]
  327. coclass ClusResGroupPreferredOwnerNodes
  328. {
  329. [default] interface ISClusResGroupPreferredOwnerNodes;
  330. };
  331. [
  332. uuid(f2e6070d-2631-11d1-89f1-00a0c90d061e),
  333. helpstring("Provides access to the possible owner nodes of a resource. Obtained from a ClusResource object."),
  334. noncreatable
  335. ]
  336. coclass ClusResPossibleOwnerNodes
  337. {
  338. [default] interface ISClusResPossibleOwnerNodes;
  339. };
  340. [
  341. uuid(f2e606f3-2631-11d1-89f1-00a0c90d061e),
  342. helpstring("Provides access to the networks available to the cluster. Obtained from a Cluster object."),
  343. noncreatable
  344. ]
  345. coclass ClusNetworks
  346. {
  347. [default] interface ISClusNetworks;
  348. };
  349. [
  350. uuid(f2e606f5-2631-11d1-89f1-00a0c90d061e),
  351. helpstring("Provides access to the network interfaces on the network. Obtained from a ClusNetwork object."),
  352. noncreatable
  353. ]
  354. coclass ClusNetworkNetInterfaces
  355. {
  356. [default] interface ISClusNetworkNetInterfaces;
  357. };
  358. [
  359. uuid(f2e606fb-2631-11d1-89f1-00a0c90d061e),
  360. helpstring("Provides access to the network interfaces installed in the node. Obtained from a ClusNode object."),
  361. noncreatable
  362. ]
  363. coclass ClusNodeNetInterfaces
  364. {
  365. [default] interface ISClusNodeNetInterfaces;
  366. };
  367. [
  368. uuid(f2e60701-2631-11d1-89f1-00a0c90d061e),
  369. helpstring("Cluster Reference Object Class"),
  370. hidden,
  371. noncreatable
  372. ]
  373. coclass ClusRefObject
  374. {
  375. [default] interface ISClusRefObject;
  376. };
  377. [
  378. uuid(f2e606eb-2631-11d1-89f1-00a0c90d061e),
  379. helpstring("Provides access to all the clusters in a domain. Obtained from a DomainName object."),
  380. noncreatable
  381. ]
  382. coclass ClusterNames
  383. {
  384. [default] interface ISClusterNames;
  385. };
  386. [
  387. uuid(f2e606f7-2631-11d1-89f1-00a0c90d061e),
  388. helpstring("Provides access to a cluster node, its common and private properties, and the network interfaces installed in the node. Obtained from a ClusNodes collection."),
  389. noncreatable
  390. ]
  391. coclass ClusNode
  392. {
  393. [default] interface ISClusNode;
  394. };
  395. [
  396. uuid(f2e606f9-2631-11d1-89f1-00a0c90d061e),
  397. helpstring("Provides access to the nodes in a cluster. Obtained from a Cluster object."),
  398. noncreatable
  399. ]
  400. coclass ClusNodes
  401. {
  402. [default] interface ISClusNodes;
  403. };
  404. [
  405. uuid(f2e60705-2631-11d1-89f1-00a0c90d061e),
  406. helpstring("Provides access to a cluster group, its common and private properties, its preferred host nodes, and the resources contained by the group. Obtained from a ClusResGroups collection."),
  407. noncreatable
  408. ]
  409. coclass ClusResGroup
  410. {
  411. [default] interface ISClusResGroup;
  412. };
  413. [
  414. uuid(f2e60707-2631-11d1-89f1-00a0c90d061e),
  415. helpstring("Provides access to the groups in a cluster. Obtained from a Cluster object."),
  416. noncreatable
  417. ]
  418. coclass ClusResGroups
  419. {
  420. [default] interface ISClusResGroups;
  421. };
  422. [
  423. uuid(f2e60709-2631-11d1-89f1-00a0c90d061e),
  424. helpstring("Provides access to a cluster resource, its common and private properties, and its dependencies and possible host nodes. Obtained from a ClusResources, ClusResDependencies, or ClusResGroups collection."),
  425. noncreatable
  426. ]
  427. coclass ClusResource
  428. {
  429. [default] interface ISClusResource;
  430. };
  431. [
  432. uuid(f2e6070b-2631-11d1-89f1-00a0c90d061e),
  433. helpstring("Provides access to the resources in the cluster. Obtained from Cluster.Resources."),
  434. noncreatable
  435. ]
  436. coclass ClusResources
  437. {
  438. [default] interface ISClusResources;
  439. };
  440. [
  441. uuid(f2e60711-2631-11d1-89f1-00a0c90d061e),
  442. helpstring("Provides access to the resource types defined in the cluster. Obtained from a Cluster object."),
  443. noncreatable
  444. ]
  445. coclass ClusResTypes
  446. {
  447. [default] interface ISClusResTypes;
  448. };
  449. [
  450. uuid(f2e60717-2631-11d1-89f1-00a0c90d061e),
  451. helpstring("Provides access to the possible owner nodes of a resource type. Obtained from a ClusResType object."),
  452. noncreatable
  453. ]
  454. coclass ClusResTypePossibleOwnerNodes
  455. {
  456. [default] interface ISClusResTypePossibleOwnerNodes;
  457. };
  458. [
  459. uuid(f2e60719-2631-11d1-89f1-00a0c90d061e),
  460. helpstring("Provides access to a common or private property value of a cluster object."),
  461. noncreatable
  462. ]
  463. coclass ClusPropertyValue
  464. {
  465. [default] interface ISClusPropertyValue;
  466. };
  467. [
  468. uuid(f2e6071b-2631-11d1-89f1-00a0c90d061e),
  469. helpstring("Provides access to the common or private property values of a cluster object."),
  470. noncreatable
  471. ]
  472. coclass ClusPropertyValues
  473. {
  474. [default] interface ISClusPropertyValues;
  475. };
  476. [
  477. uuid(f2e6071d-2631-11d1-89f1-00a0c90d061e),
  478. helpstring("Provides access to the data of a cluster object property."),
  479. noncreatable
  480. ]
  481. coclass ClusPropertyValueData
  482. {
  483. [default] interface ISClusPropertyValueData;
  484. };
  485. [
  486. uuid(f2e6071f-2631-11d1-89f1-00a0c90d061e),
  487. helpstring("Provides access to the partition information of a physical disk resource."),
  488. noncreatable
  489. ]
  490. coclass ClusPartition
  491. {
  492. [default] interface ISClusPartition;
  493. };
  494. [
  495. uuid(f2e60721-2631-11d1-89f1-00a0c90d061e),
  496. helpstring("Provides access to the all of the partitions of a physical disk resource."),
  497. noncreatable
  498. ]
  499. coclass ClusPartitions
  500. {
  501. [default] interface ISClusPartitions;
  502. };
  503. [
  504. uuid(f2e60723-2631-11d1-89f1-00a0c90d061e),
  505. helpstring("Provides access to the the information of a physical disk resource."),
  506. noncreatable
  507. ]
  508. coclass ClusDisk
  509. {
  510. [default] interface ISClusDisk;
  511. };
  512. [
  513. uuid(f2e60725-2631-11d1-89f1-00a0c90d061e),
  514. helpstring("Provides access to the all of the disks of cluster."),
  515. noncreatable
  516. ]
  517. coclass ClusDisks
  518. {
  519. [default] interface ISClusDisks;
  520. };
  521. [
  522. uuid(f2e60727-2631-11d1-89f1-00a0c90d061e),
  523. helpstring("Provides access to the SCSI address of a disk."),
  524. noncreatable
  525. ]
  526. coclass ClusScsiAddress
  527. {
  528. [default] interface ISClusScsiAddress;
  529. };
  530. [
  531. uuid(f2e60729-2631-11d1-89f1-00a0c90d061e),
  532. helpstring("Provides access to the registry keys of a resource or resource type."),
  533. noncreatable
  534. ]
  535. coclass ClusRegistryKeys
  536. {
  537. [default] interface ISClusRegistryKeys;
  538. };
  539. [
  540. uuid(f2e6072b-2631-11d1-89f1-00a0c90d061e),
  541. helpstring("Provides access to the crypto keys of a resource or resource type."),
  542. noncreatable
  543. ]
  544. coclass ClusCryptoKeys
  545. {
  546. [default] interface ISClusCryptoKeys;
  547. };
  548. [
  549. uuid(f2e6072d-2631-11d1-89f1-00a0c90d061e),
  550. helpstring("Provides access to the dependents of a resource. Obtained from a ClusResource object."),
  551. noncreatable
  552. ]
  553. coclass ClusResDependents
  554. {
  555. [default] interface ISClusResDependents;
  556. };
  557. };
  558. /////////////////////////////////////////////////
  559. // ISClusApplication
  560. [
  561. oleautomation,
  562. hidden,
  563. nonextensible,
  564. object,
  565. uuid(f2e606e6-2631-11d1-89f1-00a0c90d061e),
  566. dual,
  567. helpstring("Application Interface"),
  568. pointer_default(unique)
  569. ]
  570. interface ISClusApplication : IDispatch
  571. {
  572. [propget, id(1), helpstring("Returns the names of all domains available to the application.")]
  573. HRESULT DomainNames( [out, retval] ISDomainNames ** ppDomains );
  574. [propget, id(2), helpstring("Returns the names of all clusters in a domain.")]
  575. HRESULT ClusterNames( [in] BSTR bstrDomainName, [out, retval] ISClusterNames ** ppClusters );
  576. [id(3), helpstring("Opens a connection to a cluster.")]
  577. HRESULT OpenCluster( [in] BSTR bstrClusterName, [out, retval] ISCluster ** pCluster );
  578. };
  579. /////////////////////////////////////////////////
  580. // ISDomainNames
  581. [
  582. oleautomation,
  583. hidden,
  584. nonextensible,
  585. object,
  586. uuid(f2e606e2-2631-11d1-89f1-00a0c90d061e),
  587. dual,
  588. helpstring("Domain Names collection"),
  589. pointer_default(unique)
  590. ]
  591. interface ISDomainNames : IDispatch
  592. {
  593. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of domain names available to an application).")]
  594. HRESULT Count( [out, retval] long * plCount );
  595. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  596. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  597. [id(2), helpstring("Refreshes the data in the collection")]
  598. HRESULT Refresh( void );
  599. [propget, id(DISPID_VALUE), helpstring("Returns the item identified by name or numeric index from the collection.")]
  600. HRESULT Item( [in] VARIANT varIndex, [out, retval] BSTR * pbstrDomainName );
  601. };
  602. /////////////////////////////////////////////////
  603. // ISClusterNames
  604. [
  605. oleautomation,
  606. hidden,
  607. nonextensible,
  608. object,
  609. uuid(f2e606ec-2631-11d1-89f1-00a0c90d061e),
  610. dual,
  611. helpstring("ClusterNames collection"),
  612. pointer_default(unique)
  613. ]
  614. interface ISClusterNames : IDispatch
  615. {
  616. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of cluster names available to a domain).")]
  617. HRESULT Count( [out, retval] long * plCount );
  618. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  619. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  620. [id(2), helpstring("Refreshes the data in the collection")]
  621. HRESULT Refresh( void );
  622. [propget, id(DISPID_VALUE), helpstring("Returns the item identified by name or numeric index from the collection.")]
  623. HRESULT Item( [in] VARIANT varIndex , [out, retval] BSTR * pbstrClusterName );
  624. [propget, id(3), helpstring("Returns the name of the domain that contains the clusters in the collection.")]
  625. HRESULT DomainName( [out, retval] BSTR * pbstrDomainName );
  626. };
  627. /////////////////////////////////////////////////
  628. // ISClusRefObject
  629. [
  630. oleautomation,
  631. hidden,
  632. nonextensible,
  633. object,
  634. uuid(f2e60702-2631-11d1-89f1-00a0c90d061e),
  635. dual,
  636. helpstring("Cluster Reference Object Interface"),
  637. pointer_default(unique)
  638. ]
  639. interface ISClusRefObject : IDispatch
  640. {
  641. [propget, id(1), helpstring("Raw handle to the cluster.")]
  642. HRESULT Handle( [out, retval] ULONG_PTR * phandle );
  643. };
  644. /////////////////////////////////////////////////
  645. // ISClusVersion
  646. [
  647. oleautomation,
  648. hidden,
  649. nonextensible,
  650. object,
  651. uuid(f2e60716-2631-11d1-89f1-00a0c90d061e),
  652. dual,
  653. helpstring("ISClusVersion Interface"),
  654. pointer_default(unique)
  655. ]
  656. interface ISClusVersion : IDispatch
  657. {
  658. [propget, id(1), helpstring("Returns the name of the cluster to which this version information applies.")]
  659. HRESULT Name( [out, retval] BSTR * pbstrClusterName );
  660. [propget, id(2), helpstring("Returns the major version number of Windows NT/2000 installed on the local node. A Windows NT/2000 version is specified by the following properties: Version:(MajorVersion).(MinorVersion) Service Pack:(CSDVersion) Build:(BuildNumber).")]
  661. HRESULT MajorVersion( [out, retval] long * pnMajorVersion );
  662. [propget, id(3), helpstring("Returns the minor version number of Windows NT/2000 installed on the local node. A Windows NT/2000 version is specified by the following properties: Version:(MajorVersion).(MinorVersion) Service Pack:(CSDVersion) Build:(BuildNumber).")]
  663. HRESULT MinorVersion( [out, retval] long * pnMinorVersion );
  664. [propget, id(4), helpstring("Returns the build number of Windows NT/2000 installed on the local node. A Windows NT/2000 version is specified by the following properties: Version:(MajorVersion).(MinorVersion) Service Pack:(CSDVersion) Build:(BuildNumber).")]
  665. HRESULT BuildNumber( [out, retval] SHORT * pnBuildNumber );
  666. [propget, id(5), helpstring("Returns the vendor ID of the cluster.")]
  667. HRESULT VendorId( [out, retval] BSTR * pbstrVendorId );
  668. [propget, id(6), helpstring("Returns the highest Windows NT/2000 service pack number installed on the local node. A Windows NT/2000 version is specified by the following properties: Version:(MajorVersion).(MinorVersion) Service Pack:(CSDVersion) Build:(BuildNumber).")]
  669. HRESULT CSDVersion( [out, retval] BSTR * pbstrCSDVersion );
  670. [propget, id(7), helpstring("Returns the highest version of the Cluster Service that is compatible with the currently active nodes. The upper 16 bits specify the version number and the lower 16 bits specify the build number.")]
  671. HRESULT ClusterHighestVersion( [out, retval] long * pnClusterHighestVersion );
  672. [propget, id(8), helpstring("Returns the lowest version of the Cluster Service that is compatible with the currently active nodes. The upper 16 bits specify the version number and the lower 16 bits specify the build number.")]
  673. HRESULT ClusterLowestVersion( [out, retval] long * pnClusterLowestVersion );
  674. [propget, id(9), helpstring("Returns version flags set for the cluster.")]
  675. HRESULT Flags( [out, retval] long * pnFlags );
  676. [propget, id(10), helpstring("Returns True if there is more than one version of the Cluster Service active in the cluster.")]
  677. HRESULT MixedVersion( [out, retval] VARIANT * pvarMixedVersion );
  678. };
  679. /////////////////////////////////////////////////
  680. // ISCluster
  681. [
  682. oleautomation,
  683. hidden,
  684. nonextensible,
  685. object,
  686. uuid(f2e606e4-2631-11d1-89f1-00a0c90d061e),
  687. dual,
  688. helpstring("ISCluster Interface"),
  689. pointer_default(unique)
  690. ]
  691. interface ISCluster : IDispatch
  692. {
  693. [propget, id(1), helpstring("Returns the common read-write properties of the node.")]
  694. HRESULT CommonProperties( [out, retval] ISClusProperties ** ppProperties );
  695. [propget, id(2), helpstring("Returns the private read-write properties of the node.")]
  696. HRESULT PrivateProperties( [out, retval] ISClusProperties ** ppProperties );
  697. [propget, id(3), helpstring("Returns the common read only properties of the node.")]
  698. HRESULT CommonROProperties( [out, retval] ISClusProperties ** ppProperties );
  699. [propget, id(4), helpstring("Returns the private read only properties of the node.")]
  700. HRESULT PrivateROProperties( [out, retval] ISClusProperties ** ppProperties );
  701. [propget, hidden, id(5), helpstring("Raw handle to the cluster.")]
  702. HRESULT Handle( [out, retval] ULONG_PTR * phandle );
  703. [id(6), helpstring("Opens a connection to the specified cluster name, or to the local node's cluster if no name is specified.")]
  704. HRESULT Open( [in] BSTR bstrClusterName );
  705. [propget, id(7), helpstring("Returns or sets the name of the cluster.")]
  706. HRESULT Name( [out, retval] BSTR * pbstrName );
  707. [propput, id(7), helpstring("Returns or sets the name of the cluster.")]
  708. HRESULT Name( [in] BSTR bstrClusterName );
  709. [propget, id(8), helpstring("Returns version information about the cluster.")]
  710. HRESULT Version( [out, retval] ISClusVersion ** ppClusVersion );
  711. [propput, id(9), helpstring("Returns or sets the resource currently serving as the quorum resource.")]
  712. HRESULT QuorumResource( [in] ISClusResource * pClusterResource );
  713. [propget, id(9), helpstring("Returns or sets the resource currently serving as the quorum resource.")]
  714. HRESULT QuorumResource( [out, retval] ISClusResource ** pClusterResource );
  715. [propget, id(10), helpstring("Returns or sets the maximum size of the log file maintained by the quorum resource.")]
  716. HRESULT QuorumLogSize( [out, retval] long * pnLogSize);
  717. [propput, id(10), helpstring("Returns or sets the maximum size of the log file maintained by the quorum resource.")]
  718. HRESULT QuorumLogSize( [in] long nLogSize);
  719. [propget, id(11), helpstring("Returns or sets the path to the log file maintained by the quorum resource.")]
  720. HRESULT QuorumPath( [out, retval] BSTR * ppPath );
  721. [propput, id(11), helpstring("Returns or sets the path to the log file maintained by the quorum resource.")]
  722. HRESULT QuorumPath( [] BSTR pPath );
  723. [propget, id(12), helpstring("Returns all the member nodes of the cluster.")]
  724. HRESULT Nodes( [out, retval] ISClusNodes ** ppNodes );
  725. [propget, id(13), helpstring("Returns all of the groups currently in the cluster.")]
  726. HRESULT ResourceGroups( [out, retval] ISClusResGroups ** ppClusterResourceGroups );
  727. [propget, id(14), helpstring("Returns all of the resources currently in the cluster.")]
  728. HRESULT Resources( [out, retval] ISClusResources ** ppClusterResources );
  729. [propget, id(15), helpstring("Returns all of the resource types in the cluster.")]
  730. HRESULT ResourceTypes( [out, retval] ISClusResTypes ** ppResourceTypes );
  731. [propget, id(16), helpstring("Returns all of the networks in the cluster.")]
  732. HRESULT Networks( [out, retval] ISClusNetworks ** ppNetworks );
  733. [propget, id(17), helpstring("Returns all of the network interfaces in the cluster.")]
  734. HRESULT NetInterfaces( [out, retval] ISClusNetInterfaces ** ppNetInterfaces );
  735. };
  736. /////////////////////////////////////////////////
  737. // ISClusNode
  738. [
  739. oleautomation,
  740. hidden,
  741. nonextensible,
  742. object,
  743. uuid(f2e606f8-2631-11d1-89f1-00a0c90d061e),
  744. dual,
  745. helpstring("Cluster Node Interface"),
  746. pointer_default(unique)
  747. ]
  748. interface ISClusNode : IDispatch
  749. {
  750. [propget, id(1), helpstring("Returns the common read-write properties of the node.")]
  751. HRESULT CommonProperties( [out, retval] ISClusProperties ** ppProperties );
  752. [propget, id(2), helpstring("Returns the private read-write properties of the node.")]
  753. HRESULT PrivateProperties( [out, retval] ISClusProperties ** ppProperties );
  754. [propget, id(3), helpstring("Returns the common read only properties of the node.")]
  755. HRESULT CommonROProperties( [out, retval] ISClusProperties ** ppProperties );
  756. [propget, id(4), helpstring("Returns the private read only properties of the node.")]
  757. HRESULT PrivateROProperties( [out, retval] ISClusProperties ** ppProperties );
  758. [propget, id(5), helpstring("Returns the name of the node.")]
  759. HRESULT Name( [out, retval] BSTR * pbstrName );
  760. [propget, hidden, id(6), helpstring("Returns a handle to the node.")]
  761. HRESULT Handle( [out, retval] ULONG_PTR * phandle );
  762. [propget, id(7), helpstring("Returns the GUID (HKEY_LOCAL_MACHINE\Cluster\Nodes) identifying the node.")]
  763. HRESULT NodeID( [out, retval] BSTR * pbstrNodeID );
  764. [propget, id(8), helpstring("Returns the current state of the node.")]
  765. HRESULT State( [out,retval] CLUSTER_NODE_STATE * dwState );
  766. [id(9), helpstring("Suspends cluster activity on the node until the Resume method is called. The paused state is persistent; rebooting will not resume cluster activity. Groups owned by a paused node cannot be brought online, but can be taken offline.")]
  767. HRESULT Pause( void );
  768. [id(10), helpstring("Resumes cluster activity on the node.")]
  769. HRESULT Resume( void );
  770. [id(11), helpstring("Evicts the node from the cluster. An evicted node cannot form or join a cluster until Clustering Service is removed and reinstalled.")]
  771. HRESULT Evict( void );
  772. [propget, id(12), helpstring("Returns all of the groups currently being hosted by the node.")]
  773. HRESULT ResourceGroups( [out, retval] ISClusResGroups ** ppResourceGroups );
  774. [propget, id(13), helpstring("Returns the cluster of which the node is a member.")]
  775. HRESULT Cluster( [out,retval] ISCluster ** ppCluster );
  776. [propget, id(14), helpstring("Returns the network interfaces available to the node.")]
  777. HRESULT NetInterfaces( [out,retval] ISClusNodeNetInterfaces ** ppClusNetInterfaces );
  778. };
  779. /////////////////////////////////////////////////
  780. // ISClusNodes
  781. [
  782. oleautomation,
  783. hidden,
  784. nonextensible,
  785. object,
  786. uuid(f2e606fa-2631-11d1-89f1-00a0c90d061e),
  787. dual,
  788. helpstring("Cluster Nodes Interface"),
  789. pointer_default(unique)
  790. ]
  791. interface ISClusNodes : IDispatch
  792. {
  793. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of nodes in the cluster).")]
  794. HRESULT Count( [out, retval] long * plCount );
  795. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  796. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  797. [id(2), helpstring("Refreshes the data in the collection")]
  798. HRESULT Refresh( void );
  799. [propget, id(DISPID_VALUE), helpstring("Returns a node identified by name or numeric index from the collection.")]
  800. HRESULT Item( [in] VARIANT varIndex , [out, retval] ISClusNode ** ppNode );
  801. };
  802. /////////////////////////////////////////////////
  803. // ISClusNetwork
  804. [
  805. oleautomation,
  806. hidden,
  807. nonextensible,
  808. object,
  809. uuid(f2e606f2-2631-11d1-89f1-00a0c90d061e),
  810. dual,
  811. helpstring("Cluster Network Interface"),
  812. pointer_default(unique)
  813. ]
  814. interface ISClusNetwork : IDispatch
  815. {
  816. [propget, id(1), helpstring("Returns the common read-write properties of the network.")]
  817. HRESULT CommonProperties( [out, retval] ISClusProperties ** ppProperties );
  818. [propget, id(2), helpstring("Returns the private read-write properties of the network.")]
  819. HRESULT PrivateProperties( [out, retval] ISClusProperties ** ppProperties );
  820. [propget, id(3), helpstring("Returns the common read-only properties of the network.")]
  821. HRESULT CommonROProperties( [out, retval] ISClusProperties ** ppProperties );
  822. [propget, id(4), helpstring("Returns the private read-only properties of the network.")]
  823. HRESULT PrivateROProperties( [out, retval] ISClusProperties ** ppProperties );
  824. [propget, hidden, id(5), helpstring("Returns a network handle.")]
  825. HRESULT Handle( [out, retval] ULONG_PTR * phandle );
  826. [propget, id(6), helpstring("Returns or sets the name of the network.")]
  827. HRESULT Name( [out, retval] BSTR * pbstrName );
  828. [propput, id(6), helpstring("Returns or sets the name of the network.")]
  829. HRESULT Name( [in] BSTR bstrNetworkName );
  830. [propget, id(7), helpstring("Returns the GUID (HKEY_LOCAL_MACHINE\Cluster\Networks) identifying the network.")]
  831. HRESULT NetworkID( [out, retval] BSTR * pbstrNetworkID );
  832. [propget, id(8), helpstring("Returns the state of the network.")]
  833. HRESULT State( [out,retval] CLUSTER_NETWORK_STATE* dwState );
  834. [propget, id(9), helpstring("Returns the network interfaces available to the network.")]
  835. HRESULT NetInterfaces([out, retval] ISClusNetworkNetInterfaces ** ppClusNetInterfaces);
  836. [propget, id(10), helpstring("Returns the cluster with which the network is associated.")]
  837. HRESULT Cluster( [out,retval] ISCluster ** ppCluster );
  838. };
  839. /////////////////////////////////////////////////
  840. // ISClusNetworks
  841. [
  842. oleautomation,
  843. hidden,
  844. nonextensible,
  845. object,
  846. uuid(f2e606f4-2631-11d1-89f1-00a0c90d061e),
  847. dual,
  848. helpstring("Cluster Network Collection Interface"),
  849. pointer_default(unique)
  850. ]
  851. interface ISClusNetworks : IDispatch
  852. {
  853. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of networks in the cluster).")]
  854. HRESULT Count( [out, retval] long * plCount );
  855. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  856. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  857. [id(2), helpstring("Refreshes the data in the collection")]
  858. HRESULT Refresh( void );
  859. [propget, id(DISPID_VALUE), helpstring("Returns a network identified by name or numeric index from the collection.")]
  860. HRESULT Item( [in] VARIANT varIndex , [out, retval] ISClusNetwork ** ppClusNetwork );
  861. };
  862. /////////////////////////////////////////////////
  863. // ISClusNetInterface
  864. [
  865. oleautomation,
  866. hidden,
  867. nonextensible,
  868. object,
  869. uuid(f2e606ee-2631-11d1-89f1-00a0c90d061e),
  870. dual,
  871. helpstring("Cluster NetInterface Interface"),
  872. pointer_default(unique)
  873. ]
  874. interface ISClusNetInterface : IDispatch
  875. {
  876. [propget, id(1), helpstring("Returns the common read-write properties of the network interface.")]
  877. HRESULT CommonProperties( [out, retval] ISClusProperties ** ppProperties );
  878. [propget, id(2), helpstring("Returns the private read-write properties of the network interface.")]
  879. HRESULT PrivateProperties( [out, retval] ISClusProperties ** ppProperties );
  880. [propget, id(3), helpstring("Returns the common read-only properties of the network interface.")]
  881. HRESULT CommonROProperties( [out, retval] ISClusProperties ** ppProperties );
  882. [propget, id(4), helpstring("Returns the private read-only properties of the network interface.")]
  883. HRESULT PrivateROProperties( [out, retval] ISClusProperties ** ppProperties );
  884. [propget, id(5), helpstring("Returns the name of the network interface.")]
  885. HRESULT Name( [out, retval] BSTR * pbstrName );
  886. [propget, hidden, id(6), helpstring("Returns a handle to the network interface.")]
  887. HRESULT Handle( [out, retval] ULONG_PTR * phandle );
  888. [propget, id(7), helpstring("Returns the state of the network interface.")]
  889. HRESULT State( [out,retval] CLUSTER_NETINTERFACE_STATE * dwState );
  890. [propget, id(8), helpstring("Returns the cluster with which the network interface is associated.")]
  891. HRESULT Cluster( [out,retval] ISCluster ** ppCluster );
  892. };
  893. /////////////////////////////////////////////////
  894. // ISClusNetInterfaces
  895. [
  896. oleautomation,
  897. hidden,
  898. nonextensible,
  899. object,
  900. uuid(f2e606f0-2631-11d1-89f1-00a0c90d061e),
  901. dual,
  902. helpstring("Cluster NetInterface Collection Interface in ISCluster"),
  903. pointer_default(unique)
  904. ]
  905. interface ISClusNetInterfaces : IDispatch
  906. {
  907. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of network interfaces in the cluster).")]
  908. HRESULT Count( [out, retval] long * plCount );
  909. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  910. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  911. [id(2), helpstring("Refreshes the data in the collection")]
  912. HRESULT Refresh( void );
  913. [propget, id(DISPID_VALUE), helpstring("Returns a network interface identified by name or numeric index from the collection.")]
  914. HRESULT Item( [in] VARIANT varIndex , [out, retval] ISClusNetInterface ** ppClusNetInterface );
  915. };
  916. /////////////////////////////////////////////////
  917. // ISClusNodeNetInterfaces
  918. [
  919. oleautomation,
  920. hidden,
  921. nonextensible,
  922. object,
  923. uuid(f2e606fc-2631-11d1-89f1-00a0c90d061e),
  924. dual,
  925. helpstring("Cluster NetInterface Collection Interface in Node"),
  926. pointer_default(unique)
  927. ]
  928. interface ISClusNodeNetInterfaces : IDispatch
  929. {
  930. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of network interfaces available to a node).")]
  931. HRESULT Count( [out, retval] long * plCount );
  932. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  933. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  934. [id(2), helpstring("Refreshes the data in the collection")]
  935. HRESULT Refresh( void );
  936. [propget, id(DISPID_VALUE), helpstring("Returns a network interface identified by name or numeric index from the collection.")]
  937. HRESULT Item( [in] VARIANT varIndex , [out, retval] ISClusNetInterface ** ppClusNetInterface );
  938. };
  939. /////////////////////////////////////////////////
  940. // ISClusNetworkNetInterfaces
  941. [
  942. oleautomation,
  943. hidden,
  944. nonextensible,
  945. object,
  946. uuid(f2e606f6-2631-11d1-89f1-00a0c90d061e),
  947. dual,
  948. helpstring("Cluster NetInterface Collection Interface in ISClusNetwork"),
  949. pointer_default(unique)
  950. ]
  951. interface ISClusNetworkNetInterfaces : IDispatch
  952. {
  953. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of network interfaces available to a network).")]
  954. HRESULT Count( [out, retval] long * plCount );
  955. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  956. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  957. [id(2), helpstring("Refreshes the data in the collection")]
  958. HRESULT Refresh( void );
  959. [propget, id(DISPID_VALUE), helpstring("Returns a network interface identified by name or numeric index from the collection.")]
  960. HRESULT Item( [in] VARIANT varIndex , [out, retval] ISClusNetInterface ** ppClusNetInterface );
  961. };
  962. /////////////////////////////////////////////////
  963. // ISClusResGroup
  964. [
  965. oleautomation,
  966. hidden,
  967. nonextensible,
  968. object,
  969. uuid(f2e60706-2631-11d1-89f1-00a0c90d061e),
  970. dual,
  971. helpstring("Cluster Resource Group Interface"),
  972. pointer_default(unique)
  973. ]
  974. interface ISClusResGroup : IDispatch
  975. {
  976. [propget, id(1), helpstring("Returns the common read-write properties of the group.")]
  977. HRESULT CommonProperties( [out, retval] ISClusProperties ** ppProperties );
  978. [propget, id(2), helpstring("Returns the private read-write properties of the group.")]
  979. HRESULT PrivateProperties( [out, retval] ISClusProperties ** ppProperties );
  980. [propget, id(3), helpstring("Returns the common read-only properties of the group.")]
  981. HRESULT CommonROProperties( [out, retval] ISClusProperties ** ppProperties );
  982. [propget, id(4), helpstring("Returns the private read-only properties of the group.")]
  983. HRESULT PrivateROProperties( [out, retval] ISClusProperties ** ppProperties );
  984. [propget, hidden, id(5), helpstring("Returns a handle to the group.")]
  985. HRESULT Handle( [out, retval] ULONG_PTR * phandle );
  986. [propget, id(6), helpstring("Returns or sets the name of the group.")]
  987. HRESULT Name( [out, retval] BSTR * pbstrName );
  988. [propput, id(6), helpstring("Returns or sets the name of the group.")]
  989. HRESULT Name( [in] BSTR bstrGroupName );
  990. [propget, id(7), helpstring("Returns the state of the group.")]
  991. HRESULT State( [out,retval] CLUSTER_GROUP_STATE * dwState );
  992. [propget, id(8), helpstring("Returns the node currently hosting the group.")]
  993. HRESULT OwnerNode( [out,retval] ISClusNode ** ppOwnerNode );
  994. [propget, id(9), helpstring("Returns all of the resources in the group.")]
  995. HRESULT Resources( [out, retval] ISClusResGroupResources ** ppClusterGroupResources );
  996. [propget, id(10), helpstring("Returns the group's list of preferred owner nodes.")]
  997. HRESULT PreferredOwnerNodes( [out, retval] ISClusResGroupPreferredOwnerNodes ** ppOwnerNodes );
  998. [id(11), helpstring("Deletes the group from the cluster.")]
  999. HRESULT Delete( void );
  1000. [id(12), helpstring("Brings the group online.")]
  1001. HRESULT Online( [in] VARIANT varTimeout, [in, optional] VARIANT varNode, [out,retval] VARIANT * pvarPending );
  1002. [id(13), helpstring("Moves the group to the best available node.")]
  1003. HRESULT Move( [in] VARIANT varTimeout, [in, optional] VARIANT varNode, [out,retval] VARIANT * pvarPending );
  1004. [id(14), helpstring("Takes the group offline.")]
  1005. HRESULT Offline([in] VARIANT varTimeout, [out,retval] VARIANT * pvarPending);
  1006. [propget, id(15), helpstring("Returns the cluster with which the group is associated.")]
  1007. HRESULT Cluster( [out,retval] ISCluster ** ppCluster );
  1008. };
  1009. /////////////////////////////////////////////////
  1010. // ISClusResGroups
  1011. [
  1012. oleautomation,
  1013. hidden,
  1014. nonextensible,
  1015. object,
  1016. uuid(f2e60708-2631-11d1-89f1-00a0c90d061e),
  1017. dual,
  1018. helpstring("Cluster Groups Interface"),
  1019. pointer_default(unique)
  1020. ]
  1021. interface ISClusResGroups : IDispatch
  1022. {
  1023. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of groups in the cluster).")]
  1024. HRESULT Count( [out, retval] long * plCount );
  1025. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  1026. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  1027. [id(2), helpstring("Refreshes the data in the collection")]
  1028. HRESULT Refresh( void );
  1029. [propget, id(DISPID_VALUE), helpstring("Returns the group identified by name or numeric index from the collection.")]
  1030. HRESULT Item( [in] VARIANT varIndex , [out, retval] ISClusResGroup ** ppClusResGroup );
  1031. [id(3), helpstring("Creates a new group in the cluster and adds it to the collection.")]
  1032. HRESULT CreateItem( [in] BSTR bstrResourceGroupName, [out, retval] ISClusResGroup ** ppResourceGroup );
  1033. [id(4), helpstring("Deletes a group from the cluster and from the collection.")]
  1034. HRESULT DeleteItem( [in] VARIANT varIndex );
  1035. };
  1036. /////////////////////////////////////////////////
  1037. // ISClusResource
  1038. [
  1039. oleautomation,
  1040. hidden,
  1041. nonextensible,
  1042. object,
  1043. uuid(f2e6070a-2631-11d1-89f1-00a0c90d061e),
  1044. dual,
  1045. helpstring("Cluster Resource Interface"),
  1046. pointer_default(unique)
  1047. ]
  1048. interface ISClusResource : IDispatch
  1049. {
  1050. [propget, id(1), helpstring("Returns the common read-write properties of the resource.")]
  1051. HRESULT CommonProperties( [out, retval] ISClusProperties ** ppProperties );
  1052. [propget, id(2), helpstring("Returns the private read-write properties of the resource.")]
  1053. HRESULT PrivateProperties( [out, retval] ISClusProperties ** ppProperties );
  1054. [propget, id(3), helpstring("Returns the common read-only properties of the resource.")]
  1055. HRESULT CommonROProperties( [out, retval] ISClusProperties ** ppProperties );
  1056. [propget, id(4), helpstring("Returns the private read-only properties of the resource.")]
  1057. HRESULT PrivateROProperties( [out, retval] ISClusProperties ** ppProperties );
  1058. [propget, hidden, id(5), helpstring("Returns a handle to the resource.")]
  1059. HRESULT Handle( [out, retval] ULONG_PTR * phandle );
  1060. [propget, id(6), helpstring("Returns or sets the name of the resource.")]
  1061. HRESULT Name( [out, retval] BSTR * pbstrName );
  1062. [propput, id(6), helpstring("Returns or sets the name of the resource.")]
  1063. HRESULT Name( [in] BSTR bstrResourceName );
  1064. [propget, id(7), helpstring("Returns the current state of the resource.")]
  1065. HRESULT State( [out,retval] CLUSTER_RESOURCE_STATE * dwState );
  1066. [propget, id(8), helpstring("Returns any flags associated with the resource.")]
  1067. HRESULT CoreFlag([out,retval] CLUS_FLAGS * dwCoreFlag);
  1068. [id(9), helpstring("Establishes the resource the quoroum resource.")]
  1069. HRESULT BecomeQuorumResource( [in] BSTR bstrDevicePath, [in] long lMaxLogSize );
  1070. [id(10), helpstring("Deletes the resource from the cluster and from the collection.")]
  1071. HRESULT Delete( void );
  1072. [id(11), helpstring("Cause the resource to fail. This may cause the group containing the resource to fail over, depending on the group's common property settings.")]
  1073. HRESULT Fail( void );
  1074. [id(12), helpstring("Brings the resource online.")]
  1075. HRESULT Online( [in] long nTimeout, [out,retval] VARIANT * pvarPending);
  1076. [id(13), helpstring("Takes the resource offline.")]
  1077. HRESULT Offline([in] long nTimeout, [out,retval] VARIANT * pvarPending);
  1078. [id(14), helpstring("Moves the resource to a different group.")]
  1079. HRESULT ChangeResourceGroup( [in] ISClusResGroup * pResourceGroup );
  1080. [id(15), helpstring("Adds a node to the resource's list of possible owner nodes.")]
  1081. HRESULT AddResourceNode( [in] ISClusNode * pNode );
  1082. [id(16), helpstring("Removes a node from the resource's list of possible owner nodes.")]
  1083. HRESULT RemoveResourceNode( [in] ISClusNode * pNode );
  1084. [id(17), helpstring("Returns True if the resource be dependent on another resource.")]
  1085. HRESULT CanResourceBeDependent( [in] ISClusResource * pResource, [out, retval] VARIANT * pvarDependent );
  1086. [propget, id(18), helpstring("Returns the resource's list of possible owner nodes.")]
  1087. HRESULT PossibleOwnerNodes( [out, retval] ISClusResPossibleOwnerNodes ** ppOwnerNodes );
  1088. [propget, id(19), helpstring("Returns all of the resource's dependencies.")]
  1089. HRESULT Dependencies( [out, retval] ISClusResDependencies ** ppResDependencies );
  1090. [propget, id(20), helpstring("Returns all of the resource's dependents.")]
  1091. HRESULT Dependents( [out, retval] ISClusResDependents ** ppResDependents );
  1092. [propget, id(21), helpstring("Returns the group that currently contains the resource.")]
  1093. HRESULT Group( [out, retval] ISClusResGroup ** ppResGroup );
  1094. [propget, id(22), helpstring("Returns the node on which the resource is online.")]
  1095. HRESULT OwnerNode( [out, retval] ISClusNode ** ppOwnerNode );
  1096. [propget, id(23), helpstring("Returns the cluster with which the resource is associated.")]
  1097. HRESULT Cluster( [out, retval] ISCluster ** ppCluster );
  1098. [propget, id(24), helpstring("Returns the class of the resource.")]
  1099. HRESULT ClassInfo( [out,retval] CLUSTER_RESOURCE_CLASS * prcClassInfo );
  1100. [propget, id(25), helpstring("Returns the disk information for a physical disk resource.")]
  1101. HRESULT Disk( [out, retval] ISClusDisk ** ppDisk );
  1102. [propget, id(26), helpstring("Returns the registry keys collection for the resource.")]
  1103. HRESULT RegistryKeys( [out, retval] ISClusRegistryKeys ** ppRegistryKeys );
  1104. [propget, id(27), helpstring("Returns the crypto keys collection for the resource.")]
  1105. HRESULT CryptoKeys( [out, retval] ISClusCryptoKeys ** ppCryptoKeys );
  1106. [propget, id(28), helpstring("Returns the resource type name for the resource.")]
  1107. HRESULT TypeName( [out, retval] BSTR * pbstrTypeName );
  1108. [propget, id(29), helpstring("Returns the resource type for the resource.")]
  1109. HRESULT Type( [out, retval] ISClusResType ** ppResourceType );
  1110. };
  1111. /////////////////////////////////////////////////
  1112. // ISClusResDependencies
  1113. [
  1114. oleautomation,
  1115. hidden,
  1116. nonextensible,
  1117. object,
  1118. uuid(f2e60704-2631-11d1-89f1-00a0c90d061e),
  1119. dual,
  1120. helpstring("Resource Dependencies for a resource"),
  1121. pointer_default(unique)
  1122. ]
  1123. interface ISClusResDependencies : IDispatch
  1124. {
  1125. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of dependencies listed for a resource).")]
  1126. HRESULT Count( [out, retval] long * plCount );
  1127. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  1128. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  1129. [id(2), helpstring("Refreshes the data in the collection")]
  1130. HRESULT Refresh( void );
  1131. [propget, id(DISPID_VALUE), helpstring("Returns the dependency (resource) identified by name or numeric index from the collection.")]
  1132. HRESULT Item( [in] VARIANT varIndex , [out, retval] ISClusResource ** ppClusResource );
  1133. [id(3), helpstring("Creates a new resource and add it to the collection, making the resource a dependency of the resource from which the collection was obtained.")]
  1134. HRESULT CreateItem(
  1135. [in] BSTR bstrResourceName,
  1136. [in] BSTR bstrResourceType,
  1137. [in] CLUSTER_RESOURCE_CREATE_FLAGS dwFlags,
  1138. [out, retval] ISClusResource ** ppClusterResource );
  1139. [id(4), helpstring("Deletes a resource identified by name or numeric index from the collection and from the cluster.")]
  1140. HRESULT DeleteItem( [in] VARIANT varIndex );
  1141. [id(5), helpstring("Adds an existing cluster resource to the collection, making the resource a dependency of the resource from which the collection was obtained.")]
  1142. HRESULT AddItem( [in] ISClusResource* pResource );
  1143. [id(6), helpstring("Removes a resource identified by name or numeric index from the collection, but does not delete it from the cluster.")]
  1144. HRESULT RemoveItem( [in] VARIANT varIndex );
  1145. };
  1146. /////////////////////////////////////////////////
  1147. // ISClusResGroupResources
  1148. [
  1149. oleautomation,
  1150. hidden,
  1151. nonextensible,
  1152. object,
  1153. uuid(f2e606ea-2631-11d1-89f1-00a0c90d061e),
  1154. dual,
  1155. helpstring("Resources Collection in a group"),
  1156. pointer_default(unique)
  1157. ]
  1158. interface ISClusResGroupResources : IDispatch
  1159. {
  1160. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of resources in the group).")]
  1161. HRESULT Count( [out, retval] long * plCount );
  1162. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  1163. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  1164. [id(2), helpstring("Refreshes the data in the collection")]
  1165. HRESULT Refresh( void );
  1166. [propget, id(DISPID_VALUE), helpstring("Returns the resource identified by name or numeric index.")]
  1167. HRESULT Item( [in] VARIANT varIndex , [out, retval] ISClusResource ** ppClusResource );
  1168. [id(3), helpstring("Creates a new cluster resource and adds it to the group.")]
  1169. HRESULT CreateItem(
  1170. [in] BSTR bstrResourceName,
  1171. [in] BSTR bstrResourceType,
  1172. [in] CLUSTER_RESOURCE_CREATE_FLAGS dwFlags,
  1173. [out, retval] ISClusResource ** ppClusterResource );
  1174. [id(4), helpstring("Delete a resource identified by name or index from the collection and from the cluster.")]
  1175. HRESULT DeleteItem( [in] VARIANT varIndex );
  1176. };
  1177. /////////////////////////////////////////////////
  1178. // ISClusResTypeResources
  1179. [
  1180. oleautomation,
  1181. hidden,
  1182. nonextensible,
  1183. object,
  1184. uuid(f2e60714-2631-11d1-89f1-00a0c90d061e),
  1185. dual,
  1186. helpstring("ISClusResTypeResources Collection"),
  1187. pointer_default(unique)
  1188. ]
  1189. interface ISClusResTypeResources : IDispatch
  1190. {
  1191. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of resources of a particular type in the cluster).")]
  1192. HRESULT Count( [out, retval] long * plCount );
  1193. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  1194. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  1195. [id(2), helpstring("Refreshes the data in the collection")]
  1196. HRESULT Refresh( void );
  1197. [propget, id(DISPID_VALUE), helpstring("Returns the resource identified by name or numeric index from the collection.")]
  1198. HRESULT Item( [in] VARIANT varIndex , [out, retval] ISClusResource ** ppClusResource );
  1199. [id(3), helpstring("Creates a new resource in the cluster and adds it to the collection. The type of the new resource is the resource type from which the collection was obtained.")]
  1200. HRESULT CreateItem(
  1201. [in] BSTR bstrResourceName,
  1202. [in] BSTR bstrGroupName,
  1203. [in] CLUSTER_RESOURCE_CREATE_FLAGS dwFlags,
  1204. [out, retval] ISClusResource ** ppClusterResource );
  1205. [id(4), helpstring("Deletes a resource identified by name or index from the collection and from the cluster.")]
  1206. HRESULT DeleteItem( [in] VARIANT varIndex );
  1207. };
  1208. /////////////////////////////////////////////////
  1209. // ISClusResources
  1210. [
  1211. oleautomation,
  1212. hidden,
  1213. nonextensible,
  1214. object,
  1215. uuid(f2e6070c-2631-11d1-89f1-00a0c90d061e),
  1216. dual,
  1217. helpstring("Cluster Resources Collection"),
  1218. pointer_default(unique)
  1219. ]
  1220. interface ISClusResources : IDispatch
  1221. {
  1222. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of resources in the cluster).")]
  1223. HRESULT Count( [out, retval] long * plCount );
  1224. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  1225. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  1226. [id(2), helpstring("Refreshes the data in the collection")]
  1227. HRESULT Refresh( void );
  1228. [propget, id(DISPID_VALUE), helpstring("Returns a resource identified by name or numeric index from the collection.")]
  1229. HRESULT Item( [in] VARIANT varIndex , [out, retval] ISClusResource ** ppClusResource );
  1230. [id(3), helpstring("Creates a new resource in the cluster and adds it to the collection.")]
  1231. HRESULT CreateItem(
  1232. [in] BSTR bstrResourceName,
  1233. [in] BSTR bstrResourceType,
  1234. [in] BSTR bstrGroupName,
  1235. [in] CLUSTER_RESOURCE_CREATE_FLAGS dwFlags,
  1236. [out, retval] ISClusResource ** ppClusterResource );
  1237. [id(4), helpstring("Deletes a resource identified by name or index from the collection and from the cluster.")]
  1238. HRESULT DeleteItem( [in] VARIANT varIndex );
  1239. };
  1240. /////////////////////////////////////////////////
  1241. // ISClusResGroupPreferredOwnerNodes
  1242. [
  1243. oleautomation,
  1244. hidden,
  1245. nonextensible,
  1246. object,
  1247. uuid(f2e606e8-2631-11d1-89f1-00a0c90d061e),
  1248. dual,
  1249. helpstring("Cluster Resource Group Preferred Owner Nodes Collection"),
  1250. pointer_default(unique)
  1251. ]
  1252. interface ISClusResGroupPreferredOwnerNodes : IDispatch
  1253. {
  1254. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of preferred owner nodes listed for a group.")]
  1255. HRESULT Count( [out, retval] long * plCount );
  1256. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  1257. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  1258. [id(2), helpstring("Refreshes the data in the collection")]
  1259. HRESULT Refresh( void );
  1260. [propget, id(DISPID_VALUE), helpstring("Returns a node identified by name or numeric index from the collection.")]
  1261. HRESULT Item( [in] VARIANT varIndex , [out, retval] ISClusNode ** ppNode );
  1262. [id(3), helpstring("Insert a node into the collection, making it a preferred owner node of the group from which the collection was obtained.")]
  1263. HRESULT InsertItem( [in] ISClusNode * pNode, [in] long nPosition );
  1264. [id(4), helpstring("Deletes a node identified by by name or numeric index from the collection.")]
  1265. HRESULT RemoveItem( [in] VARIANT varIndex );
  1266. [propget, id(5), helpstring("Returns True if the collection has been modified.")]
  1267. HRESULT Modified([out,retval] VARIANT * pvarModified );
  1268. [id(6), helpstring("Saves the group's list of preferred owner nodes to the cluster database.")]
  1269. HRESULT SaveChanges( void );
  1270. [id(7), helpstring("Adds a node to the collection, making it a preferred owner node of the group from which the collection was obtained.")]
  1271. HRESULT AddItem( [in] ISClusNode * pNode );
  1272. };
  1273. /////////////////////////////////////////////////
  1274. // ISClusResPossibleOwnerNodes
  1275. [
  1276. oleautomation,
  1277. hidden,
  1278. nonextensible,
  1279. object,
  1280. uuid(f2e6070e-2631-11d1-89f1-00a0c90d061e),
  1281. dual,
  1282. helpstring("Cluster Resource Possible Owner Nodes Collection"),
  1283. pointer_default(unique)
  1284. ]
  1285. interface ISClusResPossibleOwnerNodes : IDispatch
  1286. {
  1287. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of possible owner nodes listed for a resoure.")]
  1288. HRESULT Count( [out, retval] long * plCount );
  1289. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  1290. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  1291. [id(2), helpstring("Refreshes the data in the collection")]
  1292. HRESULT Refresh( void );
  1293. [propget, id(DISPID_VALUE), helpstring("Returns a node identified by name or numeric index from the collection.")]
  1294. HRESULT Item( [in] VARIANT varIndex , [out, retval] ISClusNode ** ppNode );
  1295. [id(3), helpstring("Adds a node to the collection, making it one of the possible owner nodes of the resource from which the collection was obtained.")]
  1296. HRESULT AddItem( [in] ISClusNode * pNode );
  1297. [id(4), helpstring("Removes the node identified by name or numeric index from the collection.")]
  1298. HRESULT RemoveItem( [in] VARIANT varIndex );
  1299. [propget, id(5), helpstring("Returns True if the list of possible owner nodes has been modified.")]
  1300. HRESULT Modified([out,retval] VARIANT * pvarModified );
  1301. };
  1302. /////////////////////////////////////////////////
  1303. // ISClusResTypePossibleOwnerNodes
  1304. [
  1305. oleautomation,
  1306. hidden,
  1307. nonextensible,
  1308. object,
  1309. uuid(f2e60718-2631-11d1-89f1-00a0c90d061e),
  1310. dual,
  1311. helpstring("Cluster Resource Type Possible Owner Nodes Collection"),
  1312. pointer_default(unique)
  1313. ]
  1314. interface ISClusResTypePossibleOwnerNodes : IDispatch
  1315. {
  1316. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of possible owner nodes listed for a resource type.")]
  1317. HRESULT Count( [out, retval] long * plCount );
  1318. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  1319. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  1320. [id(2), helpstring("Refreshes the data in the collection")]
  1321. HRESULT Refresh( void );
  1322. [propget, id(DISPID_VALUE), helpstring("Returns the node identified by name or numeric index from the collection.")]
  1323. HRESULT Item( [in] VARIANT varIndex , [out, retval] ISClusNode ** ppNode );
  1324. };
  1325. /////////////////////////////////////////////////
  1326. // ISClusResType
  1327. [
  1328. oleautomation,
  1329. hidden,
  1330. nonextensible,
  1331. object,
  1332. uuid(f2e60710-2631-11d1-89f1-00a0c90d061e),
  1333. dual,
  1334. helpstring("Cluster Resource Type"),
  1335. pointer_default(unique)
  1336. ]
  1337. interface ISClusResType : IDispatch
  1338. {
  1339. [propget, id(1), helpstring("Returns the common read-write properties of the resource type.")]
  1340. HRESULT CommonProperties( [out, retval] ISClusProperties ** ppProperties );
  1341. [propget, id(2), helpstring("Returns the private read-write properties of the resource type.")]
  1342. HRESULT PrivateProperties( [out, retval] ISClusProperties ** ppProperties );
  1343. [propget, id(3), helpstring("Returns the common read-only properties of the resource type.")]
  1344. HRESULT CommonROProperties( [out, retval] ISClusProperties ** ppProperties );
  1345. [propget, id(4), helpstring("Returns the private read-only properties of the resource type.")]
  1346. HRESULT PrivateROProperties( [out, retval] ISClusProperties ** ppProperties );
  1347. [propget, id(5), helpstring("Returns the name of the resource type.")]
  1348. HRESULT Name( [out, retval] BSTR * pbstrName );
  1349. [id(6), helpstring("Deletes the resource type from the cluster and unregisters the type with the Cluster Service. No resources of that type can ever be created again in the cluster until the resource type is re-registered.")]
  1350. HRESULT Delete( void );
  1351. [propget, id(7), helpstring("Returns the cluster with which the resource type is associated.")]
  1352. HRESULT Cluster( [out,retval] ISCluster ** ppCluster );
  1353. [propget, id(8), helpstring("Returns the all of the resources of this resource type currently created in the cluster.")]
  1354. HRESULT Resources( [out, retval] ISClusResTypeResources ** ppClusterResTypeResources );
  1355. [propget, id(9), helpstring("Returns the resource type's list of possible owner nodes.")]
  1356. HRESULT PossibleOwnerNodes( [out, retval] ISClusResTypePossibleOwnerNodes ** ppOwnerNodes );
  1357. [propget, id(10), helpstring("Returns the collection of available disks.")]
  1358. HRESULT AvailableDisks( [out, retval] ISClusDisks ** ppAvailableDisks );
  1359. };
  1360. /////////////////////////////////////////////////
  1361. // ISClusResTypes
  1362. [
  1363. oleautomation,
  1364. hidden,
  1365. nonextensible,
  1366. object,
  1367. uuid(f2e60712-2631-11d1-89f1-00a0c90d061e),
  1368. dual,
  1369. helpstring("Cluster Resource Types Collection"),
  1370. pointer_default(unique)
  1371. ]
  1372. interface ISClusResTypes : IDispatch
  1373. {
  1374. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of resource types in the cluster).")]
  1375. HRESULT Count( [out, retval] long * plCount );
  1376. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  1377. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  1378. [id(2), helpstring("Refreshes the data in the collection")]
  1379. HRESULT Refresh( void );
  1380. [propget, id(DISPID_VALUE), helpstring("Returns the resource type identified by name or numeric index from the collection.")]
  1381. HRESULT Item( [in] VARIANT varIndex , [out, retval] ISClusResType ** ppClusResType );
  1382. [id(3), helpstring("Registers a new resource type in the cluster. There must be a resource DLL to implement the new type. For more information, see 'Creating a Custom Resource Type' in the Platform SDK documentation.")]
  1383. HRESULT CreateItem(
  1384. [in] BSTR bstrResourceTypeName,
  1385. [in] BSTR bstrDisplayName,
  1386. [in] BSTR bstrResourceTypeDll,
  1387. [in] long dwLooksAlivePollInterval,
  1388. [in] long dwIsAlivePollInterval,
  1389. [out, retval] ISClusResType ** ppResourceType );
  1390. [id(4), helpstring("Deletes the resource type identified by name or index from the cluster if no resources of that type are present in the cluster.")]
  1391. HRESULT DeleteItem( [in] VARIANT varIndex );
  1392. };
  1393. /////////////////////////////////////////////////
  1394. // ISClusProperty
  1395. [
  1396. oleautomation,
  1397. hidden,
  1398. nonextensible,
  1399. object,
  1400. uuid(f2e606fe-2631-11d1-89f1-00a0c90d061e),
  1401. dual,
  1402. helpstring("Property of an object in the cluster"),
  1403. pointer_default(unique)
  1404. ]
  1405. interface ISClusProperty : IDispatch
  1406. {
  1407. [propget, id(1), helpstring("Returns the name of the property.")]
  1408. HRESULT Name( [out, retval] BSTR * pbstrName );
  1409. [propget, id(2), helpstring("Returns the length of the property.")]
  1410. HRESULT Length( [out, retval] long * pLength );
  1411. [propget, id(3), helpstring("Returns the count of values in the property.")]
  1412. HRESULT ValueCount( [out, retval] long * pCount );
  1413. [propget, id(4), helpstring("Returns all of the values for this property.")]
  1414. HRESULT Values( [out, retval] ISClusPropertyValues ** ppClusterPropertyValues );
  1415. [propget, id(DISPID_VALUE), helpstring("Returns or sets the value of the property.")]
  1416. HRESULT Value( [out, retval] VARIANT * pvarValue );
  1417. [propput, id(DISPID_VALUE), helpstring("Returns or sets the value of the property.")]
  1418. HRESULT Value( [in] VARIANT varValue );
  1419. [propget, id(5), helpstring("Returns or sets the type of the property.")]
  1420. HRESULT Type( [out, retval] CLUSTER_PROPERTY_TYPE * pType );
  1421. [propput, id(5), helpstring("Returns or sets the type of the property.")]
  1422. HRESULT Type( [in] CLUSTER_PROPERTY_TYPE Type );
  1423. [propget, id(6), helpstring("Returns or sets the format of the property.")]
  1424. HRESULT Format( [out, retval] CLUSTER_PROPERTY_FORMAT * pFormat );
  1425. [propput, id(6), helpstring("Returns or sets the format of the property.")]
  1426. HRESULT Format( [in] CLUSTER_PROPERTY_FORMAT Format );
  1427. [propget, id(7), helpstring("Returns TRUE if this property is read only.")]
  1428. HRESULT ReadOnly( [out, retval] VARIANT * pvarReadOnly );
  1429. [propget, id(8), helpstring("Returns TRUE if this property is a private property.")]
  1430. HRESULT Private( [out, retval] VARIANT * pvarPrivate );
  1431. [propget, id(9), helpstring("Returns TRUE if this property is a common property.")]
  1432. HRESULT Common( [out, retval] VARIANT * pvarCommon );
  1433. [propget, id(10), helpstring("Returns True if this property has been modified.")]
  1434. HRESULT Modified([out,retval] VARIANT * pvarModified );
  1435. [id(11), helpstring("Returns a property to its default value state. This effectivley removes the property from the collection.")]
  1436. HRESULT UseDefaultValue( void );
  1437. };
  1438. /////////////////////////////////////////////////
  1439. // ISClusPropertyValue
  1440. [
  1441. oleautomation,
  1442. hidden,
  1443. nonextensible,
  1444. object,
  1445. uuid(f2e6071a-2631-11d1-89f1-00a0c90d061e),
  1446. dual,
  1447. helpstring("Property value of an object in the cluster"),
  1448. pointer_default(unique)
  1449. ]
  1450. interface ISClusPropertyValue : IDispatch
  1451. {
  1452. [propget, id(DISPID_VALUE), helpstring("Returns or sets the value of the property value.")]
  1453. HRESULT Value( [out, retval] VARIANT * pvarValue );
  1454. [propput, id(DISPID_VALUE), helpstring("Returns or sets the value of the property value.")]
  1455. HRESULT Value( [in] VARIANT varValue );
  1456. [propget, id(2), helpstring("Returns or sets the type of the property value.")]
  1457. HRESULT Type( [out, retval] CLUSTER_PROPERTY_TYPE * pType );
  1458. [propput, id(2), helpstring("Returns or sets the type of the property value.")]
  1459. HRESULT Type( [in] CLUSTER_PROPERTY_TYPE Type );
  1460. [propget, id(3), helpstring("Returns or sets the format of the property value.")]
  1461. HRESULT Format( [out, retval] CLUSTER_PROPERTY_FORMAT * pFormat );
  1462. [propput, id(3), helpstring("Returns or sets the format of the property value.")]
  1463. HRESULT Format( [in] CLUSTER_PROPERTY_FORMAT Format );
  1464. [propget, id(4), helpstring("Returns the length of the property.")]
  1465. HRESULT Length( [out, retval] long * pLength );
  1466. [propget, id(5), helpstring("Returns the count of data in the property.")]
  1467. HRESULT DataCount( [out, retval] long * pCount );
  1468. [propget, id(6), helpstring("Returns all of the data for this property value.")]
  1469. HRESULT Data( [out, retval] ISClusPropertyValueData ** ppClusterPropertyValueData );
  1470. };
  1471. /////////////////////////////////////////////////
  1472. // ISClusPropertyValues
  1473. [
  1474. oleautomation,
  1475. hidden,
  1476. nonextensible,
  1477. object,
  1478. uuid(f2e6071c-2631-11d1-89f1-00a0c90d061e),
  1479. dual,
  1480. helpstring("ISClusPropertyValue collection"),
  1481. pointer_default(unique)
  1482. ]
  1483. interface ISClusPropertyValues : IDispatch
  1484. {
  1485. [propget, id(2), helpstring("Returns the count of elements (property values) in the collection.")]
  1486. HRESULT Count( [out, retval] long * plCount );
  1487. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  1488. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  1489. [propget, id(DISPID_VALUE), helpstring("Returns the property value identified by name or numeric index from the collection.")]
  1490. HRESULT Item( [in] VARIANT varIndex , [out, retval] ISClusPropertyValue ** ppPropertyValue );
  1491. [id(3), helpstring("Adds a property value to the collection")]
  1492. HRESULT CreateItem( [in] BSTR bstrName, [in] VARIANT varValue, [out, retval] ISClusPropertyValue ** ppPropertyValue );
  1493. [id(4), helpstring("Removes property value identified by numeric index from the collection")]
  1494. HRESULT RemoveItem( [in] VARIANT varIndex );
  1495. };
  1496. /////////////////////////////////////////////////
  1497. // ISClusProperties
  1498. [
  1499. oleautomation,
  1500. hidden,
  1501. nonextensible,
  1502. object,
  1503. uuid(f2e60700-2631-11d1-89f1-00a0c90d061e),
  1504. dual,
  1505. helpstring("ISClusProperty collection"),
  1506. pointer_default(unique)
  1507. ]
  1508. interface ISClusProperties : IDispatch
  1509. {
  1510. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of properties associated with a cluster object.")]
  1511. HRESULT Count( [out, retval] long * plCount );
  1512. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  1513. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  1514. [id(2), helpstring("Refreshes the data in the collection")]
  1515. HRESULT Refresh( void );
  1516. [propget, id(DISPID_VALUE), helpstring("Returns the property identified by name or numeric index from the collection.")]
  1517. HRESULT Item( [in] VARIANT varIndex , [out, retval] ISClusProperty ** ppClusProperty );
  1518. [id(3), helpstring("Creates and adds a property to the collection.")]
  1519. HRESULT CreateItem( [in] BSTR bstrName, [in] VARIANT varValue, [out, retval] ISClusProperty ** pProperty );
  1520. [id(4), helpstring("Returns a property to its default value state. This effectivley removes the property from the collection.")]
  1521. HRESULT UseDefaultValue( [in] VARIANT varIndex );
  1522. [id(5), helpstring("Saves all property changes to the cluster database.")]
  1523. HRESULT SaveChanges( [out, defaultvalue( NULL )] VARIANT * pvarStatusCode );
  1524. [propget, id(6), helpstring("Returns TRUE if this a collection of read only properties.")]
  1525. HRESULT ReadOnly( [out, retval] VARIANT * pvarReadOnly );
  1526. [propget, id(7), helpstring("Returns TRUE if this is a collection of private properties.")]
  1527. HRESULT Private( [out, retval] VARIANT * pvarPrivate );
  1528. [propget, id(8), helpstring("Returns TRUE if this is a collection of common properties.")]
  1529. HRESULT Common( [out, retval] VARIANT * pvarCommon );
  1530. [propget, id(9), helpstring("Returns True if the collection of properties has been modified.")]
  1531. HRESULT Modified([out,retval] VARIANT * pvarModified );
  1532. };
  1533. /////////////////////////////////////////////////
  1534. // ISClusPropertyValueData
  1535. [
  1536. oleautomation,
  1537. hidden,
  1538. nonextensible,
  1539. object,
  1540. uuid(f2e6071e-2631-11d1-89f1-00a0c90d061e),
  1541. dual,
  1542. helpstring("ISClusPropertyValueData collection"),
  1543. pointer_default(unique)
  1544. ]
  1545. interface ISClusPropertyValueData : IDispatch
  1546. {
  1547. [propget, id(2), helpstring("Returns the count of elements (property value data) in the collection.")]
  1548. HRESULT Count( [out, retval] long * plCount );
  1549. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  1550. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  1551. [propget, id(DISPID_VALUE), helpstring("Returns the property value identified by numeric index from the collection.")]
  1552. HRESULT Item( [in] VARIANT varIndex , [out, retval] VARIANT * pvarValue );
  1553. [id(3), helpstring("Adds a property value data to the collection")]
  1554. HRESULT CreateItem( [in] VARIANT varValue, [out, retval] VARIANT * pvarData );
  1555. [id(4), helpstring("Removes property value data identified by the numeric index from the collection")]
  1556. HRESULT RemoveItem( [in] VARIANT varIndex );
  1557. };
  1558. /////////////////////////////////////////////////
  1559. // ISClusPartition
  1560. [
  1561. oleautomation,
  1562. hidden,
  1563. nonextensible,
  1564. object,
  1565. uuid(f2e60720-2631-11d1-89f1-00a0c90d061e),
  1566. dual,
  1567. helpstring("Partition information for physical disk resources."),
  1568. pointer_default(unique)
  1569. ]
  1570. interface ISClusPartition : IDispatch
  1571. {
  1572. [propget, id(1), helpstring("Returns any descriptive flags set for the partition.")]
  1573. HRESULT Flags( [out, retval] long * plFlags );
  1574. [propget, id(2), helpstring("Returns the device name of the partition.")]
  1575. HRESULT DeviceName( [out, retval] BSTR * pbstrDeviceName );
  1576. [propget, id(3), helpstring("Returns the volume label of the partition.")]
  1577. HRESULT VolumeLabel( [out, retval] BSTR * pbstrVolumeLabel );
  1578. [propget, id(4), helpstring("Returns the partition serial number.")]
  1579. HRESULT SerialNumber( [out, retval] long * plSerialNumber );
  1580. [propget, id(5), helpstring("Returns the maximum file name component length, in characters, allowed by the partition's file system.")]
  1581. HRESULT MaximumComponentLength( [out, retval] long * plMaximumComponentLength );
  1582. [propget, id(6), helpstring("Returns any descriptive flags set for the partition's file system.")]
  1583. HRESULT FileSystemFlags( [out, retval] long * plFileSystemFlags );
  1584. [propget, id(7), helpstring("Returns the file system defined for the partition.")]
  1585. HRESULT FileSystem( [out, retval] BSTR * pbstrFileSystem );
  1586. };
  1587. /////////////////////////////////////////////////
  1588. // ISClusPartitions
  1589. [
  1590. oleautomation,
  1591. hidden,
  1592. nonextensible,
  1593. object,
  1594. uuid(f2e60722-2631-11d1-89f1-00a0c90d061e),
  1595. dual,
  1596. helpstring("ISClusPartition collection"),
  1597. pointer_default(unique)
  1598. ]
  1599. interface ISClusPartitions : IDispatch
  1600. {
  1601. [propget, id(2), helpstring("Returns the count of elements (partitions) in the collection.")]
  1602. HRESULT Count( [out, retval] long * plCount );
  1603. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  1604. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  1605. [propget, id(DISPID_VALUE), helpstring("Returns the partition identified by numeric index from the collection.")]
  1606. HRESULT Item( [in] VARIANT varIndex , [out, retval] ISClusPartition ** ppPartition );
  1607. };
  1608. /////////////////////////////////////////////////
  1609. // ISClusDisk
  1610. [
  1611. oleautomation,
  1612. hidden,
  1613. nonextensible,
  1614. object,
  1615. uuid(f2e60724-2631-11d1-89f1-00a0c90d061e),
  1616. dual,
  1617. helpstring("Disk information for physical disk resources."),
  1618. pointer_default(unique)
  1619. ]
  1620. interface ISClusDisk : IDispatch
  1621. {
  1622. [propget, id(1), helpstring("Returns the signature of the Disk.")]
  1623. HRESULT Signature( [out, retval] long * plSignature );
  1624. [propget, id(2), helpstring("Returns the SCSI address of the Disk.")]
  1625. HRESULT ScsiAddress( [out, retval] ISClusScsiAddress ** ppScsiAddress );
  1626. [propget, id(3), helpstring("Returns the disk number of the Disk.")]
  1627. HRESULT DiskNumber( [out, retval] long * plDiskNumber );
  1628. [propget, id(4), helpstring("Returns the partition information of the Disk.")]
  1629. HRESULT Partitions( [out, retval] ISClusPartitions ** ppPartitions );
  1630. };
  1631. /////////////////////////////////////////////////
  1632. // ISClusDisks
  1633. [
  1634. oleautomation,
  1635. hidden,
  1636. nonextensible,
  1637. object,
  1638. uuid(f2e60726-2631-11d1-89f1-00a0c90d061e),
  1639. dual,
  1640. helpstring("ISClusDisk collection"),
  1641. pointer_default(unique)
  1642. ]
  1643. interface ISClusDisks : IDispatch
  1644. {
  1645. [propget, id(2), helpstring("Returns the count of elements (disks) in the collection.")]
  1646. HRESULT Count( [out, retval] long * plCount );
  1647. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  1648. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  1649. [propget, id(DISPID_VALUE), helpstring("Returns the Disk identified by numeric index from the collection.")]
  1650. HRESULT Item( [in] VARIANT varIndex , [out, retval] ISClusDisk ** ppDisk );
  1651. };
  1652. /////////////////////////////////////////////////
  1653. // ISClusScsiAddress
  1654. [
  1655. oleautomation,
  1656. hidden,
  1657. nonextensible,
  1658. object,
  1659. uuid(f2e60728-2631-11d1-89f1-00a0c90d061e),
  1660. dual,
  1661. helpstring("SCSI address of a disk."),
  1662. pointer_default(unique)
  1663. ]
  1664. interface ISClusScsiAddress : IDispatch
  1665. {
  1666. [propget, id(1), helpstring("Returns the SCSI port ID of the Disk.")]
  1667. HRESULT PortNumber( [out, retval] VARIANT * pvarPortNumber );
  1668. [propget, id(2), helpstring("Returns the SCSI path ID of the Disk.")]
  1669. HRESULT PathId( [out, retval] VARIANT * pvarPathId );
  1670. [propget, id(3), helpstring("Returns the SCSI target ID of the Disk.")]
  1671. HRESULT TargetId( [out, retval] VARIANT * pvarTargetId );
  1672. [propget, id(4), helpstring("Returns the SCSI Lun of the Disk.")]
  1673. HRESULT Lun( [out, retval] VARIANT * pvarLun );
  1674. };
  1675. /////////////////////////////////////////////////
  1676. // ISClusRegistryKeys
  1677. [
  1678. oleautomation,
  1679. hidden,
  1680. nonextensible,
  1681. object,
  1682. uuid(f2e6072a-2631-11d1-89f1-00a0c90d061e),
  1683. dual,
  1684. helpstring("Registry keys collection"),
  1685. pointer_default(unique)
  1686. ]
  1687. interface ISClusRegistryKeys : IDispatch
  1688. {
  1689. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of registry keys).")]
  1690. HRESULT Count( [out, retval] long * plCount );
  1691. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  1692. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  1693. [id(2), helpstring("Refreshes the data in the collection")]
  1694. HRESULT Refresh( void );
  1695. [propget, id(DISPID_VALUE), helpstring("Returns the item identified by name or numeric index from the collection.")]
  1696. HRESULT Item( [in] VARIANT varIndex, [out, retval] BSTR * pbstrRegistryKey );
  1697. [id(3), helpstring("Adds a registry key to the collection")]
  1698. HRESULT AddItem( [in] BSTR bstrRegistryKey );
  1699. [id(4), helpstring("Removes the registry key identified by the numeric index from the collection")]
  1700. HRESULT RemoveItem( [in] VARIANT varIndex );
  1701. };
  1702. /////////////////////////////////////////////////
  1703. // ISClusCryptoKeys
  1704. [
  1705. oleautomation,
  1706. hidden,
  1707. nonextensible,
  1708. object,
  1709. uuid(f2e6072c-2631-11d1-89f1-00a0c90d061e),
  1710. dual,
  1711. helpstring("Registry keys collection"),
  1712. pointer_default(unique)
  1713. ]
  1714. interface ISClusCryptoKeys : IDispatch
  1715. {
  1716. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of crypto keys).")]
  1717. HRESULT Count( [out, retval] long * plCount );
  1718. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  1719. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  1720. [id(2), helpstring("Refreshes the data in the collection")]
  1721. HRESULT Refresh( void );
  1722. [propget, id(DISPID_VALUE), helpstring("Returns the item identified by name or numeric index from the collection.")]
  1723. HRESULT Item( [in] VARIANT varIndex, [out, retval] BSTR * pbstrCyrptoKey );
  1724. [id(3), helpstring("Adds a crypto key to the collection")]
  1725. HRESULT AddItem( [in] BSTR bstrCryptoKey );
  1726. [id(4), helpstring("Removes the crypto key identified by the numeric index from the collection")]
  1727. HRESULT RemoveItem( [in] VARIANT varIndex );
  1728. };
  1729. /////////////////////////////////////////////////
  1730. // ISClusResDependents
  1731. [
  1732. oleautomation,
  1733. hidden,
  1734. nonextensible,
  1735. object,
  1736. uuid(f2e6072e-2631-11d1-89f1-00a0c90d061e),
  1737. dual,
  1738. helpstring("Resource Dependents for a resource"),
  1739. pointer_default(unique)
  1740. ]
  1741. interface ISClusResDependents : IDispatch
  1742. {
  1743. [propget, id(1), helpstring("Returns the count of elements in the collection (the number of dependencts listed for a resource).")]
  1744. HRESULT Count( [out, retval] long * plCount );
  1745. [propget, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator for the collection.")]
  1746. HRESULT _NewEnum( [out, retval] IUnknown ** retval);
  1747. [id(2), helpstring("Refreshes the data in the collection")]
  1748. HRESULT Refresh( void );
  1749. [propget, id(DISPID_VALUE), helpstring("Returns the dependenct (resource) identified by name or numeric index from the collection.")]
  1750. HRESULT Item( [in] VARIANT varIndex , [out, retval] ISClusResource ** ppClusResource );
  1751. [id(3), helpstring("Creates a new resource and add it to the collection, making the resource a dependenct of the resource from which the collection was obtained.")]
  1752. HRESULT CreateItem(
  1753. [in] BSTR bstrResourceName,
  1754. [in] BSTR bstrResourceType,
  1755. [in] CLUSTER_RESOURCE_CREATE_FLAGS dwFlags,
  1756. [out, retval] ISClusResource ** ppClusterResource );
  1757. [id(4), helpstring("Deletes a resource identified by name or numeric index from the collection and from the cluster.")]
  1758. HRESULT DeleteItem( [in] VARIANT varIndex );
  1759. [id(5), helpstring("Adds an existing cluster resource to the collection, making the resource a dependenct of the resource from which the collection was obtained.")]
  1760. HRESULT AddItem( [in] ISClusResource* pResource );
  1761. [id(6), helpstring("Removes a resource identified by name or numeric index from the collection, but does not delete it from the cluster.")]
  1762. HRESULT RemoveItem( [in] VARIANT varIndex );
  1763. };