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.

1585 lines
41 KiB

  1. //
  2. // Copyright (c) 2000 Microsoft Corporation
  3. //
  4. cpp_quote("/* Copyright (c) 2000-2001 Microsoft Corporation */")
  5. //
  6. // RTCCore.idl : IDL source for RTCCore.dll
  7. //
  8. // This file will be processed by the MIDL tool to
  9. // produce the type library (RTCCore.tlb) and marshalling code.
  10. import "oaidl.idl";
  11. import "ocidl.idl";
  12. import "control.odl";
  13. // Types
  14. typedef enum RTC_AUDIO_DEVICE
  15. {
  16. RTCAD_SPEAKER,
  17. RTCAD_MICROPHONE
  18. } RTC_AUDIO_DEVICE;
  19. typedef enum RTC_VIDEO_DEVICE
  20. {
  21. RTCVD_RECEIVE,
  22. RTCVD_PREVIEW
  23. } RTC_VIDEO_DEVICE;
  24. typedef enum RTC_EVENT
  25. {
  26. RTCE_CLIENT,
  27. RTCE_REGISTRATION_STATE_CHANGE,
  28. RTCE_SESSION_STATE_CHANGE,
  29. RTCE_SESSION_OPERATION_COMPLETE,
  30. RTCE_PARTICIPANT_STATE_CHANGE,
  31. RTCE_MEDIA,
  32. RTCE_INTENSITY,
  33. RTCE_MESSAGING,
  34. RTCE_BUDDY,
  35. RTCE_WATCHER,
  36. RTCE_PROFILE
  37. } RTC_EVENT;
  38. typedef enum RTC_LISTEN_MODE
  39. {
  40. RTCLM_NONE,
  41. RTCLM_DYNAMIC,
  42. RTCLM_BOTH
  43. } RTC_LISTEN_MODE;
  44. typedef enum RTC_CLIENT_EVENT_TYPE
  45. {
  46. RTCCET_VOLUME_CHANGE,
  47. RTCCET_DEVICE_CHANGE,
  48. RTCCET_NETWORK_QUALITY_CHANGE,
  49. RTCCET_ASYNC_CLEANUP_DONE
  50. } RTC_CLIENT_EVENT_TYPE;
  51. typedef enum RTC_TERMINATE_REASON
  52. {
  53. RTCTR_NORMAL,
  54. RTCTR_DND,
  55. RTCTR_BUSY,
  56. RTCTR_REJECT,
  57. RTCTR_TIMEOUT,
  58. RTCTR_SHUTDOWN
  59. } RTC_TERMINATE_REASON;
  60. typedef enum RTC_REGISTRATION_STATE
  61. {
  62. RTCRS_NOT_REGISTERED,
  63. RTCRS_REGISTERING,
  64. RTCRS_REGISTERED,
  65. RTCRS_REJECTED,
  66. RTCRS_UNREGISTERING,
  67. RTCRS_ERROR,
  68. RTCRS_LOGGED_OFF,
  69. RTCRS_LOCAL_PA_LOGGED_OFF,
  70. RTCRS_REMOTE_PA_LOGGED_OFF
  71. } RTC_REGISTRATION_STATE;
  72. typedef enum RTC_SESSION_STATE
  73. {
  74. RTCSS_IDLE,
  75. RTCSS_INCOMING,
  76. RTCSS_ANSWERING,
  77. RTCSS_INPROGRESS,
  78. RTCSS_CONNECTED,
  79. RTCSS_DISCONNECTED
  80. } RTC_SESSION_STATE;
  81. typedef enum RTC_PARTICIPANT_STATE
  82. {
  83. RTCPS_IDLE,
  84. RTCPS_PENDING,
  85. RTCPS_INCOMING,
  86. RTCPS_ANSWERING,
  87. RTCPS_INPROGRESS,
  88. RTCPS_ALERTING,
  89. RTCPS_CONNECTED,
  90. RTCPS_DISCONNECTING,
  91. RTCPS_DISCONNECTED
  92. } RTC_PARTICIPANT_STATE;
  93. typedef enum RTC_WATCHER_STATE
  94. {
  95. RTCWS_UNKNOWN,
  96. RTCWS_OFFERING,
  97. RTCWS_ALLOWED,
  98. RTCWS_BLOCKED
  99. } RTC_WATCHER_STATE;
  100. typedef enum RTC_OFFER_WATCHER_MODE
  101. {
  102. RTCOWM_OFFER_WATCHER_EVENT,
  103. RTCOWM_AUTOMATICALLY_ADD_WATCHER
  104. } RTC_OFFER_WATCHER_MODE;
  105. typedef enum RTC_PRIVACY_MODE
  106. {
  107. RTCPM_BLOCK_LIST_EXCLUDED,
  108. RTCPM_ALLOW_LIST_ONLY
  109. } RTC_PRIVACY_MODE;
  110. typedef enum RTC_SESSION_TYPE
  111. {
  112. RTCST_PC_TO_PC,
  113. RTCST_PC_TO_PHONE,
  114. RTCST_PHONE_TO_PHONE,
  115. RTCST_IM
  116. } RTC_SESSION_TYPE;
  117. typedef enum RTC_PRESENCE_STATUS
  118. {
  119. RTCXS_PRESENCE_OFFLINE,
  120. RTCXS_PRESENCE_ONLINE,
  121. RTCXS_PRESENCE_AWAY,
  122. RTCXS_PRESENCE_IDLE,
  123. RTCXS_PRESENCE_BUSY,
  124. RTCXS_PRESENCE_BE_RIGHT_BACK,
  125. RTCXS_PRESENCE_ON_THE_PHONE,
  126. RTCXS_PRESENCE_OUT_TO_LUNCH
  127. } RTC_PRESENCE_STATUS;
  128. typedef enum RTC_MEDIA_EVENT_TYPE
  129. {
  130. RTCMET_STOPPED,
  131. RTCMET_STARTED,
  132. RTCMET_FAILED
  133. } RTC_MEDIA_EVENT_TYPE;
  134. typedef enum RTC_MEDIA_EVENT_REASON
  135. {
  136. RTCMER_NORMAL,
  137. RTCMER_HOLD,
  138. RTCMER_TIMEOUT,
  139. RTCMER_BAD_DEVICE
  140. } RTC_MEDIA_EVENT_REASON;
  141. typedef enum RTC_MESSAGING_EVENT_TYPE
  142. {
  143. RTCMSET_MESSAGE,
  144. RTCMSET_STATUS,
  145. } RTC_MESSAGING_EVENT_TYPE;
  146. typedef enum RTC_MESSAGING_USER_STATUS
  147. {
  148. RTCMUS_IDLE,
  149. RTCMUS_TYPING
  150. } RTC_MESSAGING_USER_STATUS;
  151. typedef enum RTC_DTMF
  152. {
  153. RTC_DTMF_0,
  154. RTC_DTMF_1,
  155. RTC_DTMF_2,
  156. RTC_DTMF_3,
  157. RTC_DTMF_4,
  158. RTC_DTMF_5,
  159. RTC_DTMF_6,
  160. RTC_DTMF_7,
  161. RTC_DTMF_8,
  162. RTC_DTMF_9,
  163. RTC_DTMF_STAR,
  164. RTC_DTMF_POUND,
  165. RTC_DTMF_A,
  166. RTC_DTMF_B,
  167. RTC_DTMF_C,
  168. RTC_DTMF_D,
  169. RTC_DTMF_FLASH
  170. } RTC_DTMF;
  171. typedef enum RTC_PROVIDER_URI
  172. {
  173. RTCPU_URIHOMEPAGE,
  174. RTCPU_URIHELPDESK,
  175. RTCPU_URIPERSONALACCOUNT,
  176. RTCPU_URIDISPLAYDURINGCALL,
  177. RTCPU_URIDISPLAYDURINGIDLE
  178. } RTC_PROVIDER_URI;
  179. typedef enum RTC_RING_TYPE
  180. {
  181. RTCRT_PHONE,
  182. RTCRT_MESSAGE,
  183. RTCRT_RINGBACK
  184. } RTC_RING_TYPE;
  185. typedef enum RTC_T120_APPLET
  186. {
  187. RTCTA_WHITEBOARD,
  188. RTCTA_APPSHARING
  189. } RTC_T120_APPLET;
  190. typedef enum RTC_PORT_TYPE
  191. {
  192. RTCPT_AUDIO_RTP,
  193. RTCPT_AUDIO_RTCP
  194. } RTC_PORT_TYPE;
  195. cpp_quote("#define RTCCS_FORCE_PROFILE 0x00000001")
  196. cpp_quote("#define RTCCS_FAIL_ON_REDIRECT 0x00000002")
  197. // Media Types
  198. cpp_quote("#define RTCMT_AUDIO_SEND 0x00000001")
  199. cpp_quote("#define RTCMT_AUDIO_RECEIVE 0x00000002")
  200. cpp_quote("#define RTCMT_VIDEO_SEND 0x00000004")
  201. cpp_quote("#define RTCMT_VIDEO_RECEIVE 0x00000008")
  202. cpp_quote("#define RTCMT_T120_SENDRECV 0x00000010")
  203. cpp_quote("#define RTCMT_ALL_RTP ( \\")
  204. cpp_quote(" RTCMT_AUDIO_SEND | \\")
  205. cpp_quote(" RTCMT_AUDIO_RECEIVE | \\")
  206. cpp_quote(" RTCMT_VIDEO_SEND | \\")
  207. cpp_quote(" RTCMT_VIDEO_RECEIVE ) ")
  208. cpp_quote("#define RTCMT_ALL ( \\")
  209. cpp_quote(" RTCMT_ALL_RTP | \\")
  210. cpp_quote(" RTCMT_T120_SENDRECV ) ")
  211. // Session Info
  212. cpp_quote("#define RTCSI_PC_TO_PC 0x00000001")
  213. cpp_quote("#define RTCSI_PC_TO_PHONE 0x00000002")
  214. cpp_quote("#define RTCSI_PHONE_TO_PHONE 0x00000004")
  215. cpp_quote("#define RTCSI_IM 0x00000008")
  216. // Transports
  217. cpp_quote("#define RTCTR_UDP 0x00000001")
  218. cpp_quote("#define RTCTR_TCP 0x00000002")
  219. cpp_quote("#define RTCTR_TLS 0x00000004")
  220. // Registration Flags
  221. cpp_quote("#define RTCRF_REGISTER_INVITE_SESSIONS 0x00000001")
  222. cpp_quote("#define RTCRF_REGISTER_MESSAGE_SESSIONS 0x00000002")
  223. cpp_quote("#define RTCRF_REGISTER_PRESENCE 0x00000004")
  224. cpp_quote("#define RTCRF_REGISTER_ALL 0x00000007")
  225. // Event Filters
  226. cpp_quote("#define RTCEF_CLIENT 0x00000001")
  227. cpp_quote("#define RTCEF_REGISTRATION_STATE_CHANGE 0x00000002")
  228. cpp_quote("#define RTCEF_SESSION_STATE_CHANGE 0x00000004")
  229. cpp_quote("#define RTCEF_SESSION_OPERATION_COMPLETE 0x00000008")
  230. cpp_quote("#define RTCEF_PARTICIPANT_STATE_CHANGE 0x00000010")
  231. cpp_quote("#define RTCEF_MEDIA 0x00000020")
  232. cpp_quote("#define RTCEF_INTENSITY 0x00000040")
  233. cpp_quote("#define RTCEF_MESSAGING 0x00000080")
  234. cpp_quote("#define RTCEF_BUDDY 0x00000100")
  235. cpp_quote("#define RTCEF_WATCHER 0x00000200")
  236. cpp_quote("#define RTCEF_PROFILE 0x00000400")
  237. cpp_quote("#define RTCEF_ALL 0x000007FF")
  238. // Forward Definitions
  239. interface IRTCClient;
  240. interface IRTCClientPresence;
  241. interface IRTCClientProvisioning;
  242. interface IRTCProfile;
  243. interface IRTCSession;
  244. interface IRTCParticipant;
  245. interface IRTCEventNotification;
  246. interface IRTCEnumProfiles;
  247. interface IRTCEnumParticipants;
  248. interface IRTCCollection;
  249. interface IRTCEnumBuddies;
  250. interface IRTCBuddy;
  251. interface IRTCEnumWatchers;
  252. interface IRTCWatcher;
  253. [
  254. object,
  255. uuid(07829e45-9a34-408e-a011-bddf13487cd1),
  256. helpstring("IRTCClient Interface"),
  257. pointer_default(unique)
  258. ]
  259. interface IRTCClient : IUnknown
  260. {
  261. // initialize, shutdown
  262. [helpstring("method Initialize")]
  263. HRESULT Initialize();
  264. [helpstring("method Shutdown")]
  265. HRESULT Shutdown();
  266. [helpstring("method PrepareForShutdown")]
  267. HRESULT PrepareForShutdown();
  268. // events
  269. [propput, helpstring("property EventFilter")]
  270. HRESULT EventFilter(
  271. [in] long lFilter
  272. );
  273. [propget, helpstring("property EventFilter")]
  274. HRESULT EventFilter(
  275. [out, retval] long * plFilter
  276. );
  277. // media preferences/capabilities
  278. [helpstring("method SetPreferredMediaTypes")]
  279. HRESULT SetPreferredMediaTypes(
  280. [in] long lMediaTypes,
  281. [in] VARIANT_BOOL fPersistent
  282. );
  283. [propget, helpstring("property PreferredMediaTypes")]
  284. HRESULT PreferredMediaTypes(
  285. [out, retval] long * plMediaTypes
  286. );
  287. [propget, helpstring("property MediaCapabilities")]
  288. HRESULT MediaCapabilities(
  289. [out, retval] long * plMediaTypes
  290. );
  291. // sessions
  292. [helpstring("method CreateSession")]
  293. HRESULT CreateSession(
  294. [in] RTC_SESSION_TYPE enType,
  295. [in] BSTR bstrLocalPhoneURI,
  296. [in] IRTCProfile * pProfile,
  297. [in] long lFlags,
  298. [out, retval] IRTCSession ** ppSession
  299. );
  300. // listen mode
  301. [propput, helpstring("property ListenForIncomingSessions")]
  302. HRESULT ListenForIncomingSessions(
  303. [in] RTC_LISTEN_MODE enListen
  304. );
  305. [propget, helpstring("property ListenForIncomingSessions")]
  306. HRESULT ListenForIncomingSessions(
  307. [out, retval] RTC_LISTEN_MODE * penListen
  308. );
  309. // addresses & ports
  310. [propget, helpstring("property NetworkAddresses")]
  311. HRESULT NetworkAddresses(
  312. [in] VARIANT_BOOL fTCP,
  313. [in] VARIANT_BOOL fExternal,
  314. [out, retval] VARIANT * pvAddresses
  315. );
  316. // audio control
  317. [propput, helpstring("property Volume")]
  318. HRESULT Volume(
  319. [in] RTC_AUDIO_DEVICE enDevice,
  320. [in] long lVolume
  321. );
  322. [propget, helpstring("property Volume")]
  323. HRESULT Volume(
  324. [in] RTC_AUDIO_DEVICE enDevice,
  325. [out, retval] long * plVolume
  326. );
  327. [propput, helpstring("property AudioMuted")]
  328. HRESULT AudioMuted(
  329. [in] RTC_AUDIO_DEVICE enDevice,
  330. [in] VARIANT_BOOL fMuted
  331. );
  332. [propget, helpstring("property AudioMuted")]
  333. HRESULT AudioMuted(
  334. [in] RTC_AUDIO_DEVICE enDevice,
  335. [out, retval] VARIANT_BOOL * pfMuted
  336. );
  337. // video window
  338. [propget, helpstring("property IVideoWindow")]
  339. HRESULT IVideoWindow(
  340. [in] RTC_VIDEO_DEVICE enDevice,
  341. [out, retval] IVideoWindow ** ppIVideoWindow
  342. );
  343. // audio/video settings
  344. [propput, helpstring("property PreferredAudioDevice")]
  345. HRESULT PreferredAudioDevice(
  346. [in] RTC_AUDIO_DEVICE enDevice,
  347. [in] BSTR bstrDeviceName
  348. );
  349. [propget, helpstring("property PreferredAudioDevice")]
  350. HRESULT PreferredAudioDevice(
  351. [in] RTC_AUDIO_DEVICE enDevice,
  352. [out, retval] BSTR * pbstrDeviceName
  353. );
  354. [propput, helpstring("property PreferredVolume")]
  355. HRESULT PreferredVolume(
  356. [in] RTC_AUDIO_DEVICE enDevice,
  357. [in] long lVolume
  358. );
  359. [propget, helpstring("property PreferredVolume")]
  360. HRESULT PreferredVolume(
  361. [in] RTC_AUDIO_DEVICE enDevice,
  362. [out, retval] long * plVolume
  363. );
  364. [propput, helpstring("property PreferredAEC")]
  365. HRESULT PreferredAEC(
  366. [in] VARIANT_BOOL bEnable
  367. );
  368. [propget, helpstring("property PreferredAEC")]
  369. HRESULT PreferredAEC(
  370. [out, retval] VARIANT_BOOL * pbEnabled
  371. );
  372. [propput, helpstring("property PreferredVideoDevice")]
  373. HRESULT PreferredVideoDevice(
  374. [in] BSTR bstrDeviceName
  375. );
  376. [propget, helpstring("property PreferredVideoDevice")]
  377. HRESULT PreferredVideoDevice(
  378. [out, retval] BSTR * pbstrDeviceName
  379. );
  380. // active media
  381. [propget, helpstring("property ActiveMedia")]
  382. HRESULT ActiveMedia(
  383. [out, retval] long * plMediaType
  384. );
  385. // Network quality
  386. [propput, helpstring("property MaxBitrate")]
  387. HRESULT MaxBitrate(
  388. [in] long lMaxBitrate
  389. );
  390. [propget, helpstring("property MaxBitrate")]
  391. HRESULT MaxBitrate(
  392. [out, retval] long * plMaxBitrate
  393. );
  394. [propput, helpstring("property TemporalSpatialTradeOff")]
  395. HRESULT TemporalSpatialTradeOff(
  396. [in] long lValue
  397. );
  398. [propget, helpstring("property TemporalSpatialTradeOff")]
  399. HRESULT TemporalSpatialTradeOff(
  400. [out, retval] long * plValue
  401. );
  402. [propget, helpstring("property NetworkQuality")]
  403. HRESULT NetworkQuality(
  404. [out, retval] long * plNetworkQuality
  405. );
  406. // T120 applet control
  407. [helpstring("method StartT120Applet")]
  408. HRESULT StartT120Applet(
  409. [in] RTC_T120_APPLET enApplet
  410. );
  411. [helpstring("method StopT120Applets")]
  412. HRESULT StopT120Applets();
  413. [propget, helpstring("property IsT120AppletRunning")]
  414. HRESULT IsT120AppletRunning(
  415. [in] RTC_T120_APPLET enApplet,
  416. [out, retval] VARIANT_BOOL * pfRunning
  417. );
  418. // local user info
  419. [propget, helpstring("property LocalUserURI")]
  420. HRESULT LocalUserURI(
  421. [out, retval] BSTR * pbstrUserURI
  422. );
  423. [propput, helpstring("property LocalUserURI")]
  424. HRESULT LocalUserURI(
  425. [in] BSTR bstrUserURI
  426. );
  427. [propget, helpstring("property LocalUserName")]
  428. HRESULT LocalUserName(
  429. [out, retval] BSTR * pbstrUserName
  430. );
  431. [propput, helpstring("property LocalUserName")]
  432. HRESULT LocalUserName(
  433. [in] BSTR bstrUserName
  434. );
  435. // other
  436. [helpstring("method PlayRing")]
  437. HRESULT PlayRing(
  438. [in] RTC_RING_TYPE enType,
  439. [in] VARIANT_BOOL bPlay
  440. );
  441. [helpstring("method SendDTMF")]
  442. HRESULT SendDTMF(
  443. [in] RTC_DTMF enDTMF
  444. );
  445. [helpstring("method InvokeTuningWizard")]
  446. HRESULT InvokeTuningWizard(
  447. [in] OAHWND hwndParent
  448. );
  449. [propget, helpstring("property IsTuned")]
  450. HRESULT IsTuned(
  451. [out, retval] VARIANT_BOOL * pfTuned
  452. );
  453. }
  454. [
  455. object,
  456. uuid(11c3cbcc-0744-42d1-968a-51aa1bb274c6),
  457. helpstring("IRTCClientPresence Interface"),
  458. pointer_default(unique)
  459. ]
  460. interface IRTCClientPresence : IUnknown
  461. {
  462. // enable
  463. [helpstring("method EnablePresence")]
  464. HRESULT EnablePresence(
  465. [in] VARIANT_BOOL fUseStorage,
  466. [in] VARIANT varStorage
  467. );
  468. // snapshots & import/export
  469. [helpstring("method Export")]
  470. HRESULT Export(
  471. [in] VARIANT varStorage
  472. );
  473. [helpstring("method Import")]
  474. HRESULT Import(
  475. [in] VARIANT varStorage,
  476. [in] VARIANT_BOOL fReplaceAll
  477. );
  478. // buddies
  479. [hidden, helpstring("method EnumerateBuddies")]
  480. HRESULT EnumerateBuddies(
  481. [out, retval] IRTCEnumBuddies ** ppEnum
  482. );
  483. [propget, helpstring("property Buddies")]
  484. HRESULT Buddies(
  485. [out, retval] IRTCCollection ** ppCollection
  486. );
  487. [propget, helpstring("property Buddy")]
  488. HRESULT Buddy(
  489. [in] BSTR bstrPresentityURI,
  490. [out, retval] IRTCBuddy **ppBuddy
  491. );
  492. [helpstring("method AddBuddy")]
  493. HRESULT AddBuddy(
  494. [in] BSTR bstrPresentityURI,
  495. [in] BSTR bstrUserName,
  496. [in] BSTR bstrData,
  497. [in] VARIANT_BOOL fPersistent,
  498. [in] IRTCProfile * pProfile,
  499. [in] long lFlags,
  500. [out, retval] IRTCBuddy **ppBuddy
  501. );
  502. [helpstring("method RemoveBuddy")]
  503. HRESULT RemoveBuddy(
  504. [in] IRTCBuddy *pBuddy
  505. );
  506. // watchers
  507. [hidden, helpstring("method EnumerateWatchers")]
  508. HRESULT EnumerateWatchers(
  509. [out, retval] IRTCEnumWatchers ** ppEnum
  510. );
  511. [propget, helpstring("property Watchers")]
  512. HRESULT Watchers(
  513. [out, retval] IRTCCollection ** ppCollection
  514. );
  515. [propget, helpstring("property Watcher")]
  516. HRESULT Watcher(
  517. [in] BSTR bstrPresentityURI,
  518. [out, retval] IRTCWatcher **ppWatcher
  519. );
  520. [helpstring("method AddWatcher")]
  521. HRESULT AddWatcher(
  522. [in] BSTR bstrPresentityURI,
  523. [in] BSTR bstrUserName,
  524. [in] BSTR bstrData,
  525. [in] VARIANT_BOOL fBlocked,
  526. [in] VARIANT_BOOL fPersistent,
  527. [out, retval] IRTCWatcher **ppWatcher
  528. );
  529. [helpstring("method RemoveWatcher")]
  530. HRESULT RemoveWatcher(
  531. [in] IRTCWatcher *pWatcher
  532. );
  533. [helpstring("method SetLocalPresenceInfo")]
  534. HRESULT SetLocalPresenceInfo(
  535. [in] RTC_PRESENCE_STATUS enStatus,
  536. [in] BSTR bstrNotes
  537. );
  538. // policies
  539. [propget, helpstring("property OfferWatcherMode")]
  540. HRESULT OfferWatcherMode(
  541. [out, retval] RTC_OFFER_WATCHER_MODE * penMode
  542. );
  543. [propput, helpstring("property OfferWatcherMode")]
  544. HRESULT OfferWatcherMode(
  545. [in] RTC_OFFER_WATCHER_MODE enMode
  546. );
  547. [propget, helpstring("property PrivacyMode")]
  548. HRESULT PrivacyMode(
  549. [out, retval] RTC_PRIVACY_MODE * penMode
  550. );
  551. [propput, helpstring("property PrivacyMode")]
  552. HRESULT PrivacyMode(
  553. [in] RTC_PRIVACY_MODE enMode
  554. );
  555. }
  556. [
  557. object,
  558. uuid(B9F5CF06-65B9-4a80-A0E6-73CAE3EF3822),
  559. helpstring("IRTCClientProvisioning Interface"),
  560. pointer_default(unique)
  561. ]
  562. interface IRTCClientProvisioning : IUnknown
  563. {
  564. [helpstring("method CreateProfile")]
  565. HRESULT CreateProfile(
  566. [in] BSTR bstrProfileXML,
  567. [out, retval] IRTCProfile ** ppProfile
  568. );
  569. [helpstring("method EnableProfile")]
  570. HRESULT EnableProfile(
  571. [in] IRTCProfile * pProfile,
  572. [in] long lRegisterFlags
  573. );
  574. [helpstring("method DisableProfile")]
  575. HRESULT DisableProfile(
  576. [in] IRTCProfile * pProfile
  577. );
  578. [hidden, helpstring("method EnumerateProfiles")]
  579. HRESULT EnumerateProfiles(
  580. [out, retval] IRTCEnumProfiles ** ppEnum
  581. );
  582. [propget, helpstring("property Profiles")]
  583. HRESULT Profiles(
  584. [out, retval] IRTCCollection ** ppCollection
  585. );
  586. [helpstring("method GetProfile")]
  587. HRESULT GetProfile(
  588. [in] BSTR bstrUserAccount,
  589. [in] BSTR bstrUserPassword,
  590. [in] BSTR bstrUserURI,
  591. [in] BSTR bstrServer,
  592. [in] long lTransport,
  593. [in] long lCookie
  594. );
  595. [propget, helpstring("property SessionCapabilities")]
  596. HRESULT SessionCapabilities(
  597. [out, retval] long * plSupportedSessions);
  598. };
  599. [
  600. object,
  601. uuid(d07eca9e-4062-4dd4-9e7d-722a49ba7303),
  602. helpstring("IRTCProfile Interface"),
  603. pointer_default(unique)
  604. ]
  605. interface IRTCProfile : IUnknown
  606. {
  607. [propget, helpstring("property Key")]
  608. HRESULT Key(
  609. [out, retval] BSTR * pbstrKey);
  610. [propget, helpstring("property Name")]
  611. HRESULT Name(
  612. [out, retval] BSTR * pbstrName);
  613. [propget, helpstring("property XML")]
  614. HRESULT XML(
  615. [out, retval] BSTR * pbstrXML);
  616. // Provider
  617. [propget, helpstring("property ProviderName")]
  618. HRESULT ProviderName(
  619. [out, retval] BSTR * pbstrName);
  620. [propget, helpstring("property ProviderURI")]
  621. HRESULT ProviderURI(
  622. [in] RTC_PROVIDER_URI enURI,
  623. [out, retval] BSTR * pbstrURI);
  624. [propget, helpstring("property ProviderData")]
  625. HRESULT ProviderData(
  626. [out, retval] BSTR * pbstrData);
  627. // Client
  628. [propget, helpstring("property ClientName")]
  629. HRESULT ClientName(
  630. [out, retval] BSTR * pbstrName);
  631. [propget, helpstring("property ClientBanner")]
  632. HRESULT ClientBanner(
  633. [out, retval] VARIANT_BOOL * pfBanner);
  634. [propget, helpstring("property ClientMinVer")]
  635. HRESULT ClientMinVer(
  636. [out, retval] BSTR * pbstrMinVer);
  637. [propget, helpstring("property ClientCurVer")]
  638. HRESULT ClientCurVer(
  639. [out, retval] BSTR * pbstrCurVer);
  640. [propget, helpstring("property ClientUpdateURI")]
  641. HRESULT ClientUpdateURI(
  642. [out, retval] BSTR * pbstrUpdateURI);
  643. [propget, helpstring("property ClientData")]
  644. HRESULT ClientData(
  645. [out, retval] BSTR * pbstrData);
  646. // User
  647. [propget, helpstring("property UserURI")]
  648. HRESULT UserURI(
  649. [out, retval] BSTR * pbstrUserURI);
  650. [propget, helpstring("property UserName")]
  651. HRESULT UserName(
  652. [out, retval] BSTR * pbstrUserName);
  653. [propget, helpstring("property UserAccount")]
  654. HRESULT UserAccount(
  655. [out, retval] BSTR * pbstrUserAccount);
  656. [helpstring("method SetCredentials")]
  657. HRESULT SetCredentials(
  658. [in] BSTR bstrUserURI,
  659. [in] BSTR bstrUserAccount,
  660. [in] BSTR bstrPassword);
  661. // Server
  662. [propget, helpstring("property SessionCapabilities")]
  663. HRESULT SessionCapabilities(
  664. [out, retval] long * plSupportedSessions);
  665. // Registration
  666. [propget, helpstring("property State")]
  667. HRESULT State(
  668. [out, retval] RTC_REGISTRATION_STATE * penState);
  669. };
  670. [
  671. object,
  672. uuid(387c8086-99be-42fb-9973-7c0fc0ca9fa8),
  673. helpstring("IRTCSession Interface"),
  674. pointer_default(unique)
  675. ]
  676. interface IRTCSession : IUnknown
  677. {
  678. // properties
  679. [propget, helpstring("property Client")]
  680. HRESULT Client(
  681. [out, retval] IRTCClient **ppClient
  682. );
  683. [propget, helpstring("property State")]
  684. HRESULT State(
  685. [out, retval] RTC_SESSION_STATE * penState
  686. );
  687. [propget, helpstring("property Type")]
  688. HRESULT Type(
  689. [out, retval] RTC_SESSION_TYPE * penType
  690. );
  691. [propget, helpstring("property Profile")]
  692. HRESULT Profile(
  693. [out, retval] IRTCProfile ** ppProfile
  694. );
  695. [propget, helpstring("property Participants")]
  696. HRESULT Participants(
  697. [out, retval] IRTCCollection ** ppCollection
  698. );
  699. // call control
  700. [helpstring("method Answer")]
  701. HRESULT Answer();
  702. [helpstring("method Terminate")]
  703. HRESULT Terminate(
  704. [in] RTC_TERMINATE_REASON enReason
  705. );
  706. [helpstring("method Redirect")]
  707. HRESULT Redirect(
  708. [in] RTC_SESSION_TYPE enType,
  709. [in] BSTR bstrLocalPhoneURI,
  710. [in] IRTCProfile * pProfile,
  711. [in] long lFlags
  712. );
  713. [helpstring("method AddParticipant")]
  714. HRESULT AddParticipant(
  715. [in] BSTR bstrAddress,
  716. [in] BSTR bstrName,
  717. [out, retval] IRTCParticipant ** ppParticipant
  718. );
  719. [helpstring("method RemoveParticipant")]
  720. HRESULT RemoveParticipant(
  721. [in] IRTCParticipant * pParticipant
  722. );
  723. [hidden, helpstring("method EnumerateParticipants")]
  724. HRESULT EnumerateParticipants(
  725. [out, retval] IRTCEnumParticipants ** ppEnum
  726. );
  727. [propget, helpstring("property CanAddParticipants")]
  728. HRESULT CanAddParticipants(
  729. [out, retval] VARIANT_BOOL * pfCanAdd
  730. );
  731. // redirection context control
  732. [propget, helpstring("property RedirectedUserURI")]
  733. HRESULT RedirectedUserURI(
  734. [out, retval] BSTR * pbstrUserURI
  735. );
  736. [propget, helpstring("property RedirectedUserName")]
  737. HRESULT RedirectedUserName(
  738. [out, retval] BSTR * pbstrUserName
  739. );
  740. [helpstring("method NextRedirectedUser")]
  741. HRESULT NextRedirectedUser();
  742. // instant messaging
  743. [helpstring("method SendMessage")]
  744. HRESULT SendMessage(
  745. [in] BSTR bstrMessageHeader,
  746. [in] BSTR bstrMessage,
  747. [in] long lCookie
  748. );
  749. [helpstring("method SendMessageStatus")]
  750. HRESULT SendMessageStatus(
  751. [in] RTC_MESSAGING_USER_STATUS enUserStatus,
  752. [in] long lCookie
  753. );
  754. // stream & custom media control
  755. [helpstring("method AddStream")]
  756. HRESULT AddStream(
  757. [in] long lMediaType,
  758. [in] long lCookie
  759. );
  760. [helpstring("method RemoveStream")]
  761. HRESULT RemoveStream(
  762. [in] long lMediaType,
  763. [in] long lCookie
  764. );
  765. // keys
  766. [propput, helpstring("property EncryptionKey")]
  767. HRESULT EncryptionKey(
  768. [in] long lMediaType,
  769. [in] BSTR EncryptionKey
  770. );
  771. };
  772. [
  773. object,
  774. uuid(ae86add5-26b1-4414-af1d-b94cd938d739),
  775. helpstring("IRTCParticipant Interface"),
  776. pointer_default(unique)
  777. ]
  778. interface IRTCParticipant : IUnknown
  779. {
  780. [propget, helpstring("property UserURI")]
  781. HRESULT UserURI(
  782. [out, retval] BSTR * pbstrUserURI
  783. );
  784. [propget, helpstring("property Name")]
  785. HRESULT Name(
  786. [out, retval] BSTR * pbstrName
  787. );
  788. [propget, helpstring("property Removable")]
  789. HRESULT Removable(
  790. [out, retval] VARIANT_BOOL * pfRemovable
  791. );
  792. [propget, helpstring("property State")]
  793. HRESULT State(
  794. [out, retval] RTC_PARTICIPANT_STATE * penState
  795. );
  796. [propget, helpstring("property Session")]
  797. HRESULT Session(
  798. [out, retval] IRTCSession ** ppSession
  799. );
  800. };
  801. [
  802. object,
  803. uuid(D6D5AB3B-770E-43e8-800A-79B062395FCA),
  804. dual,
  805. helpstring("IRTCProfileEvent"),
  806. pointer_default(unique)
  807. ]
  808. interface IRTCProfileEvent : IDispatch
  809. {
  810. [propget, id(1), helpstring("property Profile")]
  811. HRESULT Profile( [out, retval] IRTCProfile ** ppProfile );
  812. [propget, id(2), helpstring("property Cookie")]
  813. HRESULT Cookie( [out, retval] long * plCookie );
  814. [propget, id(3), helpstring("property StatusCode")]
  815. HRESULT StatusCode( [out, retval] long * plStatusCode );
  816. }
  817. [
  818. object,
  819. uuid(2b493b7a-3cba-4170-9c8b-76a9dacdd644),
  820. dual,
  821. helpstring("IRTCClientEvent"),
  822. pointer_default(unique)
  823. ]
  824. interface IRTCClientEvent : IDispatch
  825. {
  826. [propget, id(1), helpstring("property EventType")]
  827. HRESULT EventType( [out, retval] RTC_CLIENT_EVENT_TYPE * penEventType );
  828. [propget, id(2), helpstring("property Client")]
  829. HRESULT Client( [out, retval] IRTCClient **ppClient );
  830. }
  831. [
  832. object,
  833. uuid(62d0991b-50ab-4f02-b948-ca94f26f8f95),
  834. dual,
  835. helpstring("IRTCRegistrationStateChangeEvent"),
  836. pointer_default(unique)
  837. ]
  838. interface IRTCRegistrationStateChangeEvent : IDispatch
  839. {
  840. [propget, id(1), helpstring("property Profile")]
  841. HRESULT Profile( [out, retval] IRTCProfile ** ppProfile );
  842. [propget, id(2), helpstring("property State")]
  843. HRESULT State( [out, retval] RTC_REGISTRATION_STATE * penState );
  844. [propget, id(3), helpstring("property StatusCode")]
  845. HRESULT StatusCode( [out, retval] long * plStatusCode );
  846. [propget, id(4), helpstring("property StatusText")]
  847. HRESULT StatusText( [out, retval] BSTR * pbstrStatusText );
  848. }
  849. [
  850. object,
  851. uuid(b5bad703-5952-48b3-9321-7f4500521506),
  852. dual,
  853. helpstring("IRTCSessionStateChangeEvent"),
  854. pointer_default(unique)
  855. ]
  856. interface IRTCSessionStateChangeEvent : IDispatch
  857. {
  858. [propget, id(1), helpstring("property Session")]
  859. HRESULT Session( [out, retval] IRTCSession ** ppSession );
  860. [propget, id(2), helpstring("property State")]
  861. HRESULT State( [out, retval] RTC_SESSION_STATE * penState );
  862. [propget, id(3), helpstring("property StatusCode")]
  863. HRESULT StatusCode( [out, retval] long * plStatusCode );
  864. [propget, id(4), helpstring("property StatusText")]
  865. HRESULT StatusText( [out, retval] BSTR * pbstrStatusText );
  866. }
  867. [
  868. object,
  869. uuid(a6bff4c0-f7c8-4d3c-9a41-3550f78a95b0),
  870. dual,
  871. helpstring("IRTCSessionOperationCompleteEvent"),
  872. pointer_default(unique)
  873. ]
  874. interface IRTCSessionOperationCompleteEvent : IDispatch
  875. {
  876. [propget, id(1), helpstring("property Session")]
  877. HRESULT Session( [out, retval] IRTCSession ** ppSession );
  878. [propget, id(2), helpstring("property Cookie")]
  879. HRESULT Cookie( [out, retval] long * plCookie );
  880. [propget, id(3), helpstring("property StatusCode")]
  881. HRESULT StatusCode( [out, retval] long * plStatusCode );
  882. [propget, id(4), helpstring("property StatusText")]
  883. HRESULT StatusText( [out, retval] BSTR * pbstrStatusText );
  884. }
  885. [
  886. object,
  887. uuid(09bcb597-f0fa-48f9-b420-468cea7fde04),
  888. dual,
  889. helpstring("IRTCParticipantStateChangeEvent"),
  890. pointer_default(unique)
  891. ]
  892. interface IRTCParticipantStateChangeEvent : IDispatch
  893. {
  894. [propget, id(1), helpstring("property Participant")]
  895. HRESULT Participant( [out, retval] IRTCParticipant ** ppParticipant );
  896. [propget, id(2), helpstring("property State")]
  897. HRESULT State( [out, retval] RTC_PARTICIPANT_STATE * penState );
  898. [propget, id(3), helpstring("property StatusCode")]
  899. HRESULT StatusCode( [out, retval] long * plStatusCode );
  900. }
  901. [
  902. object,
  903. uuid(099944fb-bcda-453e-8c41-e13da2adf7f3),
  904. dual,
  905. helpstring("IRTCMediaEvent"),
  906. pointer_default(unique)
  907. ]
  908. interface IRTCMediaEvent : IDispatch
  909. {
  910. [propget, id(1), helpstring("property MediaType")]
  911. HRESULT MediaType( [out, retval] long * pMediaType );
  912. [propget, id(2), helpstring("property EventType")]
  913. HRESULT EventType( [out, retval] RTC_MEDIA_EVENT_TYPE * penEventType );
  914. [propget, id(3), helpstring("property EventReason")]
  915. HRESULT EventReason( [out, retval] RTC_MEDIA_EVENT_REASON * penEventReason );
  916. }
  917. [
  918. object,
  919. uuid(4c23bf51-390c-4992-a41d-41eec05b2a4b),
  920. dual,
  921. helpstring("IRTCIntensityEvent"),
  922. pointer_default(unique)
  923. ]
  924. interface IRTCIntensityEvent : IDispatch
  925. {
  926. [propget, id(1), helpstring("property Level")]
  927. HRESULT Level( [out, retval] long * plLevel );
  928. [propget, id(2), helpstring("property Min")]
  929. HRESULT Min( [out, retval] long * plMin );
  930. [propget, id(3), helpstring("property Max")]
  931. HRESULT Max( [out, retval] long * plMax );
  932. [propget, id(4), helpstring("property Direction")]
  933. HRESULT Direction( [out, retval] RTC_AUDIO_DEVICE * penDirection );
  934. }
  935. [
  936. object,
  937. uuid(d3609541-1b29-4de5-a4ad-5aebaf319512),
  938. dual,
  939. helpstring("IRTCMessagingEvent"),
  940. pointer_default(unique)
  941. ]
  942. interface IRTCMessagingEvent : IDispatch
  943. {
  944. [propget, id(1), helpstring("property Session")]
  945. HRESULT Session( [out, retval] IRTCSession ** ppSession );
  946. [propget, id(2), helpstring("property Participant")]
  947. HRESULT Participant( [out, retval] IRTCParticipant ** ppParticipant );
  948. [propget, id(3), helpstring("property Type")]
  949. HRESULT EventType( [out, retval] RTC_MESSAGING_EVENT_TYPE * penEventType );
  950. [propget, id(4), helpstring("property Message")]
  951. HRESULT Message( [out, retval] BSTR * pbstrMessage );
  952. [propget, id(5), helpstring("property MessageHeader")]
  953. HRESULT MessageHeader( [out, retval] BSTR * pbstrMessageHeader );
  954. [propget, id(6), helpstring("property UserStatus")]
  955. HRESULT UserStatus( [out, retval] RTC_MESSAGING_USER_STATUS * penUserStatus );
  956. }
  957. [
  958. object,
  959. uuid(f36d755d-17e6-404e-954f-0fc07574c78d),
  960. dual,
  961. helpstring("IRTCBuddyEvent"),
  962. pointer_default(unique)
  963. ]
  964. interface IRTCBuddyEvent : IDispatch
  965. {
  966. [propget, id(1), helpstring("property Buddy")]
  967. HRESULT Buddy( [out, retval] IRTCBuddy ** ppBuddy );
  968. }
  969. [
  970. object,
  971. uuid(f30d7261-587a-424f-822c-312788f43548),
  972. dual,
  973. helpstring("IRTCWatcherEvent"),
  974. pointer_default(unique)
  975. ]
  976. interface IRTCWatcherEvent : IDispatch
  977. {
  978. [propget, id(1), helpstring("property Watcher")]
  979. HRESULT Watcher( [out, retval] IRTCWatcher ** ppWatcher );
  980. }
  981. [
  982. object,
  983. uuid(EC7C8096-B918-4044-94F1-E4FBA0361D5C),
  984. helpstring("IRTCCollection interface"),
  985. dual
  986. ]
  987. interface IRTCCollection : IDispatch
  988. {
  989. [propget, helpstring("Returns number of items in collection.")]
  990. HRESULT Count(
  991. [out, retval] long * lCount
  992. );
  993. [propget, id(DISPID_VALUE),
  994. helpstring("Given an index, returns an item in the collection.")]
  995. HRESULT Item(
  996. [in] long Index,
  997. [out, retval] VARIANT * pVariant
  998. );
  999. [propget, restricted, id(DISPID_NEWENUM),
  1000. helpstring("returns an enumerator for the collection.")]
  1001. HRESULT _NewEnum(
  1002. [out, retval] IUnknown ** ppNewEnum
  1003. );
  1004. }
  1005. [
  1006. object,
  1007. uuid(fcd56f29-4a4f-41b2-ba5c-f5bccc060bf6),
  1008. hidden,
  1009. helpstring("IRTCEnumParticipants interface"),
  1010. pointer_default(unique)
  1011. ]
  1012. interface IRTCEnumParticipants : IUnknown
  1013. {
  1014. HRESULT Next(
  1015. [in] ULONG celt,
  1016. [out, size_is(celt)] IRTCParticipant ** ppElements,
  1017. [in,out,ptr] ULONG * pceltFetched
  1018. );
  1019. HRESULT Reset( void );
  1020. HRESULT Skip (
  1021. [in] ULONG celt
  1022. );
  1023. HRESULT Clone (
  1024. [out, retval] IRTCEnumParticipants ** ppEnum
  1025. );
  1026. }
  1027. [
  1028. object,
  1029. uuid(29b7c41c-ed82-4bca-84ad-39d5101b58e3),
  1030. hidden,
  1031. helpstring("IRTCEnumProfiles interface"),
  1032. pointer_default(unique)
  1033. ]
  1034. interface IRTCEnumProfiles : IUnknown
  1035. {
  1036. HRESULT Next(
  1037. [in] ULONG celt,
  1038. [out, size_is(celt)] IRTCProfile ** ppElements,
  1039. [in,out,ptr] ULONG * pceltFetched
  1040. );
  1041. HRESULT Reset( void );
  1042. HRESULT Skip (
  1043. [in] ULONG celt
  1044. );
  1045. HRESULT Clone (
  1046. [out, retval] IRTCEnumProfiles ** ppEnum
  1047. );
  1048. }
  1049. [
  1050. object,
  1051. uuid(f7296917-5569-4b3b-b3af-98d1144b2b87),
  1052. hidden,
  1053. helpstring("IRTCEnumBuddies interface"),
  1054. pointer_default(unique)
  1055. ]
  1056. interface IRTCEnumBuddies : IUnknown
  1057. {
  1058. HRESULT Next(
  1059. [in] ULONG celt,
  1060. [out, size_is(celt)] IRTCBuddy ** ppElements,
  1061. [in,out,ptr] ULONG * pceltFetched
  1062. );
  1063. HRESULT Reset( void );
  1064. HRESULT Skip (
  1065. [in] ULONG celt
  1066. );
  1067. HRESULT Clone (
  1068. [out, retval] IRTCEnumBuddies ** ppEnum
  1069. );
  1070. }
  1071. [
  1072. object,
  1073. uuid(a87d55d7-db74-4ed1-9ca4-77a0e41b413e),
  1074. hidden,
  1075. helpstring("IRTCEnumWatchers interface"),
  1076. pointer_default(unique)
  1077. ]
  1078. interface IRTCEnumWatchers : IUnknown
  1079. {
  1080. HRESULT Next(
  1081. [in] ULONG celt,
  1082. [out, size_is(celt)] IRTCWatcher ** ppElements,
  1083. [in,out,ptr] ULONG * pceltFetched
  1084. );
  1085. HRESULT Reset( void );
  1086. HRESULT Skip (
  1087. [in] ULONG celt
  1088. );
  1089. HRESULT Clone (
  1090. [out, retval] IRTCEnumWatchers ** ppEnum
  1091. );
  1092. }
  1093. [
  1094. object,
  1095. uuid(8b22f92c-cd90-42db-a733-212205c3e3df),
  1096. helpstring("IRTCPresenceContact Interface"),
  1097. pointer_default(unique)
  1098. ]
  1099. interface IRTCPresenceContact : IUnknown
  1100. {
  1101. [propget, helpstring("property PresentityURI")]
  1102. HRESULT PresentityURI(
  1103. [out, retval] BSTR * pbstrPresentityURI
  1104. );
  1105. [propput, helpstring("property PresentityURI")]
  1106. HRESULT PresentityURI(
  1107. [in] BSTR bstrPresentityURI
  1108. );
  1109. [propget, helpstring("property Name")]
  1110. HRESULT Name(
  1111. [out, retval] BSTR * pbstrName
  1112. );
  1113. [propput, helpstring("property Name")]
  1114. HRESULT Name(
  1115. [in] BSTR bstrName
  1116. );
  1117. [propget, helpstring("property Data")]
  1118. HRESULT Data(
  1119. [out, retval] BSTR * pbstrData
  1120. );
  1121. [propput, helpstring("property Data")]
  1122. HRESULT Data(
  1123. [in] BSTR bstrData
  1124. );
  1125. [propget, helpstring("property Persistent")]
  1126. HRESULT Persistent(
  1127. [out, retval] VARIANT_BOOL *pfPersistent
  1128. );
  1129. [propput, helpstring("property Persistent")]
  1130. HRESULT Persistent(
  1131. [in] VARIANT_BOOL fPersistent
  1132. );
  1133. };
  1134. [
  1135. object,
  1136. uuid(fcb136c8-7b90-4e0c-befe-56edf0ba6f1c),
  1137. helpstring("IRTCBuddy Interface"),
  1138. pointer_default(unique)
  1139. ]
  1140. interface IRTCBuddy : IRTCPresenceContact
  1141. {
  1142. [propget, helpstring("property Status")]
  1143. HRESULT Status(
  1144. [out, retval] RTC_PRESENCE_STATUS * penStatus
  1145. );
  1146. [propget, helpstring("property Notes")]
  1147. HRESULT Notes(
  1148. [out, retval] BSTR * pbstrNotes
  1149. );
  1150. };
  1151. [
  1152. object,
  1153. uuid(c7cedad8-346b-4d1b-ac02-a2088df9be4f),
  1154. helpstring("IRTCWatcher Interface"),
  1155. pointer_default(unique)
  1156. ]
  1157. interface IRTCWatcher : IRTCPresenceContact
  1158. {
  1159. [propget, helpstring("property State")]
  1160. HRESULT State(
  1161. [out, retval] RTC_WATCHER_STATE * penState
  1162. );
  1163. [propput, helpstring("property State")]
  1164. HRESULT State(
  1165. [in] RTC_WATCHER_STATE enState
  1166. );
  1167. };
  1168. [
  1169. object,
  1170. uuid(13fa24c7-5748-4b21-91f5-7397609ce747),
  1171. helpstring("IRTCEventNotification Interface"),
  1172. oleautomation,
  1173. pointer_default(unique)
  1174. ]
  1175. interface IRTCEventNotification : IUnknown
  1176. {
  1177. [id(1), helpstring("method Event")]
  1178. HRESULT Event(
  1179. [in] RTC_EVENT RTCEvent,
  1180. [in] IDispatch * pEvent
  1181. );
  1182. }
  1183. [
  1184. uuid(176ddfbe-fec0-4d55-bc87-84cff1ef7f91),
  1185. helpstring("IRTCDispatchEventNotification Interface")
  1186. ]
  1187. dispinterface IRTCDispatchEventNotification
  1188. {
  1189. properties:
  1190. methods:
  1191. [id(1), helpstring("method Event")]
  1192. HRESULT Event(
  1193. [in] RTC_EVENT RTCEvent,
  1194. [in] IDispatch * pEvent
  1195. );
  1196. };
  1197. [
  1198. object,
  1199. uuid(DA77C14B-6208-43ca-8DDF-5B60A0A69FAC),
  1200. helpstring("IRTCPortManager Interface"),
  1201. oleautomation,
  1202. pointer_default(unique)
  1203. ]
  1204. interface IRTCPortManager : IUnknown
  1205. {
  1206. [id(1), helpstring("method GetMapping")]
  1207. HRESULT GetMapping(
  1208. [in] BSTR bstrRemoteAddress,
  1209. [in] RTC_PORT_TYPE enPortType,
  1210. [in, out] BSTR * pbstrInternalLocalAddress,
  1211. [in, out] long * plInternalLocalPort,
  1212. [in, out] BSTR * pbstrExternalLocalAddress,
  1213. [in, out] long * plExternalLocalPort
  1214. );
  1215. [id(2), helpstring("method UpdateRemoteAddress")]
  1216. HRESULT UpdateRemoteAddress(
  1217. [in] BSTR bstrRemoteAddress,
  1218. [in] BSTR bstrInternalLocalAddress,
  1219. [in] long lInternalLocalPort,
  1220. [in] BSTR bstrExternalLocalAddress,
  1221. [in] long lExternalLocalPort
  1222. );
  1223. [id(3), helpstring("method ReleaseMapping")]
  1224. HRESULT ReleaseMapping(
  1225. [in] BSTR bstrInternalLocalAddress,
  1226. [in] long lInternalLocalPort,
  1227. [in] BSTR bstrExternalLocalAddress,
  1228. [in] long lExternalLocalAddress
  1229. );
  1230. }
  1231. [
  1232. object,
  1233. uuid(a072f1d6-0286-4e1f-85f2-17a2948456ec),
  1234. helpstring("IRTCSessionPortManagement Interface"),
  1235. pointer_default(unique)
  1236. ]
  1237. interface IRTCSessionPortManagement : IUnknown
  1238. {
  1239. HRESULT SetPortManager(
  1240. [in] IRTCPortManager * pPortManager
  1241. );
  1242. };
  1243. [
  1244. uuid(cd260094-de10-4aee-ac73-ef87f6e12683),
  1245. version(1.0),
  1246. helpstring("RTCCore 1.0 Type Library")
  1247. ]
  1248. library RTCCORELib
  1249. {
  1250. importlib("stdole32.tlb");
  1251. interface IRTCProfile;
  1252. interface IRTCSession;
  1253. interface IRTCParticipant;
  1254. interface IRTCEnumProfiles;
  1255. interface IRTCEnumParticipants;
  1256. interface IRTCCollection;
  1257. interface IRTCEnumBuddies;
  1258. interface IRTCBuddy;
  1259. interface IRTCEnumWatchers;
  1260. interface IRTCWatcher;
  1261. interface IRTCEventNotification;
  1262. interface IRTCClientEvent;
  1263. interface IRTCRegistrationStateChangeEvent;
  1264. interface IRTCSessionStateChangeEvent;
  1265. interface IRTCSessionOperationCompleteEvent;
  1266. interface IRTCParticipantStateChangeEvent;
  1267. interface IRTCMediaEvent;
  1268. interface IRTCIntensityEvent;
  1269. interface IRTCMessagingEvent;
  1270. interface IRTCBuddyEvent;
  1271. interface IRTCWatcherEvent;
  1272. interface IRTCPortManager;
  1273. interface IRTCSessionPortManagement;
  1274. dispinterface IRTCDispatchEventNotification;
  1275. [
  1276. uuid(7a42ea29-a2b7-40c4-b091-f6f024aa89be),
  1277. helpstring("RTCClient Class")
  1278. ]
  1279. coclass RTCClient
  1280. {
  1281. [default] interface IRTCClient;
  1282. interface IRTCClientPresence;
  1283. interface IRTCClientProvisioning;
  1284. [default, source] dispinterface IRTCDispatchEventNotification;
  1285. [defaultvtable, source] interface IRTCEventNotification;
  1286. };
  1287. };