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.

616 lines
25 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 1999-2002 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // ClusCfgWizard.idl
  7. //
  8. // Description:
  9. // IDL source for Cluster Configuration Wizard.
  10. // This file will be processed by the MIDL tool to produce the
  11. // type library (ClusCfgWizard.tlb) and marshalling code.
  12. //
  13. //////////////////////////////////////////////////////////////////////////////
  14. //////////////////////////////////////////////////////////////////////////////
  15. // Imported Files
  16. //////////////////////////////////////////////////////////////////////////////
  17. import "oaidl.idl";
  18. import "ocidl.idl";
  19. //////////////////////////////////////////////////////////////////////////////
  20. // Forward Declarations
  21. //////////////////////////////////////////////////////////////////////////////
  22. //////////////////////////////////////////////////////////////////////////////
  23. // Type Definitions
  24. //////////////////////////////////////////////////////////////////////////////
  25. //////////////////////////////////////////////////////////////////////////////
  26. // Interface Definitions
  27. //////////////////////////////////////////////////////////////////////////////
  28. //////////////////////////////////////////////////////////////////////////////
  29. // Library Definitions
  30. //////////////////////////////////////////////////////////////////////////////
  31. [
  32. uuid( 6D01FEDC-8D34-4728-AD0B-B3A21A103B42 ),
  33. version( 1.0 ),
  34. helpstring( "Microsoft Cluster Configuration Wizard 1.0" ),
  35. lcid( 0 )
  36. ]
  37. library ClusCfgWizard
  38. {
  39. //////////////////////////////////////////////////////////////////////////
  40. // Imported Files
  41. //////////////////////////////////////////////////////////////////////////
  42. importlib( "stdole2.tlb" );
  43. //////////////////////////////////////////////////////////////////////////
  44. // Interface Definitions
  45. //////////////////////////////////////////////////////////////////////////
  46. //////////////////////////////////////////////////////////////////////////
  47. //
  48. // interface IClusCfgCreateClusterWizard
  49. //
  50. // Description:
  51. // The IClusCfgCreateClusterWizard interface provides the functions
  52. // required to launch the Create Server Cluster Wizard.
  53. //
  54. //////////////////////////////////////////////////////////////////////////
  55. [
  56. object,
  57. uuid( f65c6990-a144-4127-ab6e-3712b75f1843 ),
  58. dual,
  59. helpstring( "IClusCfgCreateClusterWizard interface" ),
  60. pointer_default( unique )
  61. ]
  62. interface IClusCfgCreateClusterWizard : IDispatch
  63. {
  64. //////////////////////////////////////////////////////////////////////
  65. //
  66. // PROPERTY
  67. // ClusterName
  68. //
  69. // Description:
  70. // Set a default value for the cluster name. There is no default
  71. // value.
  72. //
  73. // Return the cluster name for a newly created cluster.
  74. //
  75. // PUT Parameters:
  76. // bstrClusterNameIn
  77. // The name of the cluster. If this is not a Fully-Qualified
  78. // Domain Name (DNS FQDN), the local machine account domain
  79. // will be used.
  80. //
  81. // GET Parameters:
  82. // pbstrClusterNameOut
  83. // Pointer to a BSTR in which to return the cluster name
  84. // for the newly created cluster.
  85. //
  86. // Return Values:
  87. // S_OK - The call succeeded.
  88. // Other HRESULTs - The call failed.
  89. //
  90. //////////////////////////////////////////////////////////////////////
  91. [ propput, helpstring( "property ClusterName" ) ]
  92. HRESULT ClusterName( [ in ] BSTR bstrClusterNameIn );
  93. [ propget, helpstring( "property ClusterName" ) ]
  94. HRESULT ClusterName( [ out, retval ] BSTR * pbstrClusterNameOut );
  95. //////////////////////////////////////////////////////////////////////
  96. //
  97. // PROPERTY
  98. // ServiceAccountName
  99. //
  100. // Description:
  101. // Set a default value for the user name in the cluster service
  102. // account. There is no default value.
  103. //
  104. // Return the value set by the wizard.
  105. //
  106. // PUT Parameters:
  107. // bstrServiceAccountNameIn
  108. // The user name of the cluster service account.
  109. //
  110. // GET Parameters:
  111. // pbstrServiceAccountNameOut
  112. // Pointer to a BSTR in which to return the cluster service
  113. // account name for the newly created cluster.
  114. //
  115. // Return Values:
  116. // S_OK - The call succeeded.
  117. // Other HRESULTs - The call failed.
  118. //
  119. //////////////////////////////////////////////////////////////////////
  120. [ propput, helpstring( "property ServiceAccountName" ) ]
  121. HRESULT ServiceAccountName( [ in ] BSTR bstrServiceAccountNameIn );
  122. [ propget, helpstring( "property ServiceAccountName" ) ]
  123. HRESULT ServiceAccountName( [ out, retval ] BSTR * pbstrServiceAccountNameOut );
  124. //////////////////////////////////////////////////////////////////////
  125. //
  126. // PROPERTY
  127. // ServiceAccountDomain
  128. //
  129. // Description:
  130. // Set a default value for the domain name in the cluster service
  131. // account. The default value is the local machine account
  132. // domain.
  133. //
  134. // Return the value set by the wizard.
  135. //
  136. // PUT Parameters:
  137. // bstrServiceAccountDomainIn
  138. // The name of the service account domain.
  139. //
  140. // GET Parameters:
  141. // pbstrServiceAccountDomainOut
  142. // Pointer to a BSTR in which to return the cluster service
  143. // account domain name for the newly created cluster.
  144. //
  145. // Return Values:
  146. // S_OK - The call succeeded.
  147. // Other HRESULTs - The call failed.
  148. //
  149. //////////////////////////////////////////////////////////////////////
  150. [ propput, helpstring( "property ServiceAccountDomain" ) ]
  151. HRESULT ServiceAccountDomain( [ in ] BSTR bstrServiceAccountDomainIn );
  152. [ propget, helpstring( "property ServiceAccountDomain" ) ]
  153. HRESULT ServiceAccountDomain( [ out, retval ] BSTR * pbstrServiceAccountDomainOut );
  154. //////////////////////////////////////////////////////////////////////
  155. //
  156. // PROPERTY
  157. // ServiceAccountPassword
  158. //
  159. // Description:
  160. // Set a default value for the password of the cluster service
  161. // account. There is no default value.
  162. //
  163. // PUT Parameters:
  164. // bstrPasswordIn
  165. // The password for the cluster service account.
  166. //
  167. // Return Values:
  168. // S_OK - The call succeeded.
  169. // Other HRESULTs - The call failed.
  170. //
  171. //////////////////////////////////////////////////////////////////////
  172. [ propput, helpstring( "property ServiceAccountPassword" ) ]
  173. HRESULT ServiceAccountPassword( [ in ] BSTR bstrPasswordIn );
  174. //////////////////////////////////////////////////////////////////////
  175. //
  176. // PROPERTY
  177. // ClusterIPAddress
  178. //
  179. // Description:
  180. // Set a default value for the cluster IP address. There is no
  181. // default value.
  182. //
  183. // Return the value set by the wizard.
  184. //
  185. // PUT Parameters:
  186. // bstrClusterIPAddressIn
  187. // The cluster IP address in dotted-quad string format
  188. // (e.g. 1.2.3.4).
  189. //
  190. // GET Parameters:
  191. // pbstrClusterIPAddressOut
  192. // Pointer to a BSTR in which to return the cluster IP
  193. // address used by the newly created cluster.
  194. //
  195. // Return Values:
  196. // S_OK - The call succeeded.
  197. // Other HRESULTs - The call failed.
  198. //
  199. //////////////////////////////////////////////////////////////////////
  200. [ propput, helpstring( "property ClusterIPAddress" ) ]
  201. HRESULT ClusterIPAddress( [ in ] BSTR bstrClusterIPAddressIn );
  202. [ propget, helpstring( "property ClusterIPAddress" ) ]
  203. HRESULT ClusterIPAddress( [ out, retval ] BSTR * pbstrClusterIPAddressOut );
  204. //////////////////////////////////////////////////////////////////////
  205. //
  206. // PROPERTY
  207. // ClusterIPSubnet
  208. //
  209. // Description:
  210. // Returns the cluster IP subnet mask set by the wizard.
  211. //
  212. // GET Parameters:
  213. // pbstrClusterIPSubnetOut
  214. // Pointer to a BSTR in which to return the IP subnet mask
  215. // for the cluster IP address used by the newly created
  216. // cluster.
  217. //
  218. // Return Values:
  219. // S_OK - The call succeeded.
  220. // Other HRESULTs - The call failed.
  221. //
  222. //////////////////////////////////////////////////////////////////////
  223. [ propget, helpstring( "ClusterIPSubnet" ) ]
  224. HRESULT ClusterIPSubnet( [ out, retval ] BSTR * pbstrClusterIPSubnetOut );
  225. //////////////////////////////////////////////////////////////////////
  226. //
  227. // PROPERTY
  228. // ClusterIPAddressNetwork
  229. //
  230. // Description:
  231. // Returns the network on which the cluster IP address is
  232. // offered on as set by the wizard.
  233. //
  234. // GET Parameters:
  235. // pbstrClusterNetworkNameOut
  236. // Pointer to a BSTR in which to return the network used by
  237. // the cluster IP address used by the newly created cluster.
  238. //
  239. // Return Values:
  240. // S_OK - The call succeeded.
  241. // Other HRESULTs - The call failed.
  242. //
  243. //////////////////////////////////////////////////////////////////////
  244. [ propget, helpstring( "property ClusterIPAddressNetwork" ) ]
  245. HRESULT ClusterIPAddressNetwork( [ out, retval ] BSTR * pbstrClusterNetworkNameOut );
  246. //////////////////////////////////////////////////////////////////////
  247. //
  248. // PROPERTY
  249. // FirstNodeInCluster
  250. //
  251. // Description:
  252. // Set a default value for the first node in the cluster. There
  253. // is no default value.
  254. //
  255. // Return the value set by the wizard.
  256. //
  257. // PUT Parameters:
  258. // bstrFirstNodeInClusterIn
  259. // The name of the first node in the cluster. This name
  260. // can be specified as a hostname, a Fully-Qualified Domain
  261. // Name (DNS FQDN), or an IP address.
  262. //
  263. // If this is not an FQDN, the local machine account domain
  264. // will be used. An example of a FQDN is hostname.domain.com.
  265. //
  266. // GET Parameters:
  267. // pbstrFirstNodeInClusterOut
  268. // Pointer to a BSTR in which to return the first node in
  269. // the cluster.
  270. //
  271. // Return Values:
  272. // S_OK - The call succeeded.
  273. // Other HRESULTs - The call failed.
  274. //
  275. //////////////////////////////////////////////////////////////////////
  276. [ propput, helpstring( "property SponsoringNode" ) ]
  277. HRESULT FirstNodeInCluster( [ in ] BSTR bstrFirstNodeInClusterIn );
  278. [ propget, helpstring( "property SponsoringNode" ) ]
  279. HRESULT FirstNodeInCluster( [ out, retval ] BSTR * pbstrFirstNodeInClusterOut );
  280. //////////////////////////////////////////////////////////////////////
  281. //
  282. // PROPERTY
  283. // MinimumConfiguration
  284. //
  285. // Description:
  286. // Set the minimum configuraiton mode of the wizard. This
  287. // property should only be set to VARIANT_TRUE for complex
  288. // configurations where you do not want the wizard to
  289. // automatically locate and include all the storage to be managed
  290. // by the cluster. Setting this property to VARIANT_FALSE is
  291. // appropriate for most installations and will result in a
  292. // completely configured server cluster. The default value is
  293. // VARIANT_FALSE.
  294. //
  295. // Return the value used by the wizard.
  296. //
  297. // PUT Parameters:
  298. // fMinConfigIn
  299. // VARIANT_TRUE - Perform a minimum configuration.
  300. // VARIANT_FALSE - Perform a full configuration.
  301. //
  302. // GET Parameters:
  303. // pfMinConfigOut
  304. // Returns the value used by the user.
  305. //
  306. // Return Values:
  307. // S_OK - The call succeeded.
  308. // Other HRESULTs - The call failed.
  309. //
  310. //////////////////////////////////////////////////////////////////////
  311. [ propput, helpstring( "property MinimumConfiguration" ) ]
  312. HRESULT MinimumConfiguration( [ in ] VARIANT_BOOL fMinConfigIn );
  313. [ propget, helpstring( "property MinimumConfiguration" ) ]
  314. HRESULT MinimumConfiguration( [ out, retval ] VARIANT_BOOL * pfMinConfigOut );
  315. //////////////////////////////////////////////////////////////////////
  316. //
  317. // STDMETHOD
  318. // ShowWizard
  319. //
  320. // Description:
  321. // Show the wizard starting at the first page.
  322. //
  323. // Parameters:
  324. // lParentWindowHandleIn
  325. // Handle to the parent window (default NULL). If not NULL,
  326. // the wizard will be positioned in the center of this
  327. // window. If NULL, it will be positioned in the center of
  328. // screen.
  329. //
  330. // pfCompletedOut
  331. // VARIANT_TRUE - Changes were committed.
  332. // VARIANT_FALSE - Wizard was cancelled.
  333. //
  334. // Return Values:
  335. // S_OK - The call succeeded.
  336. // Other HRESULTs - The call failed.
  337. //
  338. //////////////////////////////////////////////////////////////////////
  339. [ helpstring( "method ShowWizard" ) ]
  340. HRESULT ShowWizard(
  341. [ in, defaultvalue( 0 ) ] long lParentWindowHandleIn
  342. , [ out, retval ] VARIANT_BOOL * pfCompletedOut
  343. );
  344. }; //*** interface IClusCfgCreateClusterWizard
  345. //////////////////////////////////////////////////////////////////////////
  346. //
  347. // interface IClusCfgAddNodesWizard
  348. //
  349. // Description:
  350. // The IClusCfgAddNodesWizard interface provides the functions
  351. // required to launch the Add Nodes To Cluster Wizard.
  352. //
  353. //////////////////////////////////////////////////////////////////////////
  354. [
  355. object,
  356. uuid( 9da133cb-3b08-4c30-967e-56d96047f10c ),
  357. dual,
  358. helpstring( "IClusCfgAddNodesWizard interface" ),
  359. pointer_default( unique )
  360. ]
  361. interface IClusCfgAddNodesWizard : IDispatch
  362. {
  363. //////////////////////////////////////////////////////////////////////
  364. //
  365. // PROPERTY
  366. // ClusterName
  367. //
  368. // Description:
  369. // Set the name of the cluster to add nodes to. If this property
  370. // is set, the user will not be asked for the cluster name in
  371. // the wizard.
  372. //
  373. // Return the cluster name for the cluster to which nodes were
  374. // added.
  375. //
  376. // PUT Parameters:
  377. // bstrClusterNameIn
  378. // The name of the cluster. This name can be a cluster
  379. // hostname label, a Fully-Qualified Domain Name (DNS FQDN)
  380. // for a cluster, or an IP address.
  381. //
  382. // If this is not an FQDN, the local machine account domain
  383. // will be used. An example of a FQDN is hostname.domain.com.
  384. //
  385. // GET Parameters:
  386. // pbstrClusterNameOut
  387. // Pointer to a BSTR in which to return the cluster name
  388. // for the cluster to which nodes were added.
  389. //
  390. // Return Values:
  391. // S_OK - The call succeeded.
  392. // Other HRESULTs - The call failed.
  393. //
  394. //////////////////////////////////////////////////////////////////////
  395. [ propput, helpstring( "property ClusterName" ) ]
  396. HRESULT ClusterName( [ in ] BSTR bstrClusterNameIn );
  397. [ propget, helpstring( "property ClusterName" ) ]
  398. HRESULT ClusterName( [ out, retval ] BSTR * pbstrClusterNameOut );
  399. //////////////////////////////////////////////////////////////////////
  400. //
  401. // PROPERTY
  402. // ServiceAccountPassword
  403. //
  404. // Description:
  405. // Set a default value for the password of the cluster service
  406. // account. There is no default value.
  407. //
  408. // PUT Parameters:
  409. // bstrPasswordIn
  410. // The password for the cluster service account.
  411. //
  412. // Return Values:
  413. // S_OK - The call succeeded.
  414. // Other HRESULTs - The call failed.
  415. //
  416. //////////////////////////////////////////////////////////////////////
  417. [ propput, helpstring( "property ServiceAccountPassword" ) ]
  418. HRESULT ServiceAccountPassword( [ in ] BSTR bstrPasswordIn );
  419. //////////////////////////////////////////////////////////////////////
  420. //
  421. // PROPERTY
  422. // MinimumConfiguration
  423. //
  424. // Description:
  425. // Set the minimum configuraiton mode of the wizard. This
  426. // property should only be set to VARIANT_TRUE for complex
  427. // configurations where you do not want the wizard to
  428. // automatically locate and include all the storage to be managed
  429. // by the cluster. Setting this property to VARIANT_FALSE is
  430. // appropriate for most installations and will result in a
  431. // completely configured server cluster. The default value is
  432. // VARIANT_FALSE.
  433. //
  434. // Return the value used by the wizard.
  435. //
  436. // PUT Parameters:
  437. // fMinConfigIn
  438. // VARIANT_TRUE - Perform a minimum configuration.
  439. // VARIANT_FALSE - Perform a full configuration.
  440. //
  441. // GET Parameters:
  442. // pfMinConfigOut
  443. // Returns the value used by the user.
  444. //
  445. // Return Values:
  446. // S_OK - The call succeeded.
  447. // Other HRESULTs - The call failed.
  448. //
  449. //////////////////////////////////////////////////////////////////////
  450. [ propput, helpstring( "property MinimumConfiguration" ) ]
  451. HRESULT MinimumConfiguration( [ in ] VARIANT_BOOL fMinConfigIn );
  452. [ propget, helpstring( "property MinimumConfiguration" ) ]
  453. HRESULT MinimumConfiguration( [ out, retval ] VARIANT_BOOL * pfMinConfigOut );
  454. //////////////////////////////////////////////////////////////////////
  455. //
  456. // STDMETHOD
  457. // AddNodeToList
  458. //
  459. // Description:
  460. // Adds a computer to the list of nodes to add to a cluster.
  461. //
  462. // Parameters:
  463. // bstrNodeNameIn
  464. // The hostname label, Fully-Qualified Domain Name (DNS
  465. // FQDN), or IP address of a computer to add to the cluster.
  466. //
  467. // If this is not an FQDN, the local machine account domain
  468. // will be used. An example of a FQDN is hostname.domain.com.
  469. //
  470. // Return Values:
  471. // S_OK - The call succeeded.
  472. // Other HRESULTs - The call failed.
  473. //
  474. //////////////////////////////////////////////////////////////////////
  475. [ helpstring( "method AddNodeToList" ) ]
  476. HRESULT AddNodeToList( [ in ] BSTR bstrNodeNameIn );
  477. //////////////////////////////////////////////////////////////////////
  478. //
  479. // STDMETHOD
  480. // RemoveNodeFromList
  481. //
  482. // Description:
  483. // Removes a computer from the list of nodes to add to a cluster.
  484. //
  485. // Parameters:
  486. // bstrNodeNameIn
  487. // The FQDN hostname of the computer to be removed from the
  488. // node list. An example of a FQDN is hostname.domain.com.
  489. //
  490. // Return Values:
  491. // S_OK - The call succeeded.
  492. // Other HRESULTs - The call failed.
  493. //
  494. //////////////////////////////////////////////////////////////////////
  495. [ helpstring( "method RemoveNodeFromList" ) ]
  496. HRESULT RemoveNodeFromList( [ in ] BSTR bstrNodeNameIn );
  497. //////////////////////////////////////////////////////////////////////
  498. //
  499. // STDMETHOD
  500. // ClearNodeList
  501. //
  502. // Description:
  503. // Removes all computers from the list of nodes to add to a
  504. // cluster.
  505. //
  506. // Parameters:
  507. // None.
  508. //
  509. // Return Values:
  510. // S_OK - The call succeeded.
  511. // Other HRESULTs - The call failed.
  512. //
  513. //////////////////////////////////////////////////////////////////////
  514. [ helpstring( "method ClearNodeList" ) ]
  515. HRESULT ClearNodeList( void );
  516. //////////////////////////////////////////////////////////////////////
  517. //
  518. // STDMETHOD
  519. // ShowWizard
  520. //
  521. // Description:
  522. // Show the wizard starting at the first page.
  523. //
  524. // Parameters:
  525. // lParentWindowHandleIn
  526. // Handle to the parent window (default NULL). If not NULL,
  527. // the wizard will be positioned in the center of this
  528. // window. If NULL, it will be positioned in the center of
  529. // screen.
  530. //
  531. // pfCompletedOut
  532. // VARIANT_TRUE - Changes were committed.
  533. // VARIANT_FALSE - Wizard was cancelled.
  534. //
  535. // Return Values:
  536. // S_OK - The call succeeded.
  537. // Other HRESULTs - The call failed.
  538. //
  539. //////////////////////////////////////////////////////////////////////
  540. HRESULT ShowWizard(
  541. [ in, defaultvalue( 0 ) ] long lParentWindowHandleIn
  542. , [ out, retval ] VARIANT_BOOL * pfCompletedOut
  543. );
  544. }; //*** interface IClusCfgAddNodesWizard
  545. //////////////////////////////////////////////////////////////////////////
  546. // Component Definitions
  547. //////////////////////////////////////////////////////////////////////////
  548. //////////////////////////////////////////////////////////////////////////
  549. //++
  550. //
  551. // coclass ClusCfgCreateClusterWizard
  552. //
  553. // Description:
  554. // The ClusCfgCreateClusterWizard coclass implements the interface
  555. // required to launch the Create Server Cluster Wizard.
  556. //--
  557. //////////////////////////////////////////////////////////////////////////
  558. [
  559. uuid( b929818e-f5b0-44dc-8a00-1b5f5f5aa1f0 ),
  560. helpstring( "ClusCfgCreateClusterWizard Class" )
  561. ]
  562. coclass ClusCfgCreateClusterWizard
  563. {
  564. [ default ] interface IClusCfgCreateClusterWizard;
  565. };
  566. //////////////////////////////////////////////////////////////////////////
  567. //++
  568. //
  569. // coclass ClusCfgAddNodesWizard
  570. //
  571. // Description:
  572. // The ClusCfgAddNodesWizardcoclass implements the interface required
  573. // to launch the Add Nodes To Cluster Wizard.
  574. //--
  575. //////////////////////////////////////////////////////////////////////////
  576. [
  577. uuid( bb8d141e-c00a-469f-bc5c-ecd814f0bd74 ),
  578. helpstring( "ClusCfgAddNodesWizard Class" )
  579. ]
  580. coclass ClusCfgAddNodesWizard
  581. {
  582. [ default ] interface IClusCfgAddNodesWizard;
  583. };
  584. }; //*** library ClusCfgWizard