Source code of Windows XP (NT5)
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.

2213 lines
57 KiB

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