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.

960 lines
29 KiB

  1. // DfsCore.idl : IDL source for DfsCore.dll
  2. //
  3. // ---------------------------------------------------------------------------
  4. // This idl file contains definitions for the following objects and their interfaces:
  5. // DfsRoot
  6. // IDfsRoot
  7. // DfsJunctionPoint
  8. // IDfsJunctionPoint
  9. // DfsReplica
  10. // IDfsReplica
  11. // ---------------------------------------------------------------------------
  12. // ---------------------------------------------------------------------------
  13. // OVERVIEW
  14. // ---------------------------------------------------------------------------
  15. // You can use the objects in this file for performing DFS related operations
  16. import "oaidl.idl";
  17. import "ocidl.idl";
  18. ////////////////////////////////////////////////////////////////////////////////////
  19. // Interface IDfsRoot
  20. ////////////////////////////////////////////////////////////////////////////////////
  21. // Use this object for managing DfsRoots.
  22. //
  23. // To use the interface IDfsRoot, you must first call initialize, before you can use
  24. // any of the properties / methods.
  25. // The properties that are supported by IDfsRoot are -
  26. // DomainName - The Domain Name of the domain, of which the server is a member.
  27. // DfsType - The type of the DfsRoot viz. StandAlone or Fault Tolerant.
  28. // State - Specifies whether the Dfs is Online or Offline.
  29. // DfsName - The name of the DfsRoot.
  30. // Comment - The comment associated with the DfsRoot
  31. // To Enumerate the child Junction points in the DfsRoot -
  32. // 0. Call put_EnumFilter to "JunctionPoint".
  33. // 1. Use _NewEnum to get an IEnumVARIANT*.
  34. // 2. Using the IEnumVariant::Next function, you can get a pointer to the IDfsJunctionPoint
  35. // interface.
  36. // Call 2 successively to get the next junction point object, till there are no more
  37. // junction points to be enumerated.
  38. // To Enumerate the Root Level Replicas in the JunctionPoint -
  39. // 0. Call put_EnumFilter to "Replica".
  40. // 1. Use _NewEnum to get an IEnumVARIANT*.
  41. // 2. Using the IEnumVariant::Next function, you can get a pointer to the IDfsReplica
  42. // interface.
  43. // Call 2 successively to get the next Replica object, till there are no more
  44. // Replicas to be enumerated.
  45. //
  46. // Note that if you have created the DfsRoot object yourself, then you need to call its
  47. // Initialize() method before you can use any of its properties / methods.
  48. //
  49. // To create a Junction point -
  50. // Call NewDfsJunctionPoint passing the following parameters -
  51. // i_pszEntryPath - The entry path for the new junction point.
  52. // i_pszServerName - The server name on which the new junction
  53. // point is to be created.
  54. // i_pszShareName - The share that the junction point should point to.
  55. // o_pIDfsJunctionPoint - Address of a VARIANT structure in which the IJunctionPoint
  56. // pointer of the newly created junction point object will be
  57. // returned.
  58. // To delete a Junction Point
  59. // Call DeleteJunctionPoint, passing the entry path for the junction point to be deleted
  60. // as a parameter.
  61. [
  62. object,
  63. uuid(A741D3FA-31BE-11D1-9A4A-0080ADAA5C4B),
  64. dual,
  65. helpstring("IDfsRoot Interface"),
  66. pointer_default(unique)
  67. ]
  68. interface IDfsRoot : IDispatch
  69. {
  70. [propget, id(1), helpstring("property DfsName")]
  71. HRESULT DfsName
  72. (
  73. [out, retval] BSTR *pVal
  74. );
  75. [propget, id(2), helpstring("property DfsType")]
  76. HRESULT DfsType
  77. ([
  78. out, retval] long *pVal
  79. );
  80. [propget, id(3), helpstring("Gets the Root Entry Path for the DfsRoot.")]
  81. HRESULT RootEntryPath
  82. (
  83. BSTR * pVal
  84. );
  85. [propget, id(4), helpstring("property State")]
  86. HRESULT State
  87. (
  88. [out, retval] long *pVal
  89. );
  90. [propget, id(5), helpstring("DfsRoot Comment")]
  91. HRESULT Comment
  92. (
  93. [out, retval] BSTR *pVal
  94. );
  95. [propput, id(5), helpstring("DfsRoot Comment")]
  96. HRESULT Comment
  97. (
  98. [in] BSTR newVal
  99. );
  100. [propget, id(6), helpstring("Gets the timeout of the Junciton Point")]
  101. HRESULT Timeout
  102. (
  103. [out, retval] long *pVal
  104. );
  105. [propput, id(6), helpstring("Puts the timeout of the Junciton Point")]
  106. HRESULT Timeout
  107. (
  108. [in] long newVal
  109. );
  110. [propget, id(7), helpstring("property DomainName")]
  111. HRESULT DomainName
  112. (
  113. [out, retval] BSTR *pVal
  114. );
  115. [propget, id(8), helpstring("property DomainGuid")]
  116. HRESULT DomainGuid
  117. (
  118. [out, retval] BSTR *pVal
  119. );
  120. [propget, id(9), helpstring("property DomainDN")]
  121. HRESULT DomainDN
  122. (
  123. [out, retval] BSTR *pVal
  124. );
  125. [propget, id(10), helpstring("property ReplicaSetDN")]
  126. HRESULT ReplicaSetDN
  127. (
  128. [out, retval] BSTR *pVal
  129. );
  130. [propget, id(11), helpstring("property ReplicaSetExist")]
  131. HRESULT ReplicaSetExist
  132. (
  133. [out, retval] BOOL *pVal
  134. );
  135. [propput, id(11), helpstring("property ReplicaSetExist")]
  136. HRESULT ReplicaSetExist
  137. (
  138. [in] BOOL newVal
  139. );
  140. [propget, id(12), helpstring("property CountOfDfsJunctionPoints")]
  141. HRESULT CountOfDfsJunctionPoints
  142. (
  143. [out, retval] long *pVal
  144. );
  145. [propget, id(13), helpstring("property CountOfDfsJunctionPointsFiltered")]
  146. HRESULT CountOfDfsJunctionPointsFiltered
  147. (
  148. [out, retval] long *pVal
  149. );
  150. [propget, id(14), helpstring("property CountOfDfsRootReplicas")]
  151. HRESULT CountOfDfsRootReplicas
  152. (
  153. [out, retval] long *pVal
  154. );
  155. [propget, id(15), helpstring("Gets the type of Enumeration Filter on junction points.")]
  156. HRESULT EnumFilterType
  157. (
  158. [out, retval] long* pVal
  159. );
  160. [propput, id(15), helpstring("Sets the type of Enumeration Filter on junction points.")]
  161. HRESULT EnumFilterType
  162. (
  163. [in] long newVal
  164. );
  165. [propget, id(16), helpstring("Gets the Enumeration Filter on junction points.")]
  166. HRESULT EnumFilter
  167. (
  168. [out, retval] BSTR* pVal
  169. );
  170. [propput, id(16), helpstring("Sets the Enumeration Filter on junction points.")]
  171. HRESULT EnumFilter
  172. (
  173. [in] BSTR newVal
  174. );
  175. [propget, restricted, id(DISPID_NEWENUM), helpstring("Gets the enumerator on junction points.")]
  176. HRESULT _NewEnum
  177. (
  178. [out, retval] IUnknown** ppEnumerator
  179. );
  180. [id(17), helpstring("Gets the enumerator on root replicas.")]
  181. HRESULT get_RootReplicaEnum
  182. (
  183. [out, retval] IUnknown** ppEnumerator
  184. );
  185. [id(18), helpstring("method Initialize")]
  186. HRESULT Initialize
  187. (
  188. [in] BSTR i_pszDfsName
  189. );
  190. [id(19), helpstring("Creates a New Dfs Junction Point.")]
  191. HRESULT CreateJunctionPoint
  192. (
  193. [in] BSTR i_pszJPName,
  194. [in] BSTR i_pszServerName,
  195. [in] BSTR i_pszShareName,
  196. [in] BSTR i_pszComment,
  197. [in] long i_lTimeout,
  198. [out]VARIANT *o_pIDfsJunctionPoint
  199. );
  200. [id(20), helpstring("Deletes a Junction Point.")]
  201. HRESULT DeleteJunctionPoint
  202. (
  203. [in] BSTR i_pszEntryPath
  204. );
  205. [id(21), helpstring("Deletes a Dfs root replica.")]
  206. HRESULT DeleteDfsHost
  207. (
  208. [in] BSTR i_bstrServerName,
  209. [in] BSTR i_bstrShareName,
  210. [in] BOOL i_bForce
  211. );
  212. [id(22), helpstring("Get info of a Dfs root replica")]
  213. HRESULT GetOneDfsHost
  214. (
  215. [out] BSTR* o_pbstrServerName,
  216. [out] BSTR* o_pbstrShareName
  217. );
  218. [id(23), helpstring("Is JP existed")]
  219. HRESULT IsJPExisted
  220. (
  221. [in] BSTR i_bstrJPName
  222. );
  223. [id(24), helpstring("Refresh Root Replicas")]
  224. HRESULT RefreshRootReplicas
  225. (
  226. );
  227. [id(25), helpstring("Get interface pointer to the Root JP")]
  228. HRESULT GetRootJP
  229. (
  230. [out]VARIANT *o_pIDfsJunctionPoint
  231. );
  232. [id(26), helpstring("Delete all replica sets related to this Dfs root")]
  233. HRESULT DeleteAllReplicaSets
  234. (
  235. );
  236. [id(27), helpstring("refresh bReplicaSetExist and retrieve its value")]
  237. HRESULT get_ReplicaSetExistEx
  238. (
  239. [out] BSTR *pbstrDC,
  240. [out] BOOL *pVal
  241. );
  242. };
  243. ////////////////////////////////////////////////////////////////////////////////////
  244. // Interface IDfsReplica
  245. ////////////////////////////////////////////////////////////////////////////////////
  246. // Use this object to manage Replicas (or Alternates).
  247. // To use the interface IDfsReplica, you must first call initialize, before you can use
  248. // any of its properties / methods.
  249. // Call Initialize with the following parameters -
  250. // i_szEntryPath - The Entry path to the Replica that you wish to manage.
  251. // i_szStorageServerName - The name of the Server pointed to by this replica,
  252. // on which the actual storage resides.
  253. // i_szStorageShareName - The name of the share on the above mentioned server to
  254. // which this replica points.
  255. // The properties that are supported by IDfsReplica are -
  256. // State - Specifies whether the Dfs is Online or Offline.
  257. // StorageServerName - The name of the server pointed to by the Replica which hosts
  258. // the actual data storage.
  259. // StorageShareName - The share on the server which hosts the actual data storage.
  260. // EntryPath - The Domain Name of the domain, of which the server is a member.
  261. // Note that if you have created the DfsReplica object yourself, then you need to call its
  262. // initialize method before you can use any of its properties / methods.
  263. // In case you get an IDfsReplica pointer from an enumeration on a JunctionPoint object,
  264. // then Initialize has already been called, and you can start using it right away.
  265. [
  266. object,
  267. uuid(A741D3FD-31BE-11D1-9A4A-0080ADAA5C4B),
  268. dual,
  269. helpstring("IDfsReplica Interface"),
  270. pointer_default(unique)
  271. ]
  272. interface IDfsReplica : IDispatch
  273. {
  274. [propget, id(1), helpstring("property EntryPath")]
  275. HRESULT EntryPath
  276. (
  277. [out, retval] BSTR *pVal
  278. );
  279. [propget, id(2), helpstring("Gets the state of the Replica.")]
  280. HRESULT State
  281. (
  282. [out, retval] long *pVal
  283. );
  284. [propput, id(2), helpstring("Sets the state of the Replica.")]
  285. HRESULT State
  286. (
  287. [in] long newVal
  288. );
  289. [propget, id(3), helpstring("property StorageServerName")]
  290. HRESULT StorageServerName
  291. (
  292. [out, retval] BSTR *pVal
  293. );
  294. [propget, id(4), helpstring("property StorageShareName")]
  295. HRESULT StorageShareName
  296. (
  297. [out, retval] BSTR *pVal
  298. );
  299. [id(5), helpstring("method Initialize")]
  300. HRESULT Initialize
  301. (
  302. [in] BSTR i_szEntryPath,
  303. [in] BSTR i_szStorageServerName,
  304. [in] BSTR i_szStorageShareName,
  305. [in] long i_lState
  306. );
  307. [id(6), helpstring("FindTarget")]
  308. HRESULT FindTarget
  309. (
  310. );
  311. };
  312. ////////////////////////////////////////////////////////////////////////////////////
  313. // Interface IDfsJunctionPoint
  314. ////////////////////////////////////////////////////////////////////////////////////
  315. // Use this object for managing Junction Points.
  316. //
  317. // To use the interface IDfsJunctionPoint, you must first call initialize, before you
  318. // can use any of its properties / methods.
  319. //
  320. // Call Initialize with the EntryPath of the junction point as the parameter.
  321. //
  322. // The properties that are supported by IDfsJunctionPoint are -
  323. // State - Specifies whether the Junction Point is Online or Offline.
  324. // EntryPath - The Entry Path for the Junction point.
  325. // JunctionName - The name of the Junction point.
  326. // Comment - Any comment that you wish to associate with the Junction point.
  327. // CountOfDfsReplicas -
  328. // The number of Replicas that are hosted by this Junction Point.
  329. // To Enumerate the Replicas in the JunctionPoint -
  330. // 1. Use _NewEnum to get an IEnumVARIANT*.
  331. // 2. Using the IEnumVariant::Next function, you can get a pointer to the IDfsReplica
  332. // interface.
  333. // Call 2 successively to get the next Replica object, till there are no more
  334. // Replicas to be enumerated.
  335. //
  336. // Note that if you have created the DfsJunctionPoint object yourself, then you need
  337. // to call its initialize method before you can use any of its properties / methods.
  338. //
  339. [
  340. object,
  341. uuid(A741D3FF-31BE-11D1-9A4A-0080ADAA5C4B),
  342. dual,
  343. helpstring("IDfsJunctionPoint Interface"),
  344. pointer_default(unique)
  345. ]
  346. interface IDfsJunctionPoint : IDispatch
  347. {
  348. [propget, id(1), helpstring("property EntryPath")]
  349. HRESULT EntryPath
  350. (
  351. [out, retval] BSTR *pVal
  352. );
  353. [id(2), helpstring("get property JunctionName")]
  354. HRESULT get_JunctionName
  355. (
  356. [in] BOOL i_bDfsNameIncluded,
  357. [out, retval] BSTR *pVal
  358. );
  359. [propget, id(3), helpstring("property State")]
  360. HRESULT State
  361. (
  362. [out, retval] long *pVal
  363. );
  364. [propget, id(4), helpstring("property Comment")]
  365. HRESULT Comment
  366. (
  367. [out, retval] BSTR *pVal
  368. );
  369. [propput, id(4), helpstring("property Comment")]
  370. HRESULT Comment
  371. (
  372. [in] BSTR newVal
  373. );
  374. [propget, id(5), helpstring ("Gets the timeout for the Replica.")]
  375. HRESULT Timeout
  376. (
  377. [out, retval] long* pVal
  378. );
  379. [propput, id(5), helpstring ("Sets the timeout for the Replica.")]
  380. HRESULT Timeout
  381. (
  382. [in] long newVal
  383. );
  384. [propget, id(6), helpstring("property CountOfDfsReplicas")]
  385. HRESULT CountOfDfsReplicas
  386. (
  387. [out, retval] long *pVal
  388. );
  389. [propget, id(7), helpstring("property ReplicaSetDN")]
  390. HRESULT ReplicaSetDN
  391. (
  392. [out, retval] BSTR *pVal
  393. );
  394. [propget, id(8), helpstring("property ReplicaSetExist")]
  395. HRESULT ReplicaSetExist
  396. (
  397. [out, retval] BOOL *pVal
  398. );
  399. [propput, id(8), helpstring("property ReplicaSetExist")]
  400. HRESULT ReplicaSetExist
  401. (
  402. [in] BOOL newVal
  403. );
  404. [propget, restricted, id(DISPID_NEWENUM), helpstring("Gets the enumerator on replicas.")]
  405. HRESULT _NewEnum
  406. (
  407. [out, retval] IUnknown** ppEnumerator
  408. );
  409. [id(9), helpstring("method Initialize")]
  410. HRESULT Initialize
  411. (
  412. [in] IUnknown *piDfsRoot,
  413. [in] BSTR i_szEntryPath,
  414. [in] BOOL i_bReplicaSetExist,
  415. [in] BSTR i_bstrReplicaSetDN
  416. );
  417. [id(10), helpstring("Adds a Replica to the Junction Point.")]
  418. HRESULT AddReplica
  419. (
  420. [in] BSTR i_szServerName,
  421. [in] BSTR i_szShareName,
  422. [out, retval] VARIANT* o_pvarReplicaObject
  423. );
  424. [id(11), helpstring("Removes a Replica from the Junction Point.")]
  425. HRESULT RemoveReplica
  426. (
  427. [in] BSTR i_szServerName,
  428. [in] BSTR i_szShareName
  429. );
  430. [id(12), helpstring("Delete the Junction Point.")]
  431. HRESULT RemoveAllReplicas
  432. (
  433. );
  434. [id(13), helpstring("Deletes a Dfs root replica.")]
  435. HRESULT DeleteRootReplica
  436. (
  437. [in] BSTR i_bstrDomainName,
  438. [in] BSTR i_bstrDfsName,
  439. [in] BSTR i_bstrServerName,
  440. [in] BSTR i_bstrShareName,
  441. [in] BOOL i_bForce
  442. );
  443. [id(14), helpstring("Get info of a Dfs root replica")]
  444. HRESULT GetOneRootReplica
  445. (
  446. [out] BSTR* o_pbstrServerName,
  447. [out] BSTR* o_pbstrShareName
  448. );
  449. [id(15), helpstring("Initialize using buffer returned by NetDfsEnum")]
  450. HRESULT InitializeEx
  451. (
  452. [in] IUnknown *piDfsRoot,
  453. [in] VARIANT *pVar,
  454. [in] BOOL bReplicaSetExist,
  455. [in] BSTR bstrReplicaSetDN
  456. );
  457. [id(16), helpstring("refresh bReplicaSetExist and retrieve its value")]
  458. HRESULT get_ReplicaSetExistEx
  459. (
  460. [out] BSTR *pbstrDC,
  461. [out] BOOL *pVal
  462. );
  463. };
  464. ////////////////////////////////////////////////////////////////////////////////////
  465. // Interface IReplicaSet
  466. ////////////////////////////////////////////////////////////////////////////////////
  467. // Use this object for managing ntfrs replica set.
  468. //
  469. // To use this object, you first call Initialize on FQDN of an nTFRSReplicaSet object.
  470. //
  471. // The properties that are supported by IReplicaSet are -
  472. // Type - SYSVOL, Dfs, or non Dfs.
  473. // TopologyPref - Specifies the preferred topology for this replica set.
  474. // Hub - The hub server if TopologyPref is hub & spoke.
  475. // PrimaryMember - The primary server.
  476. // DfsEntryPath - If 'Type' is Dfs, it is the entry path of the associated Dfs root or link.
  477. [
  478. object,
  479. uuid(6DC4917C-7A5F-48F0-80CC-6E730B8423BF),
  480. dual,
  481. helpstring("IReplicaSet Interface"),
  482. pointer_default(unique)
  483. ]
  484. interface IReplicaSet : IDispatch
  485. {
  486. [propget, id(1), helpstring("property Type")]
  487. HRESULT Type
  488. (
  489. [out, retval] BSTR *pVal
  490. );
  491. [propput, id(1), helpstring("property Type")]
  492. HRESULT Type
  493. (
  494. [in] BSTR newVal
  495. );
  496. [propget, id(2), helpstring("property TopologyPref")]
  497. HRESULT TopologyPref
  498. (
  499. [out, retval] BSTR *pVal
  500. );
  501. [propput, id(2), helpstring("property TopologyPref")]
  502. HRESULT TopologyPref
  503. (
  504. [in] BSTR newVal
  505. );
  506. [propget, id(3), helpstring("property HubMemberDN")]
  507. HRESULT HubMemberDN
  508. (
  509. [out, retval] BSTR *pVal
  510. );
  511. [propput, id(3), helpstring("property HubMemberDN")]
  512. HRESULT HubMemberDN
  513. (
  514. [in] BSTR newVal
  515. );
  516. [propget, id(4), helpstring("property PrimaryMemberDN")]
  517. HRESULT PrimaryMemberDN
  518. (
  519. [out, retval] BSTR *pVal
  520. );
  521. [propput, id(4), helpstring("property PrimaryMemberDN")]
  522. HRESULT PrimaryMemberDN
  523. (
  524. [in] BSTR newVal
  525. );
  526. [propget, id(5), helpstring("property FileFilter")]
  527. HRESULT FileFilter
  528. (
  529. [out, retval] BSTR *pVal
  530. );
  531. [propput, id(5), helpstring("property FileFilter")]
  532. HRESULT FileFilter
  533. (
  534. [in] BSTR newVal
  535. );
  536. [propget, id(6), helpstring("property DirFilter")]
  537. HRESULT DirFilter
  538. (
  539. [out, retval] BSTR *pVal
  540. );
  541. [propput, id(6), helpstring("property DirFilter")]
  542. HRESULT DirFilter
  543. (
  544. [in] BSTR newVal
  545. );
  546. [propget, id(7), helpstring("property DfsEntryPath")]
  547. HRESULT DfsEntryPath
  548. (
  549. [out, retval] BSTR *pVal
  550. );
  551. [propget, id(8), helpstring("property Domain")]
  552. HRESULT Domain
  553. (
  554. [out, retval] BSTR *pVal
  555. );
  556. [propget, id(9), helpstring("property ReplicaSetDN")]
  557. HRESULT ReplicaSetDN
  558. (
  559. [out, retval] BSTR *pVal
  560. );
  561. [propget, id(10), helpstring("Number of Frs members")]
  562. HRESULT NumOfMembers
  563. (
  564. [out, retval] long *pVal
  565. );
  566. [propget, id(11), helpstring("Number of Frs connections")]
  567. HRESULT NumOfConnections
  568. (
  569. [out, retval] long *pVal
  570. );
  571. [propget, id(12), helpstring("targeted DC")]
  572. HRESULT TargetedDC
  573. (
  574. [out, retval] BSTR *pVal
  575. );
  576. [id(13), helpstring("method Initialize")]
  577. HRESULT Create
  578. (
  579. [in] BSTR i_bstrDomain,
  580. [in] BSTR i_bstrReplicaSetDN,
  581. [in] BSTR i_bstrType,
  582. [in] BSTR i_bstrTopologyPref,
  583. [in] BSTR i_bstrHubServer,
  584. [in] BSTR i_bstrPrimaryMember,
  585. [in] BSTR i_bstrFileFilter,
  586. [in] BSTR i_bstrDirFilter
  587. );
  588. [id(14), helpstring("method Initialize")]
  589. HRESULT Initialize
  590. (
  591. [in] BSTR i_bstrDomain,
  592. [in] BSTR i_bstrReplicaSetDN
  593. );
  594. [id(15), helpstring("return an array of member DNs.")]
  595. HRESULT GetMemberList
  596. (
  597. [out, retval] VARIANT* o_pvarMemberDNs
  598. );
  599. [id(16), helpstring("return an array of member infos, which is an array of BSTRs.")]
  600. HRESULT GetMemberListEx
  601. (
  602. [out, retval] VARIANT* o_pVal
  603. );
  604. [id(17), helpstring("Get info of one member.")]
  605. HRESULT GetMemberInfo
  606. (
  607. [in] BSTR i_bstrMemberDN,
  608. [out, retval] VARIANT* o_pvarMember
  609. );
  610. [id(18), helpstring("Find if a member exists.")]
  611. HRESULT IsFRSMember
  612. (
  613. [in] BSTR i_bstrDnsHostName,
  614. [in] BSTR i_bstrRootPath
  615. );
  616. [id(19), helpstring("Find if it is the hub member.")]
  617. HRESULT IsHubMember
  618. (
  619. [in] BSTR i_bstrDnsHostName,
  620. [in] BSTR i_bstrRootPath
  621. );
  622. [id(20), helpstring("Add one member.")]
  623. HRESULT AddMember
  624. (
  625. [in] BSTR i_bstrServer,
  626. [in] BSTR i_bstrRootPath,
  627. [in] BSTR i_bstrStagingPath,
  628. [in] BOOL i_bAddConnectionNow,
  629. [out, retval] BSTR* o_pbstrMemberDN
  630. );
  631. [id(21), helpstring("Remove one member.")]
  632. HRESULT RemoveMember
  633. (
  634. [in] BSTR i_bstrMemberDN
  635. );
  636. [id(22), helpstring("Remove one member.")]
  637. HRESULT RemoveMemberEx
  638. (
  639. [in] BSTR i_bstrDnsHostName,
  640. [in] BSTR i_bstrRootPath
  641. );
  642. [id(23), helpstring("Remove all members.")]
  643. HRESULT RemoveAllMembers
  644. (
  645. );
  646. [id(24), helpstring("return an array of connection DNs.")]
  647. HRESULT GetConnectionList
  648. (
  649. [out, retval] VARIANT* o_pvarConnectionDNs
  650. );
  651. [id(25), helpstring("return an array of connection infos, which is an array of BSTRs.")]
  652. HRESULT GetConnectionListEx
  653. (
  654. [out, retval] VARIANT* o_pVal
  655. );
  656. [id(26), helpstring("Get info of one connection.")]
  657. HRESULT GetConnectionInfo
  658. (
  659. [in] BSTR i_bstrConnectionDN,
  660. [out, retval] VARIANT* o_pvarConnection
  661. );
  662. [id(27), helpstring("Add one connection.")]
  663. HRESULT AddConnection
  664. (
  665. [in] BSTR i_bstrFromMemberDN,
  666. [in] BSTR i_bstrToMemberDN,
  667. [in] BOOL i_bEnable,
  668. [in] BOOL i_bSyncImmediately,
  669. [in] long i_nPriority,
  670. [out, retval] BSTR* o_pbstrConnectionDN
  671. );
  672. [id(28), helpstring("Remove one connection.")]
  673. HRESULT RemoveConnection
  674. (
  675. [in] BSTR i_bstrConnectionDN
  676. );
  677. [id(29), helpstring("Remove one connection.")]
  678. HRESULT RemoveConnectionEx
  679. (
  680. [in] BSTR i_bstrFromMemberDN,
  681. [in] BSTR i_bstrToMemberDN
  682. );
  683. [id(30), helpstring("Remove all connections.")]
  684. HRESULT RemoveAllConnections
  685. (
  686. );
  687. [id(31), helpstring("Enable/disbale one connection.")]
  688. HRESULT EnableConnection
  689. (
  690. [in] BSTR i_bstrConnectionDN,
  691. [in] BOOL i_bEnable
  692. );
  693. [id(32), helpstring("Enable/disbale one connection.")]
  694. HRESULT EnableConnectionEx
  695. (
  696. [in] BSTR i_bstrFromMemberDN,
  697. [in] BSTR i_bstrToMemberDN,
  698. [in] BOOL i_bEnable
  699. );
  700. [id(33), helpstring("Get schedule on one connection.")]
  701. HRESULT GetConnectionSchedule
  702. (
  703. [in] BSTR i_bstrConnectionDN,
  704. [out, retval] VARIANT* o_pVar
  705. );
  706. [id(34), helpstring("Get schedule on one connection.")]
  707. HRESULT GetConnectionScheduleEx
  708. (
  709. [in] BSTR i_bstrFromMemberDN,
  710. [in] BSTR i_bstrToMemberDN,
  711. [out, retval] VARIANT* o_pVar
  712. );
  713. [id(35), helpstring("Set schedule on one connection.")]
  714. HRESULT SetConnectionSchedule
  715. (
  716. [in] BSTR i_bstrConnectionDN,
  717. [in] VARIANT* i_pVar
  718. );
  719. [id(36), helpstring("Set schedule on one connection.")]
  720. HRESULT SetConnectionScheduleEx
  721. (
  722. [in] BSTR i_bstrFromMemberDN,
  723. [in] BSTR i_bstrToMemberDN,
  724. [in] VARIANT* i_pVar
  725. );
  726. [id(37), helpstring("Set schedule on all connections.")]
  727. HRESULT SetScheduleOnAllConnections
  728. (
  729. [in] VARIANT* i_pVar
  730. );
  731. [id(38), helpstring("Set options on one connection.")]
  732. HRESULT SetConnectionOptions
  733. (
  734. [in] BSTR i_bstrConnectionDN,
  735. [in] BOOL i_bSyncImmediately,
  736. [in] long i_nPriority
  737. );
  738. [id(39), helpstring("Set options on one connection.")]
  739. HRESULT SetConnectionOptionsEx
  740. (
  741. [in] BSTR i_bstrFromMemberDN,
  742. [in] BSTR i_bstrToMemberDN,
  743. [in] BOOL i_bSyncImmediately,
  744. [in] long i_nPriority
  745. );
  746. [id(40), helpstring("Create connections from scratch based on the current TopologyPref.")]
  747. HRESULT CreateConnections
  748. (
  749. );
  750. [id(41), helpstring("Delete the replica set.")]
  751. HRESULT Delete
  752. (
  753. );
  754. [id(42), helpstring("Get info of a possible bad member.")]
  755. HRESULT GetBadMemberInfo
  756. (
  757. [in] BSTR i_bstrServerName,
  758. [out, retval] VARIANT* o_pvarMember
  759. );
  760. };
  761. ////////////////////////////////////////////////////////////////////////////////////
  762. // The definition for the DFSCORELib Type Library.
  763. ////////////////////////////////////////////////////////////////////////////////////
  764. [
  765. uuid(A741D3E4-31BE-11D1-9A4A-0080ADAA5C4B),
  766. version(1.0),
  767. helpstring("DfsCore 1.0 Type Library")
  768. ]
  769. library DFSCORELib
  770. {
  771. importlib("stdole32.tlb");
  772. importlib("stdole2.tlb");
  773. [
  774. uuid(A741D3FB-31BE-11D1-9A4A-0080ADAA5C4B),
  775. helpstring("DfsRoot Class")
  776. ]
  777. coclass DfsRoot
  778. {
  779. [default] interface IDfsRoot;
  780. };
  781. [
  782. uuid(A741D3FE-31BE-11D1-9A4A-0080ADAA5C4B),
  783. helpstring("DfsReplica Class")
  784. ]
  785. coclass DfsReplica
  786. {
  787. [default] interface IDfsReplica;
  788. };
  789. [
  790. uuid(A741D400-31BE-11D1-9A4A-0080ADAA5C4B),
  791. helpstring("DfsJunctionPoint Class")
  792. ]
  793. coclass DfsJunctionPoint
  794. {
  795. [default] interface IDfsJunctionPoint;
  796. };
  797. [
  798. uuid(A741D403-31BE-11D1-9A4A-0080ADAA5C4B),
  799. helpstring("JunctionPointEnum Class")
  800. ]
  801. coclass JunctionPointEnum
  802. {
  803. [default] interface IUnknown;
  804. };
  805. [
  806. uuid(A741D404-31BE-11D1-9A4A-0080ADAA5C4B),
  807. helpstring("ReplicaEnum Class")
  808. ]
  809. coclass ReplicaEnum
  810. {
  811. [default] interface IUnknown;
  812. };
  813. [
  814. uuid(6DC4917D-7A5F-48F0-80CC-6E730B8423BF),
  815. helpstring("ReplicaSet Class")
  816. ]
  817. coclass ReplicaSet
  818. {
  819. [default] interface IReplicaSet;
  820. };
  821. };