MSClus.Idl
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:78k
源码类别:

模拟服务器

开发平台:

C/C++

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