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.

495 lines
14 KiB

  1. //
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. cpp_quote("/* Copyright (c) Microsoft Corporation. All rights reserved. */")
  4. // rend.idl : IDL source for rend.dll
  5. //
  6. // This file will be processed by the MIDL tool to
  7. // produce the type library (rend.tlb) and marshalling code.
  8. import "oaidl.idl";
  9. import "tapi3if.idl";
  10. // Conference and user object Interfaces
  11. const DISPID IDISPDIROBJECT = 0x00010000;
  12. const DISPID IDISPDIROBJCONFERENCE = 0x00020000;
  13. const DISPID IDISPDIROBJUSER = 0x00030000;
  14. // Directory object interfaces
  15. const DISPID IDISPDIRECTORY = 0x00010000;
  16. const DISPID IDISPILSCONFIG = 0x00020000;
  17. typedef enum DIRECTORY_TYPE
  18. {
  19. DT_NTDS = 1,
  20. DT_ILS = 2
  21. } DIRECTORY_TYPE;
  22. typedef enum DIRECTORY_OBJECT_TYPE
  23. {
  24. OT_CONFERENCE = 1,
  25. OT_USER = 2
  26. } DIRECTORY_OBJECT_TYPE;
  27. typedef enum RND_ADVERTISING_SCOPE
  28. {
  29. RAS_LOCAL = 1,
  30. RAS_SITE = 2,
  31. RAS_REGION = 3,
  32. RAS_WORLD = 4
  33. } RND_ADVERTISING_SCOPE;
  34. [
  35. object,
  36. uuid(F1029E5D-CB5B-11D0-8D59-00C04FD91AC0),
  37. dual,
  38. helpstring("Interface for conference announcements."),
  39. pointer_default(unique)
  40. ]
  41. interface ITDirectoryObjectConference : IDispatch
  42. {
  43. [propget, id(IDISPDIROBJCONFERENCE | 1), helpstring("The protocol used in describing the conference.")]
  44. HRESULT Protocol(
  45. [out, retval] BSTR *ppProtocol
  46. );
  47. [propget, id(IDISPDIROBJCONFERENCE | 2), helpstring("The originator of the conference.")]
  48. HRESULT Originator(
  49. [out, retval] BSTR *ppOriginator
  50. );
  51. [propput, id(IDISPDIROBJCONFERENCE | 2), helpstring("The originator of the conference.")]
  52. HRESULT Originator(
  53. [in] BSTR pOriginator
  54. );
  55. [propget, id(IDISPDIROBJCONFERENCE | 3), helpstring("The scope of the conference.")]
  56. HRESULT AdvertisingScope(
  57. [out, retval] RND_ADVERTISING_SCOPE *pAdvertisingScope
  58. );
  59. [propput, id(IDISPDIROBJCONFERENCE | 3), helpstring("The scope of the conference.")]
  60. HRESULT AdvertisingScope(
  61. [in] RND_ADVERTISING_SCOPE AdvertisingScope
  62. );
  63. [propget, id(IDISPDIROBJCONFERENCE | 4), helpstring("The Url for the conference.")]
  64. HRESULT Url(
  65. [out, retval] BSTR *ppUrl
  66. );
  67. [propput, id(IDISPDIROBJCONFERENCE | 4), helpstring("The Url for the conference.")]
  68. HRESULT Url(
  69. [in] BSTR pUrl
  70. );
  71. [propget, id(IDISPDIROBJCONFERENCE | 5), helpstring("The description of the conference.")]
  72. HRESULT Description(
  73. [out, retval] BSTR *ppDescription
  74. );
  75. [propput, id(IDISPDIROBJCONFERENCE | 5), helpstring("The description of the conference.")]
  76. HRESULT Description(
  77. [in] BSTR pDescription
  78. );
  79. [propget, id(IDISPDIROBJCONFERENCE | 6), helpstring("If the conference is encrypted.")]
  80. HRESULT IsEncrypted(
  81. [out, retval] VARIANT_BOOL *pfEncrypted
  82. );
  83. [propput, id(IDISPDIROBJCONFERENCE | 6), helpstring("If the conference is encrypted.")]
  84. HRESULT IsEncrypted(
  85. [in] VARIANT_BOOL fEncrypted
  86. );
  87. [propget, id(IDISPDIROBJCONFERENCE | 7), helpstring("The start time of the conference.")]
  88. HRESULT StartTime(
  89. [out, retval] DATE *pDate
  90. );
  91. [propput, id(IDISPDIROBJCONFERENCE | 7), helpstring("The start time of the conference.")]
  92. HRESULT StartTime(
  93. [in] DATE Date
  94. );
  95. [propget, id(IDISPDIROBJCONFERENCE | 8), helpstring("The stop time of the conference.")]
  96. HRESULT StopTime(
  97. [out, retval] DATE *pDate
  98. );
  99. [propput, id(IDISPDIROBJCONFERENCE | 8), helpstring("The stop time of the conference.")]
  100. HRESULT StopTime(
  101. [in] DATE Date
  102. );
  103. };
  104. [
  105. object,
  106. uuid(34621D6F-6CFF-11d1-AFF7-00C04FC31FEE),
  107. dual,
  108. helpstring("Interface for user object."),
  109. pointer_default(unique)
  110. ]
  111. interface ITDirectoryObjectUser : IDispatch
  112. {
  113. [propget, id(IDISPDIROBJUSER | 1), helpstring("The primary IP phone attribute.")]
  114. HRESULT IPPhonePrimary(
  115. [out, retval] BSTR *ppName
  116. );
  117. [propput, id(IDISPDIROBJUSER | 1), helpstring("The primary IP phone attribute.")]
  118. HRESULT IPPhonePrimary(
  119. [in] BSTR pName
  120. );
  121. };
  122. [
  123. uuid(34621D70-6CFF-11d1-AFF7-00C04FC31FEE),
  124. helpstring("IEnumDialableAddresses interface"),
  125. hidden,
  126. restricted,
  127. pointer_default(unique)
  128. ]
  129. interface IEnumDialableAddrs : IUnknown
  130. {
  131. HRESULT Next(
  132. [in] ULONG celt,
  133. [out, size_is(celt)] BSTR * ppElements,
  134. [in,out,ptr] ULONG * pcFetched
  135. );
  136. HRESULT Reset( void );
  137. HRESULT Skip (
  138. [in] ULONG celt
  139. );
  140. HRESULT Clone (
  141. [out, retval] IEnumDialableAddrs ** ppEnum
  142. );
  143. };
  144. [
  145. object,
  146. uuid(34621D6E-6CFF-11d1-AFF7-00C04FC31FEE),
  147. dual,
  148. helpstring("Interface for an object in the directory."),
  149. pointer_default(unique)
  150. ]
  151. interface ITDirectoryObject : IDispatch
  152. {
  153. [propget, id(IDISPDIROBJECT | 1), helpstring("The type of this object.")]
  154. HRESULT ObjectType(
  155. [out, retval] DIRECTORY_OBJECT_TYPE * pObjectType
  156. );
  157. [propget, id(IDISPDIROBJECT | 2), helpstring("The name of this object.")]
  158. HRESULT Name(
  159. [out, retval] BSTR *ppName
  160. );
  161. [propput, id(IDISPDIROBJECT | 2), helpstring("The name of this object.")]
  162. HRESULT Name(
  163. [in] BSTR pName
  164. );
  165. [propget, id(IDISPDIROBJECT | 3), helpstring("The addresses of the object that can be dialed.")]
  166. HRESULT DialableAddrs(
  167. [in] long dwAddressType, //defined in tapi.h
  168. [out, retval] VARIANT * pVariant
  169. );
  170. [id(IDISPDIROBJECT | 4), hidden, restricted, helpstring("method EnumerateDialableAddrs")]
  171. HRESULT EnumerateDialableAddrs(
  172. [in] DWORD dwAddressType, //defined in tapi.h
  173. [out] IEnumDialableAddrs ** ppEnumDialableAddrs
  174. );
  175. [propget, id(IDISPDIROBJECT | 5), helpstring("The security descriptor.")]
  176. HRESULT SecurityDescriptor(
  177. [out, retval] IDispatch ** ppSecDes
  178. );
  179. [propput, id(IDISPDIROBJECT | 5), helpstring("The security descriptor.")]
  180. HRESULT SecurityDescriptor(
  181. [in] IDispatch * pSecDes
  182. );
  183. };
  184. [
  185. object,
  186. uuid(06C9B64A-306D-11D1-9774-00C04FD91AC0),
  187. helpstring("IEnumDirectoryObject interface"),
  188. hidden,
  189. restricted,
  190. pointer_default(unique)
  191. ]
  192. interface IEnumDirectoryObject : IUnknown
  193. {
  194. HRESULT Next(
  195. [in] ULONG celt,
  196. [out, size_is(celt)] ITDirectoryObject **pVal,
  197. [in, out, ptr] ULONG * pcFetched
  198. );
  199. HRESULT Reset( void );
  200. HRESULT Skip (
  201. [in] ULONG celt
  202. );
  203. HRESULT Clone (
  204. [out, retval] IEnumDirectoryObject ** ppEnum
  205. );
  206. };
  207. [
  208. object,
  209. public,
  210. uuid(34621D72-6CFF-11d1-AFF7-00C04FC31FEE),
  211. dual,
  212. helpstring("Interface to configure ILS server.")
  213. ]
  214. interface ITILSConfig : IDispatch
  215. {
  216. [propget, id(IDISPILSCONFIG | 1), helpstring("The port the ILS server is listening on.")]
  217. HRESULT Port(
  218. [out, retval] long *pPort
  219. );
  220. [propput, id(IDISPILSCONFIG | 1), helpstring("The port the ILS server is listening on.")]
  221. HRESULT Port(
  222. [in] long Port
  223. );
  224. };
  225. [
  226. object,
  227. public,
  228. uuid(34621D6C-6CFF-11d1-AFF7-00C04FC31FEE),
  229. dual,
  230. helpstring("Interface to a generic directory service.")
  231. ]
  232. interface ITDirectory : IDispatch
  233. {
  234. // find the type of the directory, NTDS, ILS, etc.
  235. [propget, id(IDISPDIRECTORY | 1), helpstring("The type of the directory.")]
  236. HRESULT DirectoryType(
  237. [out, retval] DIRECTORY_TYPE * pDirectoryType
  238. );
  239. [propget, id(IDISPDIRECTORY | 2), helpstring("The name of the directory.")]
  240. HRESULT DisplayName(
  241. [out, retval] BSTR * pName
  242. );
  243. [propget, id(IDISPDIRECTORY | 3), helpstring("If the object on the server needs refresh.")]
  244. HRESULT IsDynamic(
  245. [out, retval] VARIANT_BOOL *pfDynamic
  246. );
  247. [propget, id(IDISPDIRECTORY | 4), helpstring("The default Time To Live value(in seconds) for object created. Only apply to dynamic servers.")]
  248. HRESULT DefaultObjectTTL(
  249. [out, retval] long *pTTL
  250. );
  251. [propput, id(IDISPDIRECTORY | 4), helpstring("The default Time To Live value(in seconds) for object created. Only apply to dynamic servers. Minimum 300 seconds.")]
  252. HRESULT DefaultObjectTTL(
  253. [in] long TTL
  254. );
  255. [id(IDISPDIRECTORY | 5), helpstring("Enable the auto refresh for object created afterwards. Only apply to dynamic servers.")]
  256. HRESULT EnableAutoRefresh(
  257. [in] VARIANT_BOOL fEnable
  258. );
  259. [id(IDISPDIRECTORY | 6), helpstring("Connect to the server.")]
  260. HRESULT Connect(
  261. [in] VARIANT_BOOL fSecure
  262. );
  263. [id(IDISPDIRECTORY | 7), helpstring("Bind to the server.")]
  264. HRESULT Bind(
  265. [in] BSTR pDomainName, // Can be NULL.
  266. [in] BSTR pUserName, // Can be NULL.
  267. [in] BSTR pPassword, // Can be NULL.
  268. [in] long lFlags
  269. );
  270. [id(IDISPDIRECTORY | 8), helpstring("Add an object to the server.")]
  271. HRESULT AddDirectoryObject(
  272. [in] ITDirectoryObject *pDirectoryObject
  273. );
  274. [id(IDISPDIRECTORY | 9), helpstring("Modify an object on the server.")]
  275. HRESULT ModifyDirectoryObject(
  276. [in] ITDirectoryObject *pDirectoryObject
  277. );
  278. [id(IDISPDIRECTORY | 10), helpstring("Refresh the TTL for an object on the server. Only apply to dynamic servers.")]
  279. HRESULT RefreshDirectoryObject(
  280. [in] ITDirectoryObject *pDirectoryObject
  281. );
  282. [id(IDISPDIRECTORY | 11), helpstring("Delete an object from the server.")]
  283. HRESULT DeleteDirectoryObject(
  284. [in] ITDirectoryObject *pDirectoryObject
  285. );
  286. [propget, id(IDISPDIRECTORY | 12), helpstring("All the objects on the server with specified type and name.")]
  287. HRESULT DirectoryObjects(
  288. [in] DIRECTORY_OBJECT_TYPE DirectoryObjectType,
  289. [in] BSTR pName,
  290. [out, retval] VARIANT * pVariant
  291. );
  292. [id(IDISPDIRECTORY | 13), hidden, restricted, helpstring("method EnumerateDirectoryObjects")]
  293. HRESULT EnumerateDirectoryObjects(
  294. [in] DIRECTORY_OBJECT_TYPE DirectoryObjectType,
  295. [in] BSTR pName,
  296. [out] IEnumDirectoryObject ** ppEnumObject
  297. );
  298. };
  299. [
  300. uuid(34621D6D-6CFF-11d1-AFF7-00C04FC31FEE),
  301. helpstring("IEnumDirectory interface"),
  302. hidden,
  303. restricted,
  304. pointer_default(unique)
  305. ]
  306. interface IEnumDirectory : IUnknown
  307. {
  308. HRESULT Next(
  309. [in] ULONG celt,
  310. [out, size_is(celt), length_is(*pcFetched)] ITDirectory ** ppElements,
  311. [in,out,ptr] ULONG * pcFetched
  312. );
  313. HRESULT Reset( void );
  314. HRESULT Skip (
  315. [in] ULONG celt
  316. );
  317. HRESULT Clone (
  318. [out, retval] IEnumDirectory ** ppEnum
  319. );
  320. };
  321. [
  322. object,
  323. public,
  324. uuid(34621D6B-6CFF-11d1-AFF7-00C04FC31FEE),
  325. dual,
  326. helpstring("Interface to access directories and obejcts.")
  327. ]
  328. interface ITRendezvous : IDispatch
  329. {
  330. [propget, id(1), helpstring("The default directories configured by system administrator.")]
  331. HRESULT DefaultDirectories(
  332. [out, retval] VARIANT * pVariant
  333. );
  334. [id(2), hidden, restricted, helpstring("method Enumerate directories")]
  335. HRESULT EnumerateDefaultDirectories(
  336. [out] IEnumDirectory ** ppEnumDirectory
  337. );
  338. [id(3), helpstring("Create a directory of given type and name.")]
  339. HRESULT CreateDirectory(
  340. [in] DIRECTORY_TYPE DirectoryType,
  341. [in] BSTR pName,
  342. [out, retval] ITDirectory ** ppDir
  343. );
  344. [id(4), helpstring("Create a new directory object.")]
  345. HRESULT CreateDirectoryObject(
  346. [in] DIRECTORY_OBJECT_TYPE DirectoryObjectType,
  347. [in] BSTR pName,
  348. [out, retval] ITDirectoryObject ** ppDirectoryObject
  349. );
  350. };
  351. cpp_quote("")
  352. cpp_quote("")
  353. cpp_quote("/***************************************************************/")
  354. cpp_quote("/* Rend constants -- defined here for C apps */")
  355. cpp_quote("/* The subsequent definitions that MIDL generates from the */")
  356. cpp_quote("/* module declaration are not used. The module declaration is */")
  357. cpp_quote("/* retained, however, so that the constants show up in the */")
  358. cpp_quote("/* type library. */")
  359. cpp_quote("/***************************************************************/")
  360. cpp_quote("")
  361. cpp_quote("#define RENDBIND_AUTHENTICATE 0x00000001")
  362. cpp_quote("#define RENDBIND_DEFAULTDOMAINNAME 0x00000002")
  363. cpp_quote("#define RENDBIND_DEFAULTUSERNAME 0x00000004")
  364. cpp_quote("#define RENDBIND_DEFAULTPASSWORD 0x00000008")
  365. cpp_quote("/* this is just the previous three |'ed together for convenience. */")
  366. cpp_quote("#define RENDBIND_DEFAULTCREDENTIALS 0x0000000e")
  367. cpp_quote("")
  368. cpp_quote("#define __RendConstants_MODULE_DEFINED__")
  369. cpp_quote("")
  370. cpp_quote("/***************************************************************/")
  371. cpp_quote("/* end of rend constants section */")
  372. cpp_quote("/***************************************************************/")
  373. cpp_quote("")
  374. cpp_quote("")
  375. [
  376. uuid(F1029E4D-CB5B-11D0-8D59-00C04FD91AC0),
  377. version(1.0),
  378. helpstring("Microsoft Rendezvous control 1.0 Type Library")
  379. ]
  380. library RENDLib
  381. {
  382. importlib("stdole2.tlb");
  383. interface ITRendezvous;
  384. interface ITDirectoryObjectConference;
  385. interface ITDirectoryObjectUser;
  386. interface ITDirectoryObject;
  387. interface ITILSConfig;
  388. interface ITDirectory;
  389. [
  390. uuid(F1029E5B-CB5B-11D0-8D59-00C04FD91AC0),
  391. helpstring("The Rendezvous Control Class")
  392. ]
  393. coclass Rendezvous
  394. {
  395. [default] interface ITRendezvous;
  396. };
  397. [
  398. uuid(A2382C3C-A108-11d2-B117-006008B0E5D2),
  399. dllname("rend.dll"),
  400. helpstring("TAPI 3.0 Rendezvous Control Constants")
  401. ]
  402. module RendConstants
  403. {
  404. const long RENDBIND_AUTHENTICATE = 0x00000001;
  405. const long RENDBIND_DEFAULTDOMAINNAME = 0x00000002;
  406. const long RENDBIND_DEFAULTUSERNAME = 0x00000004;
  407. const long RENDBIND_DEFAULTPASSWORD = 0x00000008;
  408. // this is just the previous three |'ed together for convenience.
  409. const long RENDBIND_DEFAULTCREDENTIALS = 0x0000000e;
  410. };
  411. };
  412. // eof