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.

2267 lines
61 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 2000-2002 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // ClusCfgClient.idl
  7. //
  8. // Description:
  9. // This file is the IDL file for the middler tier framework for the
  10. // Cluster Configuration Wizard.
  11. //
  12. //////////////////////////////////////////////////////////////////////////////
  13. // Comments for generated files
  14. cpp_quote( "//////////////////////////////////////////////////////////////////////////////" )
  15. cpp_quote( "//" )
  16. cpp_quote( "// Copyright (c) 2000 Microsoft Corporation" )
  17. cpp_quote( "//" )
  18. cpp_quote( "// Remarks:" )
  19. cpp_quote( "// Generated file. See file ClusCfgClient.idl for more details." )
  20. cpp_quote( "//" )
  21. cpp_quote( "//////////////////////////////////////////////////////////////////////////////" )
  22. //////////////////////////////////////////////////////////////////////////////
  23. // Imported Files
  24. //////////////////////////////////////////////////////////////////////////////
  25. import "unknwn.idl";
  26. import "objidl.idl";
  27. import "ocidl.idl";
  28. import "ClusCfgServer.idl";
  29. //////////////////////////////////////////////////////////////////////////////
  30. // Forward Declarations
  31. //////////////////////////////////////////////////////////////////////////////
  32. interface INotifyUI;
  33. interface IObjectManager;
  34. interface INotificationManager;
  35. interface ITaskManager;
  36. interface IDoTask;
  37. interface ITaskGetDomains;
  38. interface ITaskGetDomainsCallback;
  39. interface ITaskAnalyzeCluster;
  40. interface ITaskCommitClusterChanges;
  41. interface ITaskVerifyIPAddress;
  42. interface IStandardInfo;
  43. interface IConnectionManager;
  44. interface IConnectionInfo;
  45. interface IGatherData;
  46. interface IConfigurationConnection;
  47. interface ITaskGatherNodeInfo;
  48. interface ITaskGatherInformation;
  49. interface IEnumNodes;
  50. interface ITaskCompareAndPushInformation;
  51. interface ITaskGatherClusterInfo;
  52. interface IEnumCookies;
  53. interface ITaskPollingCallback;
  54. interface ILogManager;
  55. interface ILogger;
  56. //////////////////////////////////////////////////////////////////////////////
  57. // Type Definitions
  58. //////////////////////////////////////////////////////////////////////////////
  59. typedef DWORD OBJECTCOOKIE;
  60. //////////////////////////////////////////////////////////////////////////////
  61. // Interface Definitions
  62. //////////////////////////////////////////////////////////////////////////////
  63. //****************************************************************************
  64. //++
  65. //
  66. // interface INotifyUI
  67. //
  68. // Description:
  69. // TODO: gpease 10-MAR-2000
  70. // Write a description.
  71. //
  72. //--
  73. //****************************************************************************
  74. [
  75. object,
  76. uuid( E5E8D401-1A37-4fbf-880C-826CC89516FD ),
  77. pointer_default( unique )
  78. ]
  79. interface INotifyUI : IUnknown
  80. {
  81. //////////////////////////////////////////////////////////////////////////
  82. //
  83. // STDMETHOD
  84. // INotifyUI::ObjectChanged(
  85. // OBJECTCOOKIE cookieIn
  86. // )
  87. //
  88. // Description:
  89. // Notifies the UI layer that the object "cookieIn"has changed. The
  90. // object implementing this interface must marshall the data.
  91. //
  92. // Arguments:
  93. // cookieIn
  94. // Data Manager cookie to the object that changed.
  95. //
  96. // Return Value:
  97. // S_OK
  98. // Success.
  99. //
  100. // other HRESULTs.
  101. // The call failed.
  102. //
  103. //////////////////////////////////////////////////////////////////////////
  104. HRESULT
  105. ObjectChanged(
  106. [ in ] OBJECTCOOKIE cookieIn
  107. );
  108. }; //*** interace INotifyUI
  109. //****************************************************************************
  110. //++
  111. //
  112. // interface IDoTask
  113. //
  114. // Description:
  115. // TODO: gpease 15-APR-2000
  116. // Write a description.
  117. //
  118. //--
  119. //****************************************************************************
  120. [
  121. object,
  122. uuid( 0230C9F8-EE7F-4307-98DB-726EBCAE55D6 ),
  123. pointer_default( unique )
  124. ]
  125. interface
  126. IDoTask : IUnknown
  127. {
  128. //////////////////////////////////////////////////////////////////////////
  129. //
  130. // STDMETHOD
  131. // IDoTask::BeginTask( void )
  132. //
  133. // Description:
  134. // Entry method for a task object.
  135. //
  136. // Arguments:
  137. // None. You should describe a private interface to communicate
  138. // parameters to your task.
  139. //
  140. // Return Type:
  141. // S_OK
  142. // Success.
  143. //
  144. // E_OUTOFMEMORY
  145. // Out of memory.
  146. //
  147. // other HRESULTs.
  148. // The call failed.
  149. //
  150. //////////////////////////////////////////////////////////////////////////
  151. HRESULT
  152. BeginTask( void );
  153. //////////////////////////////////////////////////////////////////////////
  154. //
  155. // STDMETHOD
  156. // IDoTask::StopTask( void )
  157. //
  158. // Description:
  159. // Entry method to stop/cancel and running task.
  160. //
  161. // Arguments:
  162. // None.
  163. //
  164. // Return Type:
  165. // S_OK
  166. // Success.
  167. //
  168. // E_OUTOFMEMORY
  169. // Out of memory.
  170. //
  171. // other HRESULTs.
  172. // The call failed.
  173. //
  174. //////////////////////////////////////////////////////////////////////////
  175. HRESULT
  176. StopTask( void );
  177. }; //*** interface IDoTask
  178. //****************************************************************************
  179. //++
  180. //
  181. // interface INotificationManager
  182. //
  183. // Description:
  184. // TODO: gpease 15-APR-2000
  185. // Write a description.
  186. //
  187. //--
  188. //****************************************************************************
  189. [
  190. object,
  191. uuid( 95531501-8782-4845-901D-312F36BA6C6E ),
  192. pointer_default( unique )
  193. ]
  194. interface
  195. INotificationManager : IUnknown
  196. {
  197. //////////////////////////////////////////////////////////////////////////
  198. //
  199. // STDMETHOD
  200. // INotificationManager::AddConnectionPoint(
  201. // REFIID riidIn
  202. // , IConnectionPoint * pcpIn
  203. // )
  204. //
  205. // Description:
  206. // Adds a connection point for the notification manager to manage
  207. // for a particular interface. There can only be one registration
  208. // for a particular interface.
  209. //
  210. // Arguments:
  211. // riidIn
  212. // The IID of the interface.
  213. //
  214. // pcpIn
  215. // Interface to the connection point.
  216. //
  217. // Return Type:
  218. // S_OK
  219. // Success.
  220. //
  221. // CO_E_OBJISREG
  222. // The interface for the connection point is already registered.
  223. //
  224. // other HRESULTs.
  225. // The call failed.
  226. //
  227. //////////////////////////////////////////////////////////////////////////
  228. HRESULT
  229. AddConnectionPoint(
  230. [ in ] REFIID riidIn
  231. , [ in ] IConnectionPoint * pcpIn
  232. );
  233. }; //*** interface INotificationManager
  234. //****************************************************************************
  235. //++
  236. //
  237. // interface IConnectionManager
  238. //
  239. // Description:
  240. // TODO: gpease 15-APR-2000
  241. // Write a description.
  242. //
  243. //--
  244. //****************************************************************************
  245. [
  246. object,
  247. uuid( C0017768-1BF3-4352-8D6C-3A8C1D0FB477 ),
  248. pointer_default( unique )
  249. ]
  250. interface
  251. IConnectionManager : IUnknown
  252. {
  253. //////////////////////////////////////////////////////////////////////////
  254. //
  255. // STDMETHOD
  256. // GetConnectionToObject(
  257. // OBJECTCOOKIE cookieIn
  258. // , IUnknown ** ppunkOut
  259. // )
  260. //
  261. // Description:
  262. // Establishes a connection to the object referenced by "cookieIn."
  263. //
  264. // Arguments:
  265. // cookieIn
  266. // An object reference cookie from the Object Manager.
  267. //
  268. // ppunkOut
  269. // Interface pointer to the object.
  270. //
  271. // Return Values:
  272. // S_OK
  273. // Success.
  274. //
  275. // other HRESULTs.
  276. // The call failed.
  277. //
  278. //////////////////////////////////////////////////////////////////////////
  279. HRESULT
  280. GetConnectionToObject(
  281. [ in ] OBJECTCOOKIE cookieIn
  282. , [ out ] IUnknown ** ppunkOut
  283. );
  284. }; //*** interface IConnectionManager
  285. //****************************************************************************
  286. //++
  287. //
  288. // interface ITaskManager
  289. //
  290. // Description:
  291. // TODO: gpease 15-APR-2000
  292. // Write a description.
  293. //
  294. //--
  295. //****************************************************************************
  296. [
  297. object,
  298. uuid( 16116694-DFC5-470b-AC12-46FBB01CEF10 ),
  299. pointer_default( unique )
  300. ]
  301. interface
  302. ITaskManager : IUnknown
  303. {
  304. //////////////////////////////////////////////////////////////////////////
  305. //
  306. // STDMETHOD
  307. // ITaskManager::CreateTask(
  308. // REFIID clsidIn
  309. // , IUnknown ** ppunkOut
  310. // )
  311. //
  312. // Description:
  313. // Submits a task to the Action Manager.
  314. //
  315. // Arguments:
  316. // pTask
  317. // Task to submit.
  318. //
  319. // Return Type:
  320. // S_OK
  321. // Success.
  322. //
  323. // E_OUTOFMEMORY
  324. // Out of memory.
  325. //
  326. // other HRESULTs.
  327. // The call fails.
  328. //
  329. //////////////////////////////////////////////////////////////////////////
  330. HRESULT
  331. CreateTask(
  332. [ in ] REFIID clsidIn
  333. , [ out ] IUnknown ** ppunkOut
  334. );
  335. //////////////////////////////////////////////////////////////////////////
  336. //
  337. // STDMETHOD
  338. // ITaskManager::SubmitTask(
  339. // IDoTask * pTask
  340. // )
  341. //
  342. // Description:
  343. // Submits a task to the Action Manager.
  344. //
  345. // Arguments:
  346. // pTask
  347. // Task to submit.
  348. //
  349. // Return Type:
  350. // S_OK
  351. // Success.
  352. //
  353. // E_OUTOFMEMORY
  354. // Out of memory.
  355. //
  356. // other HRESULTs.
  357. // The call fails.
  358. //
  359. //////////////////////////////////////////////////////////////////////////
  360. HRESULT
  361. SubmitTask(
  362. [ in ] IDoTask * pTask
  363. );
  364. }; //*** interface ITaskManager
  365. //****************************************************************************
  366. //++
  367. //
  368. // interface ITaskManager
  369. //
  370. // Description:
  371. // TODO: gpease 15-APR-2000
  372. // Write a description.
  373. //
  374. //--
  375. //****************************************************************************
  376. [
  377. object,
  378. uuid( D51351DF-6394-4236-9783-65ED05631068 ),
  379. pointer_default( unique )
  380. ]
  381. interface
  382. IObjectManager : IUnknown
  383. {
  384. //////////////////////////////////////////////////////////////////////////
  385. //
  386. // STDMETHOD
  387. // IObjectManager::FindObject(
  388. // REFCLSID rclsidTypeIn
  389. // , OBJECTCOOKIE cookieParentIn
  390. // , LPCWSTR pcszNameIn
  391. // , REFCLSID rclsidFormatIn
  392. // , OBJECTCOOKIE * pcookieOut
  393. // , LPUNKNOWN * ppunkOut
  394. // )
  395. //
  396. // Description:
  397. // Looks up and retrieves information about an object that has the
  398. // type "rclsidTypeIn" and has the name "pcszNameIn". It will return
  399. // an object that contains data in the format specified by
  400. // "rclsidFormatIn". It will also return "pcookieOut" that can be
  401. // used to identify the object in future requests.
  402. //
  403. // Arguments:
  404. // rclsidTypeIn
  405. // The type of the object to find.
  406. //
  407. // cookieParentIn
  408. // Cookie of the cluster. NULL looking for a cluster.
  409. //
  410. // pcszNameIn
  411. // The name of the object to find.
  412. //
  413. // rclsidFormatIn
  414. // The format of the data to retrieve about the object.
  415. //
  416. // pcookieOut
  417. // A value that represents the object.
  418. //
  419. // ppunkOut
  420. // The requested data. NULL in indicates no data returned.
  421. //
  422. // Return Values:
  423. // S_OK
  424. // Success.
  425. //
  426. // S_PENDING
  427. // Data being retrieved; ask again later using the cookie.
  428. //
  429. // other HRESULTs.
  430. // The call failed.
  431. //
  432. //////////////////////////////////////////////////////////////////////////
  433. HRESULT
  434. FindObject(
  435. [ in ] REFCLSID rclsidTypeIn
  436. , [ in ] OBJECTCOOKIE cookieClusterIn
  437. , [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn
  438. , [ in ] REFCLSID rclsidFormatIn
  439. , [ out ] OBJECTCOOKIE * pcookieOut
  440. , [ out, iid_is( rclsidFormatIn ) ] LPUNKNOWN * ppunkOut
  441. );
  442. //////////////////////////////////////////////////////////////////////////
  443. //
  444. // STDMETHOD
  445. // IObjectManager::GetObject(
  446. // REFCLSID rclsidFormatIn
  447. // , OBJECTCOOKIE cookieIn
  448. // , LPUNKNOWN * ppunkOut
  449. // )
  450. //
  451. // Description:
  452. // Lookups and retrieves information about the object using "cookieIn"
  453. // as a reference. It will return an object that contains data in the
  454. // format specified by "rclsidFormatIn".
  455. //
  456. // Arguments:
  457. // rclsidFormatIn
  458. // The format of the data to retrieve about the object.
  459. //
  460. // pcookieIn
  461. // The value of the object to retrieve data from.
  462. //
  463. // ppunkOut
  464. // The requested data. NULL in indicates no data returned.
  465. //
  466. // Return Values:
  467. // S_OK
  468. // Success.
  469. //
  470. // S_PENDING
  471. // Data being retrieved; ask again later using the cookie.
  472. //
  473. // other HRESULTs.
  474. // The call failed.
  475. //
  476. //////////////////////////////////////////////////////////////////////////
  477. HRESULT
  478. GetObject(
  479. [ in ] REFCLSID rclsidFormatIn
  480. , [ in ] OBJECTCOOKIE cookieIn
  481. , [ out, iid_is( rclsidFormatIn ) ] LPUNKNOWN * ppunkOut
  482. );
  483. //////////////////////////////////////////////////////////////////////////
  484. //
  485. // STDMETHOD
  486. // IObjectManager::RemoveObject(
  487. // OBJECTCOOKIE cookieIn
  488. // )
  489. //
  490. // Description:
  491. // Removes an object from the object cache and requests deletion all
  492. // existing data format objects. This will also remove all children
  493. // of the object (if any).
  494. //
  495. // Arguments:
  496. // cookieIn
  497. // The cookie of the object to be removed.
  498. //
  499. // Return Values:
  500. // S_OK
  501. // Success.
  502. //
  503. // other HRESULTs.
  504. // The call failed.
  505. //
  506. //////////////////////////////////////////////////////////////////////////
  507. HRESULT
  508. RemoveObject(
  509. [ in ] OBJECTCOOKIE cookieIn
  510. );
  511. //////////////////////////////////////////////////////////////////////////
  512. //
  513. // STDMETHOD
  514. // IObjectManager::SetObjectStatus(
  515. // OBJECTCOOKIE cookieIn
  516. // , HRESULT hrIn
  517. // )
  518. //
  519. // Description:
  520. // Sets the status on an object.
  521. //
  522. // Arguments:
  523. // cookieIn
  524. // The cookie of the object.
  525. //
  526. // hrIn
  527. // Status to set.
  528. //
  529. // Return Values:
  530. // S_OK
  531. // Success.
  532. //
  533. // other HRESULTs.
  534. // The call failed.
  535. //
  536. //////////////////////////////////////////////////////////////////////////
  537. HRESULT
  538. SetObjectStatus(
  539. [ in ] OBJECTCOOKIE cookieIn
  540. , [ in ] HRESULT hrIn
  541. );
  542. }; //*** interface IObjectManager
  543. //
  544. // Task Interfaces
  545. //
  546. //****************************************************************************
  547. //++
  548. //
  549. // interface ITaskGetDomains
  550. //
  551. // Description:
  552. // TODO: gpease 15-MAY-2000
  553. // Write a description.
  554. //
  555. //--
  556. //****************************************************************************
  557. [
  558. object,
  559. uuid( DFCB4ACD-C4DB-4db4-8EBB-1DD07A9D5B82 ),
  560. pointer_default( unique )
  561. ]
  562. interface
  563. ITaskGetDomains : IDoTask
  564. {
  565. //////////////////////////////////////////////////////////////////////////
  566. //
  567. // STDMETHOD
  568. // ITaskGetDomains::SetCallback(
  569. // ITaskGetDomainsCallback * pResultsCallbackIn
  570. // )
  571. //
  572. // Description:
  573. // Stores the ITaskGetDomainsCallback that will be used to send
  574. // status and names for this task.
  575. //
  576. // Arguments:
  577. // pResultsCallbackIn
  578. // The ITaskGetDomainsCallback interface of the object that will
  579. // receive the status information as well as the names that are
  580. // enumerated.
  581. //
  582. // Return Type:
  583. // S_OK
  584. // Success.
  585. //
  586. // other HRESULTs.
  587. // The call failed.
  588. //
  589. //////////////////////////////////////////////////////////////////////////
  590. HRESULT
  591. SetCallback(
  592. [ in ] ITaskGetDomainsCallback * pResultsCallbackIn
  593. );
  594. }; // *** interface ITaskGetDomains
  595. //****************************************************************************
  596. //++
  597. //
  598. // interface ITaskGetDomainsCallback
  599. //
  600. // Description:
  601. // TODO: gpease 15-MAY-2000
  602. // Write a description.
  603. //
  604. //--
  605. //****************************************************************************
  606. [
  607. object,
  608. uuid( 85402E44-6834-41df-8590-01827D124E1B ),
  609. pointer_default( unique )
  610. ]
  611. interface
  612. ITaskGetDomainsCallback : IUnknown
  613. {
  614. //////////////////////////////////////////////////////////////////////////
  615. //
  616. // STDMETHOD
  617. // ITaskGetDomainsCallback::ReceiveDomainResult(
  618. // HRESULT hrIn
  619. // )
  620. //
  621. // Description:
  622. // Callback used to tell the invoker of TaskGetDomains the results
  623. // of the enumeration. This will be only called if there is a
  624. // problem.
  625. //
  626. // Arguments:
  627. // hrIn
  628. // The HRESULT result code of the login attempt.
  629. //
  630. // Return Type:
  631. // S_OK
  632. // Success.
  633. //
  634. // other HRESULTs.
  635. // The call failed - this will abort the enumeration.
  636. //
  637. //////////////////////////////////////////////////////////////////////////
  638. HRESULT
  639. ReceiveDomainResult( [ in ] HRESULT hrIn );
  640. //////////////////////////////////////////////////////////////////////////
  641. //
  642. // STDMETHOD
  643. // ITaskGetDomainsCallback::ReceiveDomainName(
  644. // LPCWSTR pcszDomainIn
  645. // )
  646. //
  647. // Description:
  648. // This method will be called by the TaskGetDomains to send an
  649. // enumerated name back to the UI layer.
  650. //
  651. // Arguments:
  652. // pcszDomainIn
  653. // The next enumerated domain name.
  654. //
  655. // Return Values:
  656. // S_OK
  657. // Success.
  658. //
  659. // other HRESULTs
  660. // The call failed - this will abort the enumeration.
  661. //
  662. //////////////////////////////////////////////////////////////////////////
  663. HRESULT
  664. ReceiveDomainName(
  665. [ in, pointer_default( unique ) ] LPCWSTR pcszDomainIn
  666. );
  667. }; //*** interface ITaskGetDomainsCallback
  668. //****************************************************************************
  669. //++
  670. //
  671. // interface ITaskAnalyzeCluster
  672. //
  673. // Description:
  674. // TODO: gpease 18-MAY-2000
  675. // Write a description.
  676. //
  677. //--
  678. //****************************************************************************
  679. [
  680. object,
  681. uuid( 795737A1-E13A-45eb-8DFD-8185C4B7AD4E ),
  682. pointer_default( unique )
  683. ]
  684. interface
  685. ITaskAnalyzeCluster : IDoTask
  686. {
  687. //////////////////////////////////////////////////////////////////////////
  688. //
  689. // STDMETHOD
  690. // ITaskAnalyzeCluster::SetJoiningMode( void )
  691. //
  692. // Description:
  693. // Changes this task to joining mode.
  694. //
  695. // Arguments:
  696. // None.
  697. //
  698. // Return Type:
  699. // S_OK
  700. // Success.
  701. //
  702. // other HRESULTs.
  703. // The call failed.
  704. //
  705. //////////////////////////////////////////////////////////////////////////
  706. HRESULT
  707. SetJoiningMode( void );
  708. //////////////////////////////////////////////////////////////////////////
  709. //
  710. // STDMETHOD
  711. // ITaskAnalyzeCluster::SetCookie(
  712. // OBJECTCOOKIE cookieIn
  713. // )
  714. //
  715. // Description:
  716. // Stores the cookie that will be used to send the notification that the
  717. // task has been completed.
  718. //
  719. // Arguments:
  720. // cookieIn
  721. // A cookie that will be sent as notification that the task is done.
  722. //
  723. // Return Type:
  724. // S_OK
  725. // Success.
  726. //
  727. // E_OUTOFMEMORY
  728. // Out of memory.
  729. //
  730. // other HRESULTs.
  731. // The call failed.
  732. //
  733. //////////////////////////////////////////////////////////////////////////
  734. HRESULT
  735. SetCookie(
  736. [ in ] OBJECTCOOKIE cookieIn
  737. );
  738. //////////////////////////////////////////////////////////////////////////
  739. //
  740. // STDMETHOD
  741. // ITaskAnalyzeCluster::SetClusterCookie(
  742. // OBJECTCOOKIE cookieClusterIn
  743. // )
  744. //
  745. // Description:
  746. // Stores the cookie of the cluster configuration object.
  747. //
  748. // Arguments:
  749. // cookieIn
  750. // The cookie of the cluster to configure.
  751. //
  752. // Return Type:
  753. // S_OK
  754. // Success.
  755. //
  756. // E_OUTOFMEMORY
  757. // Out of memory.
  758. //
  759. // other HRESULTs.
  760. // The call failed.
  761. //
  762. //////////////////////////////////////////////////////////////////////////
  763. HRESULT
  764. SetClusterCookie(
  765. [ in ] OBJECTCOOKIE cookieClusterIn
  766. );
  767. }; //*** interface ITaskAnalyzeCluster
  768. //****************************************************************************
  769. //++
  770. //
  771. // interface ITaskCommitClusterChanges
  772. //
  773. // Description:
  774. // TODO: gpease 18-MAY-2000
  775. // Write a description.
  776. //
  777. //--
  778. //****************************************************************************
  779. [
  780. object,
  781. uuid( 1BF12DDE-F8B0-49b1-A458-6747DB788A47 ),
  782. pointer_default( unique )
  783. ]
  784. interface
  785. ITaskCommitClusterChanges : IDoTask
  786. {
  787. //////////////////////////////////////////////////////////////////////////
  788. //
  789. // STDMETHOD
  790. // ITaskCommitClusterChanges::SetCookie(
  791. // OBJECTCOOKIE cookieIn
  792. // )
  793. //
  794. // Description:
  795. // Stores the cookie that will be used to send the notification that the
  796. // task has been completed.
  797. //
  798. // Arguments:
  799. // cookieIn
  800. // A cookie that will be sent as notification that the task is done.
  801. //
  802. // Return Type:
  803. // S_OK
  804. // Success.
  805. //
  806. // E_OUTOFMEMORY
  807. // Out of memory.
  808. //
  809. // other HRESULTs.
  810. // The call failed.
  811. //
  812. //////////////////////////////////////////////////////////////////////////
  813. HRESULT
  814. SetCookie(
  815. [ in ] OBJECTCOOKIE cookieIn
  816. );
  817. //////////////////////////////////////////////////////////////////////////
  818. //
  819. // STDMETHOD
  820. // ITaskCommitClusterChanges::SetClusterCookie(
  821. // OBJECTCOOKIE cookieClusterIn
  822. // )
  823. //
  824. // Description:
  825. // Stores the cookie of the cluster configuration object.
  826. //
  827. // Arguments:
  828. // cookieIn
  829. // The cookie of the cluster to configure.
  830. //
  831. // Return Type:
  832. // S_OK
  833. // Success.
  834. //
  835. // E_OUTOFMEMORY
  836. // Out of memory.
  837. //
  838. // other HRESULTs.
  839. // The call failed.
  840. //
  841. //////////////////////////////////////////////////////////////////////////
  842. HRESULT
  843. SetClusterCookie(
  844. [ in ] OBJECTCOOKIE cookieClusterIn
  845. );
  846. //////////////////////////////////////////////////////////////////////////
  847. //
  848. // STDMETHOD
  849. // ITaskCommitClusterChanges::SetJoining( void )
  850. //
  851. // Description:
  852. // Sets the task into joining mode.
  853. //
  854. // Arguments:
  855. // None.
  856. //
  857. // Return Type:
  858. // S_OK
  859. // Success.
  860. //
  861. // other HRESULTs.
  862. // The call failed.
  863. //
  864. //////////////////////////////////////////////////////////////////////////
  865. HRESULT
  866. SetJoining( void );
  867. }; //*** interface ITaskCommitClusterChanges
  868. //****************************************************************************
  869. //++
  870. //
  871. // interface IStandardInfo
  872. //
  873. // Description:
  874. // TODO: gpease 18-MAY-2000
  875. // Write a description.
  876. //
  877. //--
  878. //****************************************************************************
  879. [
  880. object,
  881. uuid( F1D9C1A5-9589-40dd-B63D-9BB0B38A1022 ),
  882. pointer_default( unique )
  883. ]
  884. interface
  885. IStandardInfo : IUnknown
  886. {
  887. //////////////////////////////////////////////////////////////////////////
  888. //
  889. // STDMETHOD
  890. // IStandardInfo::GetType(
  891. // CLSID * pclsidTypeOut
  892. // )
  893. //
  894. // Description:
  895. // Retrieves the type of object.
  896. //
  897. // Arguments:
  898. // pclsidTypeOut
  899. // The CLSID representing the type.
  900. //
  901. // Return Type:
  902. // S_OK
  903. // Success.
  904. //
  905. // other HRESULTs.
  906. // The call failed.
  907. //
  908. //////////////////////////////////////////////////////////////////////////
  909. HRESULT
  910. GetType(
  911. [ out ] CLSID * pclsidTypeOut
  912. );
  913. //////////////////////////////////////////////////////////////////////////
  914. //
  915. // STDMETHOD
  916. // IStandardInfo::GetName(
  917. // BSTR * pbstrNameOut
  918. // )
  919. //
  920. // Description:
  921. // Retrieve the object's name.
  922. //
  923. // Arguments:
  924. // pbstrNameOut
  925. // The name of the object.
  926. //
  927. // Return Type:
  928. // S_OK
  929. // Success.
  930. //
  931. // other HRESULTs.
  932. // The call failed.
  933. //
  934. //////////////////////////////////////////////////////////////////////////
  935. HRESULT
  936. GetName(
  937. [ out ] BSTR * pbstrNameOut
  938. );
  939. //////////////////////////////////////////////////////////////////////////
  940. //
  941. // STDMETHOD
  942. // IStandardInfo::SetName(
  943. // LPCWSTR pcszNameIn
  944. // )
  945. //
  946. // Description:
  947. // Sets the object's name.
  948. //
  949. // Arguments:
  950. // ppcszNameIn
  951. // The name of the object.
  952. //
  953. // Return Type:
  954. // S_OK
  955. // Success.
  956. //
  957. // other HRESULTs.
  958. // The call failed.
  959. //
  960. //////////////////////////////////////////////////////////////////////////
  961. HRESULT
  962. SetName(
  963. [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn
  964. );
  965. //////////////////////////////////////////////////////////////////////////
  966. //
  967. // STDMETHOD
  968. // IStandardInfo::GetParent(
  969. // OBJECTCOOKIE * pcookieOut
  970. // )
  971. //
  972. // Description:
  973. // Retrieve the parent object's cookie.
  974. //
  975. // Arguments:
  976. // pcookieOut
  977. // The cookie for the parent object.
  978. //
  979. // Return Type:
  980. // S_OK
  981. // Success.
  982. //
  983. // S_FALSE
  984. // Success but there wasn't a cookie.
  985. //
  986. // other HRESULTs.
  987. // The call failed.
  988. //
  989. //////////////////////////////////////////////////////////////////////////
  990. HRESULT
  991. GetParent(
  992. [ out ] OBJECTCOOKIE * pcookieOut
  993. );
  994. //////////////////////////////////////////////////////////////////////////
  995. //
  996. // STDMETHOD
  997. // IStandardInfo::GetStatus(
  998. // HRESULT * phrOut
  999. // )
  1000. //
  1001. // Description:
  1002. // Retrieves the status of the object.
  1003. //
  1004. // Arguments:
  1005. // phrOut
  1006. // The last HRESULT received for the object.
  1007. //
  1008. // Return Type:
  1009. // S_OK
  1010. // Success.
  1011. //
  1012. // S_FALSE
  1013. // Success but there wasn't a cookie.
  1014. //
  1015. // other HRESULTs.
  1016. // The call failed.
  1017. //
  1018. //////////////////////////////////////////////////////////////////////////
  1019. HRESULT
  1020. GetStatus(
  1021. [ out ] HRESULT * phrOut
  1022. );
  1023. //////////////////////////////////////////////////////////////////////////
  1024. //
  1025. // STDMETHOD
  1026. // IStandardInfo::SetStatus(
  1027. // HRESULT hrIn
  1028. // )
  1029. //
  1030. // Description:
  1031. // Sets the status of the object.
  1032. //
  1033. // Arguments:
  1034. // hrIn
  1035. // Sets the last HRESULT for the object.
  1036. //
  1037. // Return Type:
  1038. // S_OK
  1039. // Success.
  1040. //
  1041. // S_FALSE
  1042. // Success but there wasn't a cookie.
  1043. //
  1044. // other HRESULTs.
  1045. // The call failed.
  1046. //
  1047. //////////////////////////////////////////////////////////////////////////
  1048. HRESULT
  1049. SetStatus(
  1050. [ in ] HRESULT hrIn
  1051. );
  1052. }; //*** interface IStandardInfo
  1053. //****************************************************************************
  1054. //++
  1055. //
  1056. // interface ITaskVerifyIPAddress
  1057. //
  1058. // Description:
  1059. // TODO: gpease 14-JUL-2000
  1060. // Write a description.
  1061. //
  1062. //--
  1063. //****************************************************************************
  1064. [
  1065. object,
  1066. uuid( 0c95e1b1-0cff-4740-8abd-69912d105bd1 ),
  1067. pointer_default( unique )
  1068. ]
  1069. interface
  1070. ITaskVerifyIPAddress : IDoTask
  1071. {
  1072. //////////////////////////////////////////////////////////////////////////
  1073. //
  1074. // STDMETHOD
  1075. // ITaskVerifyIPAddress::SetIPAddress(
  1076. // DWORD dwIPAddressIn
  1077. // )
  1078. //
  1079. // Description:
  1080. // Stores the IP Address to verify.
  1081. //
  1082. // Arguments:
  1083. // dwIPAddressIn
  1084. // Dotted-quad network-byte-order IP address to verify.
  1085. //
  1086. // Return Type:
  1087. // S_OK
  1088. // Success.
  1089. //
  1090. // other HRESULTs.
  1091. // The call failed.
  1092. //
  1093. //////////////////////////////////////////////////////////////////////////
  1094. HRESULT
  1095. SetIPAddress(
  1096. [ in ] DWORD dwIPAddressIn
  1097. );
  1098. //////////////////////////////////////////////////////////////////////////
  1099. //
  1100. // STDMETHOD
  1101. // ITaskVerifyIPAddress::SetCookie(
  1102. // OBJECTCOOKIE cookieIn
  1103. // )
  1104. //
  1105. // Description:
  1106. // Stores the cookie that will be used to send the notification that the
  1107. // task has been completed.
  1108. //
  1109. // Arguments:
  1110. // cookieIn
  1111. // A cookie that will be sent as notification that the task is done.
  1112. //
  1113. // Return Type:
  1114. // S_OK
  1115. // Success.
  1116. //
  1117. // E_OUTOFMEMORY
  1118. // Out of memory.
  1119. //
  1120. // other HRESULTs.
  1121. // The call failed.
  1122. //
  1123. //////////////////////////////////////////////////////////////////////////
  1124. HRESULT
  1125. SetCookie(
  1126. [ in ] OBJECTCOOKIE cookieIn
  1127. );
  1128. }; //*** interface ITaskVerifyIPAddress
  1129. //****************************************************************************
  1130. //++
  1131. //
  1132. // interface IConfigurationConnection
  1133. //
  1134. // Description:
  1135. // TODO: gpease 14-JUL-2000
  1136. // Write a description.
  1137. //
  1138. //--
  1139. //****************************************************************************
  1140. [
  1141. object,
  1142. uuid( DDAD8191-66C5-4a30-A4DF-CB6C216704CA ),
  1143. pointer_default( unique )
  1144. ]
  1145. interface
  1146. IConfigurationConnection : IUnknown
  1147. {
  1148. //////////////////////////////////////////////////////////////////////////
  1149. //
  1150. // STDMETHOD
  1151. // ConnectTo(
  1152. // LPVOID cookieIn
  1153. // )
  1154. //
  1155. // Description:
  1156. // Opens a connection a cluster "cookieIn".
  1157. //
  1158. // Arguments:
  1159. // cookieIn - cookie to the cluster to open.
  1160. //
  1161. // Return Type:
  1162. // S_OK - Success.
  1163. // other HRESULTs.
  1164. //
  1165. //////////////////////////////////////////////////////////////////////////
  1166. HRESULT
  1167. ConnectTo(
  1168. [ in ] OBJECTCOOKIE cookieIn
  1169. );
  1170. //////////////////////////////////////////////////////////////////////////
  1171. //
  1172. // STDMETHOD
  1173. // ConnectToObject(
  1174. // LPVOID cookieIn
  1175. // , REFIID riidIn
  1176. // , LPUNKNOWN * ppunkOut
  1177. // )
  1178. //
  1179. // Description:
  1180. // Opens a connection a cluster "cookieIn".
  1181. //
  1182. // Arguments:
  1183. // cookieIn - cookie to the cluster to open.
  1184. // riidIn - riid of the interface to get.
  1185. // ppunkOut - the interface to the object requested.
  1186. //
  1187. // Return Type:
  1188. // S_OK - Success.
  1189. // other HRESULTs.
  1190. //
  1191. //////////////////////////////////////////////////////////////////////////
  1192. HRESULT
  1193. ConnectToObject(
  1194. [ in ] OBJECTCOOKIE cookieIn
  1195. , [ in ] REFIID riidIn
  1196. , [ in ] LPUNKNOWN * ppunkOut
  1197. );
  1198. }; //*** interface IConfigurationConnection
  1199. //****************************************************************************
  1200. //++
  1201. //
  1202. // interface IConnectionInfo
  1203. //
  1204. // Description:
  1205. // TODO: gpease 14-JUL-2000
  1206. // Write a description.
  1207. //
  1208. //--
  1209. //****************************************************************************
  1210. [
  1211. object,
  1212. uuid( 15182CE3-82D7-473f-92DE-706E2BCEA902 ),
  1213. pointer_default( unique )
  1214. ]
  1215. interface
  1216. IConnectionInfo : IUnknown
  1217. {
  1218. //////////////////////////////////////////////////////////////////////////
  1219. //
  1220. // STDMETHOD
  1221. // IConnectionInfo::GetConnection(
  1222. // IConfigurationConnection ** pccOut
  1223. // )
  1224. //
  1225. // Description:
  1226. // Retrieves the cookie for the connection object that is used to
  1227. // communicate with the object in question.
  1228. //
  1229. // Arguments:
  1230. // pccOut
  1231. // The interface to the connection object.
  1232. //
  1233. // Return Type:
  1234. // S_OK
  1235. // Success.
  1236. //
  1237. // S_FALSE
  1238. // Success but there wasn't a cookie.
  1239. //
  1240. // other HRESULTs.
  1241. // The call failed.
  1242. //
  1243. //////////////////////////////////////////////////////////////////////////
  1244. HRESULT
  1245. GetConnection(
  1246. [ out ] IConfigurationConnection ** pccOut
  1247. );
  1248. //////////////////////////////////////////////////////////////////////////
  1249. //
  1250. // STDMETHOD
  1251. // IConnectionInfo::SetConnection(
  1252. // IConfigurationConnection * pccIn
  1253. // )
  1254. //
  1255. // Description:
  1256. // Stores the cookie for the connection object that is used to
  1257. // communicate with the object in question.
  1258. //
  1259. // Arguments:
  1260. // pccIn
  1261. // The interface to the connection object.
  1262. //
  1263. // Return Type:
  1264. // S_OK
  1265. // Success.
  1266. //
  1267. // other HRESULTs.
  1268. // The call failed.
  1269. //
  1270. //////////////////////////////////////////////////////////////////////////
  1271. HRESULT
  1272. SetConnection(
  1273. [ in ] IConfigurationConnection * pccIn
  1274. );
  1275. //////////////////////////////////////////////////////////////////////////
  1276. //
  1277. // STDMETHOD
  1278. // IConnectionInfo::GetParent(
  1279. // OBJECTCOOKIE * pcookieOut
  1280. // )
  1281. //
  1282. // Description:
  1283. // Retrieve the parent object's cookie.
  1284. //
  1285. // Arguments:
  1286. // pcookieOut
  1287. // The cookie for the parent object.
  1288. //
  1289. // Return Type:
  1290. // S_OK
  1291. // Success.
  1292. //
  1293. // S_FALSE
  1294. // Success but there wasn't a cookie.
  1295. //
  1296. // other HRESULTs.
  1297. // The call failed.
  1298. //
  1299. //////////////////////////////////////////////////////////////////////////
  1300. HRESULT
  1301. GetParent(
  1302. [ out ] OBJECTCOOKIE * pcookieOut
  1303. );
  1304. }; //*** interface IConnectionInfo
  1305. //****************************************************************************
  1306. //++
  1307. //
  1308. // interface IEnumCookies
  1309. //
  1310. // Description:
  1311. // TODO: gpease 14-JUL-2000
  1312. // Write a description.
  1313. //
  1314. // Documentation:
  1315. // See IEnumXXXX in MSDN.
  1316. //
  1317. //--
  1318. //****************************************************************************
  1319. [
  1320. object,
  1321. uuid( 5E3E482E-3C22-482c-B664-693051AD0A5D ),
  1322. pointer_default( unique )
  1323. ]
  1324. interface
  1325. IEnumCookies : IUnknown
  1326. {
  1327. HRESULT
  1328. Next(
  1329. [ in ] ULONG celtIn
  1330. , [ out, size_is( celtIn ), length_is( *pceltFetchedOut ) ] OBJECTCOOKIE * rgcookieOut
  1331. , [ out ] ULONG * pceltFetchedOut
  1332. );
  1333. HRESULT
  1334. Skip(
  1335. [ in ] ULONG celtIn
  1336. );
  1337. HRESULT
  1338. Reset( void );
  1339. HRESULT
  1340. Clone(
  1341. [ out ] IEnumCookies ** ppenumOut
  1342. );
  1343. HRESULT
  1344. Count(
  1345. [ out, ref ] DWORD * pnCountOut
  1346. );
  1347. }; //*** interface IEnumCookies
  1348. //****************************************************************************
  1349. //++
  1350. //
  1351. // interface IEnumNodes
  1352. //
  1353. // Description:
  1354. // TODO: gpease 14-JUL-2000
  1355. // Write a description.
  1356. //
  1357. // Documentation:
  1358. // See IEnumXXXX in MSDN.
  1359. //
  1360. //--
  1361. //****************************************************************************
  1362. [
  1363. object,
  1364. uuid( C477E363-AF0A-4203-A604-45CD607DD710 ),
  1365. pointer_default( unique )
  1366. ]
  1367. interface
  1368. IEnumNodes : IUnknown
  1369. {
  1370. HRESULT
  1371. Next(
  1372. [ in ] ULONG celtIn
  1373. , [ out, size_is( celtIn ), length_is( *pceltFetchedOut ) ] IClusCfgNodeInfo ** rgccniOut
  1374. , [ out ] ULONG * pceltFetchedOut
  1375. );
  1376. HRESULT
  1377. Skip(
  1378. [ in ] ULONG celtIn
  1379. );
  1380. HRESULT
  1381. Reset( void );
  1382. HRESULT
  1383. Clone(
  1384. [ out ] IEnumNodes ** ppenumOut
  1385. );
  1386. HRESULT
  1387. Count(
  1388. [ out, ref ] DWORD * pnCountOut
  1389. );
  1390. }; //*** interface IEnumNodes
  1391. //****************************************************************************
  1392. //++
  1393. //
  1394. // interface ITaskGatherClusterInfo
  1395. //
  1396. // Description:
  1397. // TODO: gpease 14-JUL-2000
  1398. // Write a description.
  1399. //
  1400. //--
  1401. //****************************************************************************
  1402. [
  1403. object,
  1404. uuid( E167965C-C5D6-493c-A343-4C105C01DDE7 ),
  1405. pointer_default( unique )
  1406. ]
  1407. interface
  1408. ITaskGatherClusterInfo : IDoTask
  1409. {
  1410. //////////////////////////////////////////////////////////////////////////
  1411. //
  1412. // STDMETHOD
  1413. // ITaskGatherClusterInfo::SetCookie(
  1414. // OBJECTCOOKIE cookieIn
  1415. // )
  1416. //
  1417. // Description:
  1418. // Stores the cookie to the Node to retrieve information about.
  1419. //
  1420. // Arguments:
  1421. // cookieIn
  1422. // The cookie of the Node to retrieve information about.
  1423. //
  1424. // Return Type:
  1425. // S_OK - Success.
  1426. // E_OUTOFMEMORY - Out of memory.
  1427. // other HRESULTs.
  1428. //
  1429. //////////////////////////////////////////////////////////////////////////
  1430. HRESULT
  1431. SetCookie(
  1432. [ in ] OBJECTCOOKIE cookieIn
  1433. );
  1434. //////////////////////////////////////////////////////////////////////////
  1435. //
  1436. // STDMETHOD
  1437. // ITaskGatherClusterInfo::SetCompletionCookie(
  1438. // OBJECTCOOKIE cookieIn
  1439. // )
  1440. //
  1441. // Description:
  1442. // Stores the cookie to signal when task is completed.
  1443. //
  1444. // Arguments:
  1445. // cookieIn
  1446. // The cookie to signal when the task is completed.
  1447. //
  1448. // Return Type:
  1449. // S_OK - Success.
  1450. // other HRESULTs.
  1451. //
  1452. //////////////////////////////////////////////////////////////////////////
  1453. HRESULT
  1454. SetCompletionCookie(
  1455. [ in ] OBJECTCOOKIE cookieIn
  1456. );
  1457. }; //*** interface ITaskGatherClusterInfo
  1458. //****************************************************************************
  1459. //++
  1460. //
  1461. // interface IGatherData
  1462. //
  1463. // Description:
  1464. // TODO: gpease 14-JUL-2000
  1465. // Write a description.
  1466. //
  1467. //--
  1468. //****************************************************************************
  1469. [
  1470. object,
  1471. uuid( 65318F4A-B63C-4e21-ADDC-BDCFB969E181 ),
  1472. pointer_default( unique )
  1473. ]
  1474. interface
  1475. IGatherData : IUnknown
  1476. {
  1477. //////////////////////////////////////////////////////////////////////////
  1478. //
  1479. // STDMETHOD
  1480. // IGatherData::Gather(
  1481. // OBJECTCOOKIE cookieParentIn,
  1482. // IUnknown * punkIn
  1483. // )
  1484. //
  1485. // Description:
  1486. // An object representation gathers the information from the punk.
  1487. //
  1488. // Arguments:
  1489. // cookieParentIn
  1490. // The parent of the object.
  1491. //
  1492. // punkIn
  1493. // The interface that can be used to gather information.
  1494. //
  1495. // Return Type:
  1496. // S_OK
  1497. // Success.
  1498. //
  1499. // E_OUTOFMEMORY
  1500. // Out of memory.
  1501. //
  1502. // other HRESULTs.
  1503. // The call failed.
  1504. //
  1505. //////////////////////////////////////////////////////////////////////////
  1506. HRESULT
  1507. Gather(
  1508. [ in ] OBJECTCOOKIE cookieParentIn
  1509. , [ in ] IUnknown * punkIn
  1510. );
  1511. }; //*** interface IGatherData
  1512. //****************************************************************************
  1513. //++
  1514. //
  1515. // interface ITaskGatherNodeInfo
  1516. //
  1517. // Description:
  1518. // TODO: gpease 14-JUL-2000
  1519. // Write a description.
  1520. //
  1521. //--
  1522. //****************************************************************************
  1523. [
  1524. object,
  1525. uuid( F19A2E01-2CB3-47b4-8F5D-B977176B45C8 ),
  1526. pointer_default( unique )
  1527. ]
  1528. interface
  1529. ITaskGatherNodeInfo : IDoTask
  1530. {
  1531. //////////////////////////////////////////////////////////////////////////
  1532. //
  1533. // STDMETHOD
  1534. // ITaskGatherNodeInfo::SetCookie(
  1535. // OBJECTCOOKIE cookieIn
  1536. // )
  1537. //
  1538. // Description:
  1539. // Stores the cookie to the Node to retrieve information about.
  1540. //
  1541. // Arguments:
  1542. // cookieIn
  1543. // The cookie of the Node to retrieve information about.
  1544. //
  1545. // Return Type:
  1546. // S_OK - Success.
  1547. // E_OUTOFMEMORY - Out of memory.
  1548. // other HRESULTs.
  1549. //
  1550. //////////////////////////////////////////////////////////////////////////
  1551. HRESULT
  1552. SetCookie(
  1553. [ in ] OBJECTCOOKIE cookieIn
  1554. );
  1555. //////////////////////////////////////////////////////////////////////////
  1556. //
  1557. // STDMETHOD
  1558. // ITaskGatherNodeInfo::SetCompletionCookie(
  1559. // OBJECTCOOKIE cookieIn
  1560. // )
  1561. //
  1562. // Description:
  1563. // Stores the cookie to signal when the task is completed.
  1564. //
  1565. // Arguments:
  1566. // cookieIn
  1567. // The cookie to signal when the task is completed.
  1568. //
  1569. // Return Type:
  1570. // S_OK - Success.
  1571. // other HRESULTs.
  1572. //
  1573. //////////////////////////////////////////////////////////////////////////
  1574. HRESULT
  1575. SetCompletionCookie(
  1576. [ in ] OBJECTCOOKIE cookieIn
  1577. );
  1578. //////////////////////////////////////////////////////////////////////////
  1579. //
  1580. // STDMETHOD
  1581. // ITaskGatherNodeInfo::SetUserAddedNodeFlag(
  1582. // BOOL fUserAddedNodeIn
  1583. // )
  1584. //
  1585. // Description:
  1586. // Stores the flag about whether this node a new Node being added/formed or not .
  1587. //
  1588. // Arguments:
  1589. // fUserAddedNodeIn
  1590. //
  1591. // Return Type:
  1592. // S_OK - Success.
  1593. // other HRESULTs.
  1594. //
  1595. //////////////////////////////////////////////////////////////////////////
  1596. HRESULT
  1597. SetUserAddedNodeFlag(
  1598. [ in ] BOOL fUserAddedNodeIn
  1599. );
  1600. }; //*** interface ITaskGatherNodeInfo
  1601. //****************************************************************************
  1602. //++
  1603. //
  1604. // interface ITaskCompareAndPushInformation
  1605. //
  1606. // Description:
  1607. // TODO: gpease 14-JUL-2000
  1608. // Write a description.
  1609. //
  1610. //--
  1611. //****************************************************************************
  1612. [
  1613. object,
  1614. uuid( D4F1C2AF-B370-49de-8768-4010B568636C ),
  1615. pointer_default( unique )
  1616. ]
  1617. interface
  1618. ITaskCompareAndPushInformation : IDoTask
  1619. {
  1620. //////////////////////////////////////////////////////////////////////////
  1621. //
  1622. // STDMETHOD
  1623. // ITaskCompareAndPushInformation::SetNodeCookie(
  1624. // OBJECTCOOKIE cookieIn
  1625. // )
  1626. //
  1627. // Description:
  1628. // Stores the cookie to the Node to retrieve information about.
  1629. //
  1630. // Arguments:
  1631. // cookieIn
  1632. // The cookie of the Node to retrieve information about.
  1633. //
  1634. // Return Values:
  1635. // S_OK
  1636. // Success.
  1637. //
  1638. // other HRESULTs.
  1639. // The call failed.
  1640. //
  1641. //////////////////////////////////////////////////////////////////////////
  1642. HRESULT
  1643. SetNodeCookie(
  1644. [ in ] OBJECTCOOKIE cookieIn
  1645. );
  1646. //////////////////////////////////////////////////////////////////////////
  1647. //
  1648. // STDMETHOD
  1649. // ITaskCompareAndPushInformation::SetCompletionCookie(
  1650. // OBJECTCOOKIE cookieIn
  1651. // )
  1652. //
  1653. // Description:
  1654. // Stores the cookie to signal when the task is completed.
  1655. //
  1656. // Arguments:
  1657. // cookieIn
  1658. // The cookie to signal when the task is completed.
  1659. //
  1660. // Return Values:
  1661. // S_OK
  1662. // Success.
  1663. //
  1664. // other HRESULTs.
  1665. // The call
  1666. //
  1667. //////////////////////////////////////////////////////////////////////////
  1668. HRESULT
  1669. SetCompletionCookie(
  1670. [ in ] OBJECTCOOKIE cookieIn
  1671. );
  1672. }; //*** interface ITaskCompareAndPushInformation
  1673. //****************************************************************************
  1674. //++
  1675. //
  1676. // interface ITaskGatherInformation
  1677. //
  1678. // Description:
  1679. // TODO: gpease 14-JUL-2000
  1680. // Write a description.
  1681. //
  1682. //--
  1683. //****************************************************************************
  1684. [
  1685. object,
  1686. uuid( B9AAF3F8-238E-4993-BA31-14859804F92C ),
  1687. pointer_default( unique )
  1688. ]
  1689. interface
  1690. ITaskGatherInformation : IDoTask
  1691. {
  1692. //////////////////////////////////////////////////////////////////////////
  1693. //
  1694. // STDMETHOD
  1695. // ITaskGatherInformation::SetNodeCookie(
  1696. // OBJECTCOOKIE cookieIn
  1697. // )
  1698. //
  1699. // Description:
  1700. // Stores the cookie to the Node to retrieve information about.
  1701. //
  1702. // Arguments:
  1703. // cookieIn
  1704. // The cookie of the Node to retrieve information about.
  1705. //
  1706. // Return Values:
  1707. // S_OK
  1708. // Success.
  1709. //
  1710. // other HRESULTs.
  1711. // The call failed.
  1712. //
  1713. //////////////////////////////////////////////////////////////////////////
  1714. HRESULT
  1715. SetNodeCookie(
  1716. [ in ] OBJECTCOOKIE cookieIn
  1717. );
  1718. //////////////////////////////////////////////////////////////////////////
  1719. //
  1720. // STDMETHOD
  1721. // ITaskGatherInformation::SetCompletionCookie(
  1722. // OBJECTCOOKIE cookieIn
  1723. // )
  1724. //
  1725. // Description:
  1726. // Stores the cookie to signal when the task is completed.
  1727. //
  1728. // Arguments:
  1729. // cookieIn
  1730. // The cookie to signal when the task is completed.
  1731. //
  1732. // Return Values:
  1733. // S_OK
  1734. // Success.
  1735. //
  1736. // other HRESULTs.
  1737. // The call
  1738. //
  1739. //////////////////////////////////////////////////////////////////////////
  1740. HRESULT
  1741. SetCompletionCookie(
  1742. [ in ] OBJECTCOOKIE cookieIn
  1743. );
  1744. //////////////////////////////////////////////////////////////////////////
  1745. //
  1746. // STDMETHOD
  1747. // ITaskGatherInformation::SetJoining( void )
  1748. //
  1749. // Description:
  1750. // Sets the task to indicate that it going to be joining nodes.
  1751. //
  1752. // Arguments:
  1753. // None.
  1754. //
  1755. // Return Values:
  1756. // S_OK
  1757. // Success.
  1758. //
  1759. // other HRESULTs.
  1760. // The call
  1761. //
  1762. //////////////////////////////////////////////////////////////////////////
  1763. HRESULT
  1764. SetJoining( void );
  1765. //////////////////////////////////////////////////////////////////////////
  1766. //
  1767. // STDMETHOD
  1768. // ITaskGatherInformation::SetMinimalConfiguration(
  1769. // BOOL fMinimalConfigurationIn
  1770. // )
  1771. //
  1772. // Description:
  1773. // Sets the task to indicate that a minimal configuration was
  1774. // selected.
  1775. //
  1776. // Arguments:
  1777. // fMinimalConfigurationIn
  1778. // TRUE when minimal configuration was selected.
  1779. //
  1780. // Return Values:
  1781. // S_OK
  1782. // Success.
  1783. //
  1784. // other HRESULTs.
  1785. // The call
  1786. //
  1787. //////////////////////////////////////////////////////////////////////////
  1788. HRESULT
  1789. SetMinimalConfiguration(
  1790. [ in ] BOOL fMinimalConfigurationIn
  1791. );
  1792. }; //*** interface ITaskGatherInformation
  1793. //****************************************************************************
  1794. //++
  1795. //
  1796. // interface ITaskPollingCallback
  1797. //
  1798. // Description:
  1799. // TODO: gpease 14-JUL-2000
  1800. // Write a description.
  1801. //
  1802. //--
  1803. //****************************************************************************
  1804. [
  1805. object,
  1806. uuid( 49E92395-66AF-4add-A41E-43512CB519B3 ),
  1807. pointer_default( unique )
  1808. ]
  1809. interface
  1810. ITaskPollingCallback : IDoTask
  1811. {
  1812. //////////////////////////////////////////////////////////////////////////
  1813. //
  1814. // STDMETHOD
  1815. // ITaskPollingCallback::SetServerInfo(
  1816. // DWORD dwRemoteServerObjectGITCookieIn
  1817. // , OBJECTCOOKIE cookieLocalServerObjectIn
  1818. // )
  1819. //
  1820. // Description:
  1821. // Passes the information needed by this task to communication with
  1822. // the ClusCfg server object on a remote server.
  1823. //
  1824. // Arguments:
  1825. // dwRemoteServerObjectGITCookieIn
  1826. // The GIT cookie to the server side object used to obtain the
  1827. // polling callback interface.
  1828. //
  1829. // cookieLocalServerObjectIn
  1830. // Object manager cookie to the client side server proxy object.
  1831. // Needed to get the standard info from that object.
  1832. //
  1833. // Return Type:
  1834. // S_OK
  1835. // Success.
  1836. //
  1837. // other HRESULTs.
  1838. // The call failed.
  1839. //
  1840. //////////////////////////////////////////////////////////////////////////
  1841. HRESULT
  1842. SetServerInfo(
  1843. [ in ] DWORD dwRemoteServerObjectGITCookieIn
  1844. , [ in ] OBJECTCOOKIE cookieLocalServerObjectIn
  1845. );
  1846. }; //*** interface ITaskPollingCallback
  1847. //****************************************************************************
  1848. //++
  1849. //
  1850. // interface ILogManager
  1851. //
  1852. // Description:
  1853. // Manage logging for all clients of the middle tier.
  1854. //
  1855. //--
  1856. //****************************************************************************
  1857. [
  1858. object,
  1859. uuid( 4759DC11-8DA0-4261-BBFB-EC321911D1C9 ),
  1860. pointer_default( unique )
  1861. ]
  1862. interface
  1863. ILogManager : IUnknown
  1864. {
  1865. //////////////////////////////////////////////////////////////////////////
  1866. //
  1867. // STDMETHOD
  1868. // ILogManager::StartLogging( void )
  1869. //
  1870. // Description:
  1871. // Starts logging IClusCfgCallback notifications to the log file.
  1872. //
  1873. // Arguments:
  1874. // None.
  1875. //
  1876. // Return Type:
  1877. // S_OK
  1878. // Success.
  1879. //
  1880. // other HRESULTs.
  1881. // The call failed.
  1882. //
  1883. //////////////////////////////////////////////////////////////////////////
  1884. HRESULT
  1885. StartLogging( void );
  1886. //////////////////////////////////////////////////////////////////////////
  1887. //
  1888. // STDMETHOD
  1889. // ILogManager::StopLogging( void )
  1890. //
  1891. // Description:
  1892. // Stops logging IClusCfgCallback notifications to the log file.
  1893. //
  1894. // Arguments:
  1895. // None.
  1896. //
  1897. // Return Type:
  1898. // S_OK
  1899. // Success.
  1900. //
  1901. // other HRESULTs.
  1902. // The call failed.
  1903. //
  1904. //////////////////////////////////////////////////////////////////////////
  1905. HRESULT
  1906. StopLogging( void );
  1907. //////////////////////////////////////////////////////////////////////////
  1908. //
  1909. // STDMETHOD
  1910. // ILogManager::GetLogger( ILogger ** ppLoggerOut )
  1911. //
  1912. // Description:
  1913. // Returns a pointer to the ILogger instance to use for writing to
  1914. // the log file.
  1915. //
  1916. // Arguments:
  1917. // ppLoggerOut - on success, a pointer to the ILogger instance.
  1918. //
  1919. // Return Type:
  1920. // S_OK
  1921. // Success.
  1922. //
  1923. // other HRESULTs.
  1924. // The call failed.
  1925. //
  1926. //////////////////////////////////////////////////////////////////////////
  1927. HRESULT
  1928. GetLogger( [ out ] ILogger ** ppLoggerOut );
  1929. }; //*** interface ILogManager
  1930. //****************************************************************************
  1931. //++
  1932. //
  1933. // interface ILogger
  1934. //
  1935. // Description:
  1936. // Manage logging from multiple sources to the same log file.
  1937. //
  1938. //--
  1939. //****************************************************************************
  1940. [
  1941. object,
  1942. uuid( D9598418-304E-4f94-B6A1-E642FE95ED57 ),
  1943. pointer_default( unique )
  1944. ]
  1945. interface
  1946. ILogger : IUnknown
  1947. {
  1948. //////////////////////////////////////////////////////////////////////////
  1949. //
  1950. // STDMETHOD
  1951. // ILogger::LogMsg(
  1952. // LPCWSTR pcszMsgIn
  1953. // )
  1954. //
  1955. // Description:
  1956. // Logs a message to the log file.
  1957. //
  1958. // Arguments:
  1959. // nLogEntryTypeIn - Log entry type.
  1960. // pcszMsgIn - Message to log.
  1961. //
  1962. // Return Type:
  1963. // S_OK
  1964. // Success.
  1965. //
  1966. // other HRESULTs.
  1967. // The call failed.
  1968. //
  1969. //////////////////////////////////////////////////////////////////////////
  1970. HRESULT
  1971. LogMsg(
  1972. [ in ] DWORD nLogEntryTypeIn
  1973. , [ in, pointer_default( unique ) ] LPCWSTR pcszMsgIn
  1974. );
  1975. }; //*** interface ILogger
  1976. //****************************************************************************
  1977. //++
  1978. //
  1979. // interface ITaskCancelCleanup
  1980. //
  1981. // Description:
  1982. //
  1983. //
  1984. //--
  1985. //****************************************************************************
  1986. [
  1987. object,
  1988. uuid( FFE81BE7-34E8-4286-8A5F-B69814EA5720 ),
  1989. pointer_default( unique )
  1990. ]
  1991. interface
  1992. ITaskCancelCleanup : IDoTask
  1993. {
  1994. //////////////////////////////////////////////////////////////////////////
  1995. //
  1996. // STDMETHOD
  1997. // ITaskCancelCleanup::SetClusterCookie(
  1998. // OBJECTCOOKIE cookieClusterIn
  1999. // )
  2000. //
  2001. // Description:
  2002. // Stores the cookie of the cluster configuration object.
  2003. //
  2004. // Arguments:
  2005. // cookieIn
  2006. // The cookie of the cluster to run the cleanup task against.
  2007. //
  2008. // Return Type:
  2009. // S_OK
  2010. // Success.
  2011. //
  2012. // E_OUTOFMEMORY
  2013. // Out of memory.
  2014. //
  2015. // other HRESULTs.
  2016. // The call failed.
  2017. //
  2018. //////////////////////////////////////////////////////////////////////////
  2019. HRESULT
  2020. SetClusterCookie(
  2021. [ in ] OBJECTCOOKIE cookieClusterIn
  2022. );
  2023. //////////////////////////////////////////////////////////////////////////
  2024. //
  2025. // STDMETHOD
  2026. // ITaskCancelCleanup::SetCompletionCookie(
  2027. // OBJECTCOOKIE cookieIn
  2028. // )
  2029. //
  2030. // Description:
  2031. // Stores the cookie that will be used to send the notification that the
  2032. // task has been completed.
  2033. //
  2034. // Arguments:
  2035. // cookieIn
  2036. // A cookie that will be sent as notification that the task is done.
  2037. //
  2038. // Return Type:
  2039. // S_OK
  2040. // Success.
  2041. //
  2042. // E_OUTOFMEMORY
  2043. // Out of memory.
  2044. //
  2045. // other HRESULTs.
  2046. // The call failed.
  2047. //
  2048. //////////////////////////////////////////////////////////////////////////
  2049. HRESULT
  2050. SetCompletionCookie(
  2051. [ in ] OBJECTCOOKIE cookieCompletionIn
  2052. );
  2053. }; //*** interface ITaskCancelCleanup
  2054. [
  2055. uuid( a0cb3974-8681-46c1-b78b-599567bd385d ),
  2056. version( 1.0 ),
  2057. helpstring("Microsoft Cluster Configuration Client Library"),
  2058. lcid( 0 )
  2059. ]
  2060. library ClusCfgClient
  2061. {
  2062. //////////////////////////////////////////////////////////////////////////////
  2063. // Imported Files
  2064. //////////////////////////////////////////////////////////////////////////////
  2065. importlib("stdole2.tlb");
  2066. //////////////////////////////////////////////////////////////////////////////
  2067. // Interface Definitions
  2068. //////////////////////////////////////////////////////////////////////////////
  2069. //****************************************************************************
  2070. //++
  2071. //
  2072. // interface IClusCfgAsyncEvictCleanup
  2073. //
  2074. // Description:
  2075. // This interface can be used to cleanup a node that has been evicted from
  2076. // a cluster. This interface can be used to cleanup both local and remote
  2077. // nodes. Note, you cannot use asynchronous COM with this interface, since
  2078. // it is an oleautomation interface.
  2079. //
  2080. //--
  2081. //****************************************************************************
  2082. [
  2083. object,
  2084. uuid( 52C80B95-C1AD-4240-8D89-72E9FA84025E ),
  2085. dual,
  2086. helpstring("IClusCfgAsyncEvictCleanup interface"),
  2087. pointer_default( unique )
  2088. ]
  2089. interface
  2090. IClusCfgAsyncEvictCleanup : IDispatch
  2091. {
  2092. //////////////////////////////////////////////////////////////////////
  2093. //
  2094. // HRESULT
  2095. // CleanupNode(
  2096. // BSTR bstrEvictedNodeNameIn
  2097. // , long lDelayIn
  2098. // , long lTimeoutIn
  2099. // )
  2100. //
  2101. // Routine Description:
  2102. // Cleanup a node that has been evicted.
  2103. //
  2104. // Arguments:
  2105. // bstrEvictedNodeNameIn
  2106. // Name of the node on which cleanup is to be initiated. If
  2107. // this is NULL the local node is cleaned up.
  2108. //
  2109. // nDelayIn
  2110. // Number of milliseconds that will elapse before cleanup is
  2111. // started on the target node. If some other process cleans
  2112. // up the target node while delay is in progress, the delay
  2113. // is terminated. If this value is zero, the node is cleaned
  2114. // up immediately.
  2115. //
  2116. // nTimeoutIn
  2117. // Number of milliseconds that this method will wait for
  2118. // cleanup to complete. This timeout is independent of the
  2119. // delay above, so if dwDelayIn is greater than dwTimeoutIn,
  2120. // this method will most probably timeout. Once initiated,
  2121. // however, cleanup will run to completion - this method just
  2122. // may not wait for it to complete.
  2123. //
  2124. // Return Value:
  2125. // S_OK
  2126. // If the cleanup operations were successful
  2127. //
  2128. // RPC_S_CALLPENDING
  2129. // If cleanup is not complete in dwTimeoutIn milliseconds
  2130. //
  2131. // Other HRESULTS
  2132. // In case of error
  2133. //
  2134. //////////////////////////////////////////////////////////////////////
  2135. HRESULT
  2136. CleanupNode(
  2137. [ in ] BSTR bstrEvictedNodeNameIn
  2138. , [ in ] long nDelayIn
  2139. , [ in ] long nTimeoutIn
  2140. );
  2141. }; //*** interface IClusCfgAsyncEvictCleanup
  2142. }; //*** library ClusCfgClient