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.

4034 lines
105 KiB

  1. //
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. cpp_quote("/* Copyright (c) Microsoft Corporation. All rights reserved. */")
  4. #ifndef __TAPI3IF_IDL__
  5. #define __TAPI3IF_IDL__
  6. import "oaidl.idl";
  7. import "basetsd.h";
  8. import "strmif.idl";
  9. midl_pragma warning( disable: 2039 )
  10. cpp_quote("#if 0")
  11. #ifdef _X86_
  12. typedef long TAPIHWND;
  13. #else
  14. typedef LONGLONG TAPIHWND;
  15. #endif
  16. cpp_quote("#endif")
  17. cpp_quote("#ifdef _X86_")
  18. cpp_quote("typedef long TAPIHWND;")
  19. cpp_quote("#else")
  20. cpp_quote("typedef LONGLONG TAPIHWND;")
  21. cpp_quote("#endif")
  22. typedef long TAPI_DIGITMODE;
  23. typedef enum TAPI_TONEMODE
  24. {
  25. TTM_RINGBACK = 0x00000002,
  26. TTM_BUSY = 0x00000004,
  27. TTM_BEEP = 0x00000008,
  28. TTM_BILLING = 0x00000010
  29. } TAPI_TONEMODE;
  30. typedef enum TAPI_GATHERTERM
  31. {
  32. TGT_BUFFERFULL = 0x00000001,
  33. TGT_TERMDIGIT = 0x00000002,
  34. TGT_FIRSTTIMEOUT = 0x00000004,
  35. TGT_INTERTIMEOUT = 0x00000008,
  36. TGT_CANCEL = 0x00000010
  37. } TAPI_GATHERTERM;
  38. typedef struct TAPI_CUSTOMTONE
  39. {
  40. DWORD dwFrequency;
  41. DWORD dwCadenceOn;
  42. DWORD dwCadenceOff;
  43. DWORD dwVolume;
  44. } TAPI_CUSTOMTONE, *LPTAPI_CUSTOMTONE;
  45. typedef struct TAPI_DETECTTONE
  46. {
  47. DWORD dwAppSpecific;
  48. DWORD dwDuration;
  49. DWORD dwFrequency1;
  50. DWORD dwFrequency2;
  51. DWORD dwFrequency3;
  52. } TAPI_DETECTTONE, *LPTAPI_DETECTTONE;
  53. typedef enum ADDRESS_EVENT
  54. {
  55. AE_STATE,
  56. AE_CAPSCHANGE,
  57. AE_RINGING,
  58. AE_CONFIGCHANGE,
  59. AE_FORWARD,
  60. AE_NEWTERMINAL,
  61. AE_REMOVETERMINAL,
  62. AE_MSGWAITON,
  63. AE_MSGWAITOFF,
  64. AE_LASTITEM = AE_MSGWAITOFF
  65. } ADDRESS_EVENT;
  66. typedef enum ADDRESS_STATE
  67. {
  68. AS_INSERVICE,
  69. AS_OUTOFSERVICE
  70. } ADDRESS_STATE;
  71. typedef enum CALL_STATE
  72. {
  73. CS_IDLE,
  74. CS_INPROGRESS,
  75. CS_CONNECTED,
  76. CS_DISCONNECTED,
  77. CS_OFFERING,
  78. CS_HOLD,
  79. CS_QUEUED,
  80. CS_LASTITEM = CS_QUEUED
  81. } CALL_STATE;
  82. typedef enum CALL_STATE_EVENT_CAUSE
  83. {
  84. CEC_NONE,
  85. CEC_DISCONNECT_NORMAL,
  86. CEC_DISCONNECT_BUSY,
  87. CEC_DISCONNECT_BADADDRESS,
  88. CEC_DISCONNECT_NOANSWER,
  89. CEC_DISCONNECT_CANCELLED,
  90. CEC_DISCONNECT_REJECTED,
  91. CEC_DISCONNECT_FAILED,
  92. CEC_DISCONNECT_BLOCKED
  93. } CALL_STATE_EVENT_CAUSE;
  94. typedef enum CALL_MEDIA_EVENT
  95. {
  96. CME_NEW_STREAM,
  97. CME_STREAM_FAIL,
  98. CME_TERMINAL_FAIL,
  99. CME_STREAM_NOT_USED,
  100. CME_STREAM_ACTIVE,
  101. CME_STREAM_INACTIVE,
  102. CME_LASTITEM = CME_STREAM_INACTIVE
  103. } CALL_MEDIA_EVENT;
  104. typedef enum CALL_MEDIA_EVENT_CAUSE
  105. {
  106. CMC_UNKNOWN,
  107. CMC_BAD_DEVICE,
  108. CMC_CONNECT_FAIL,
  109. CMC_LOCAL_REQUEST,
  110. CMC_REMOTE_REQUEST,
  111. CMC_MEDIA_TIMEOUT,
  112. CMC_MEDIA_RECOVERED,
  113. CMC_QUALITY_OF_SERVICE
  114. } CALL_MEDIA_EVENT_CAUSE;
  115. typedef enum DISCONNECT_CODE
  116. {
  117. DC_NORMAL,
  118. DC_NOANSWER,
  119. DC_REJECTED
  120. } DISCONNECT_CODE;
  121. typedef enum TERMINAL_STATE
  122. {
  123. TS_INUSE,
  124. TS_NOTINUSE
  125. } TERMINAL_STATE;
  126. typedef enum TERMINAL_DIRECTION
  127. {
  128. TD_CAPTURE,
  129. TD_RENDER,
  130. TD_BIDIRECTIONAL,
  131. TD_MULTITRACK_MIXED,
  132. TD_NONE
  133. } TERMINAL_DIRECTION;
  134. typedef enum TERMINAL_TYPE
  135. {
  136. TT_STATIC,
  137. TT_DYNAMIC
  138. } TERMINAL_TYPE;
  139. typedef enum CALL_PRIVILEGE
  140. {
  141. CP_OWNER,
  142. CP_MONITOR
  143. } CALL_PRIVILEGE;
  144. typedef enum TAPI_EVENT
  145. {
  146. TE_TAPIOBJECT = 0x00000001,
  147. TE_ADDRESS = 0x00000002,
  148. TE_CALLNOTIFICATION = 0x00000004,
  149. TE_CALLSTATE = 0x00000008,
  150. TE_CALLMEDIA = 0x00000010,
  151. TE_CALLHUB = 0x00000020,
  152. TE_CALLINFOCHANGE = 0x00000040,
  153. TE_PRIVATE = 0x00000080,
  154. TE_REQUEST = 0x00000100,
  155. TE_AGENT = 0x00000200,
  156. TE_AGENTSESSION = 0x00000400,
  157. TE_QOSEVENT = 0x00000800,
  158. TE_AGENTHANDLER = 0x00001000,
  159. TE_ACDGROUP = 0x00002000,
  160. TE_QUEUE = 0x00004000,
  161. TE_DIGITEVENT = 0x00008000,
  162. TE_GENERATEEVENT = 0x00010000,
  163. TE_ASRTERMINAL = 0x00020000,
  164. TE_TTSTERMINAL = 0x00040000,
  165. TE_FILETERMINAL = 0x00080000,
  166. TE_TONETERMINAL = 0x00100000,
  167. TE_PHONEEVENT = 0x00200000,
  168. TE_TONEEVENT = 0x00400000,
  169. TE_GATHERDIGITS = 0x00800000,
  170. TE_ADDRESSDEVSPECIFIC = 0x01000000,
  171. TE_PHONEDEVSPECIFIC = 0x02000000
  172. } TAPI_EVENT;
  173. typedef enum CALL_NOTIFICATION_EVENT
  174. {
  175. CNE_OWNER,
  176. CNE_MONITOR,
  177. CNE_LASTITEM = CNE_MONITOR
  178. } CALL_NOTIFICATION_EVENT;
  179. typedef enum CALLHUB_EVENT
  180. {
  181. CHE_CALLJOIN,
  182. CHE_CALLLEAVE,
  183. CHE_CALLHUBNEW,
  184. CHE_CALLHUBIDLE,
  185. CHE_LASTITEM = CHE_CALLHUBIDLE
  186. } CALLHUB_EVENT;
  187. typedef enum CALLHUB_STATE
  188. {
  189. CHS_ACTIVE,
  190. CHS_IDLE
  191. } CALLHUB_STATE;
  192. typedef enum TAPIOBJECT_EVENT
  193. {
  194. TE_ADDRESSCREATE,
  195. TE_ADDRESSREMOVE,
  196. TE_REINIT,
  197. TE_TRANSLATECHANGE,
  198. TE_ADDRESSCLOSE,
  199. TE_PHONECREATE,
  200. TE_PHONEREMOVE
  201. } TAPIOBJECT_EVENT;
  202. typedef enum TAPI_OBJECT_TYPE
  203. {
  204. TOT_NONE,
  205. TOT_TAPI,
  206. TOT_ADDRESS,
  207. TOT_TERMINAL,
  208. TOT_CALL,
  209. TOT_CALLHUB,
  210. TOT_PHONE
  211. } TAPI_OBJECT_TYPE;
  212. typedef enum QOS_SERVICE_LEVEL
  213. {
  214. QSL_NEEDED = 1,
  215. QSL_IF_AVAILABLE = 2,
  216. QSL_BEST_EFFORT = 3
  217. } QOS_SERVICE_LEVEL;
  218. typedef enum QOS_EVENT
  219. {
  220. QE_NOQOS = 1,
  221. QE_ADMISSIONFAILURE = 2,
  222. QE_POLICYFAILURE = 3,
  223. QE_GENERICERROR = 4,
  224. QE_LASTITEM = QE_GENERICERROR
  225. } QOS_EVENT;
  226. typedef enum CALLINFOCHANGE_CAUSE
  227. {
  228. CIC_OTHER,
  229. CIC_DEVSPECIFIC,
  230. CIC_BEARERMODE,
  231. CIC_RATE,
  232. CIC_APPSPECIFIC,
  233. CIC_CALLID,
  234. CIC_RELATEDCALLID,
  235. CIC_ORIGIN,
  236. CIC_REASON,
  237. CIC_COMPLETIONID,
  238. CIC_NUMOWNERINCR,
  239. CIC_NUMOWNERDECR,
  240. CIC_NUMMONITORS,
  241. CIC_TRUNK,
  242. CIC_CALLERID,
  243. CIC_CALLEDID,
  244. CIC_CONNECTEDID,
  245. CIC_REDIRECTIONID,
  246. CIC_REDIRECTINGID,
  247. CIC_USERUSERINFO,
  248. CIC_HIGHLEVELCOMP,
  249. CIC_LOWLEVELCOMP,
  250. CIC_CHARGINGINFO,
  251. CIC_TREATMENT,
  252. CIC_CALLDATA,
  253. CIC_PRIVILEGE,
  254. CIC_MEDIATYPE,
  255. CIC_LASTITEM = CIC_MEDIATYPE
  256. } CALLINFOCHANGE_CAUSE;
  257. typedef enum CALLINFO_LONG
  258. {
  259. CIL_MEDIATYPESAVAILABLE,
  260. CIL_BEARERMODE,
  261. CIL_CALLERIDADDRESSTYPE,
  262. CIL_CALLEDIDADDRESSTYPE,
  263. CIL_CONNECTEDIDADDRESSTYPE,
  264. CIL_REDIRECTIONIDADDRESSTYPE,
  265. CIL_REDIRECTINGIDADDRESSTYPE,
  266. CIL_ORIGIN,
  267. CIL_REASON,
  268. CIL_APPSPECIFIC,
  269. CIL_CALLPARAMSFLAGS,
  270. CIL_CALLTREATMENT,
  271. CIL_MINRATE,
  272. CIL_MAXRATE,
  273. CIL_COUNTRYCODE,
  274. CIL_CALLID,
  275. CIL_RELATEDCALLID,
  276. CIL_COMPLETIONID,
  277. CIL_NUMBEROFOWNERS,
  278. CIL_NUMBEROFMONITORS,
  279. CIL_TRUNK,
  280. CIL_RATE,
  281. CIL_GENERATEDIGITDURATION,
  282. CIL_MONITORDIGITMODES,
  283. CIL_MONITORMEDIAMODES
  284. } CALLINFO_LONG;
  285. typedef enum CALLINFO_STRING
  286. {
  287. CIS_CALLERIDNAME,
  288. CIS_CALLERIDNUMBER,
  289. CIS_CALLEDIDNAME,
  290. CIS_CALLEDIDNUMBER,
  291. CIS_CONNECTEDIDNAME,
  292. CIS_CONNECTEDIDNUMBER,
  293. CIS_REDIRECTIONIDNAME,
  294. CIS_REDIRECTIONIDNUMBER,
  295. CIS_REDIRECTINGIDNAME,
  296. CIS_REDIRECTINGIDNUMBER,
  297. CIS_CALLEDPARTYFRIENDLYNAME,
  298. CIS_COMMENT,
  299. CIS_DISPLAYABLEADDRESS,
  300. CIS_CALLINGPARTYID
  301. } CALLINFO_STRING;
  302. typedef enum CALLINFO_BUFFER
  303. {
  304. CIB_USERUSERINFO,
  305. CIB_DEVSPECIFICBUFFER,
  306. CIB_CALLDATABUFFER,
  307. CIB_CHARGINGINFOBUFFER,
  308. CIB_HIGHLEVELCOMPATIBILITYBUFFER,
  309. CIB_LOWLEVELCOMPATIBILITYBUFFER
  310. } CALLINFO_BUFFER;
  311. typedef enum ADDRESS_CAPABILITY
  312. {
  313. AC_ADDRESSTYPES,
  314. AC_BEARERMODES,
  315. AC_MAXACTIVECALLS,
  316. AC_MAXONHOLDCALLS,
  317. AC_MAXONHOLDPENDINGCALLS,
  318. AC_MAXNUMCONFERENCE,
  319. AC_MAXNUMTRANSCONF,
  320. AC_MONITORDIGITSUPPORT,
  321. AC_GENERATEDIGITSUPPORT,
  322. AC_GENERATETONEMODES,
  323. AC_GENERATETONEMAXNUMFREQ,
  324. AC_MONITORTONEMAXNUMFREQ,
  325. AC_MONITORTONEMAXNUMENTRIES,
  326. AC_DEVCAPFLAGS,
  327. AC_ANSWERMODES,
  328. AC_LINEFEATURES,
  329. AC_SETTABLEDEVSTATUS,
  330. AC_PARKSUPPORT,
  331. AC_CALLERIDSUPPORT,
  332. AC_CALLEDIDSUPPORT,
  333. AC_CONNECTEDIDSUPPORT,
  334. AC_REDIRECTIONIDSUPPORT,
  335. AC_REDIRECTINGIDSUPPORT,
  336. AC_ADDRESSCAPFLAGS,
  337. AC_CALLFEATURES1,
  338. AC_CALLFEATURES2,
  339. AC_REMOVEFROMCONFCAPS,
  340. AC_REMOVEFROMCONFSTATE,
  341. AC_TRANSFERMODES,
  342. AC_ADDRESSFEATURES,
  343. AC_PREDICTIVEAUTOTRANSFERSTATES,
  344. AC_MAXCALLDATASIZE,
  345. AC_LINEID,
  346. AC_ADDRESSID,
  347. AC_FORWARDMODES,
  348. AC_MAXFORWARDENTRIES,
  349. AC_MAXSPECIFICENTRIES,
  350. AC_MINFWDNUMRINGS,
  351. AC_MAXFWDNUMRINGS,
  352. AC_MAXCALLCOMPLETIONS,
  353. AC_CALLCOMPLETIONCONDITIONS,
  354. AC_CALLCOMPLETIONMODES,
  355. AC_PERMANENTDEVICEID,
  356. AC_GATHERDIGITSMINTIMEOUT,
  357. AC_GATHERDIGITSMAXTIMEOUT,
  358. AC_GENERATEDIGITMINDURATION,
  359. AC_GENERATEDIGITMAXDURATION,
  360. AC_GENERATEDIGITDEFAULTDURATION
  361. } ADDRESS_CAPABILITY;
  362. typedef enum ADDRESS_CAPABILITY_STRING
  363. {
  364. ACS_PROTOCOL,
  365. ACS_ADDRESSDEVICESPECIFIC,
  366. ACS_LINEDEVICESPECIFIC,
  367. ACS_PROVIDERSPECIFIC,
  368. ACS_SWITCHSPECIFIC,
  369. ACS_PERMANENTDEVICEGUID
  370. } ADDRESS_CAPABILITY_STRING;
  371. typedef enum FULLDUPLEX_SUPPORT
  372. {
  373. FDS_SUPPORTED,
  374. FDS_NOTSUPPORTED,
  375. FDS_UNKNOWN
  376. } FULLDUPLEX_SUPPORT;
  377. typedef enum FINISH_MODE
  378. {
  379. FM_ASTRANSFER,
  380. FM_ASCONFERENCE
  381. } FINISH_MODE;
  382. typedef enum PHONE_PRIVILEGE
  383. {
  384. PP_OWNER,
  385. PP_MONITOR
  386. } PHONE_PRIVILEGE;
  387. //
  388. // the hookswitch types
  389. //
  390. typedef enum PHONE_HOOK_SWITCH_DEVICE
  391. {
  392. PHSD_HANDSET = 0x00000001,
  393. PHSD_SPEAKERPHONE = 0x00000002,
  394. PHSD_HEADSET = 0x00000004
  395. } PHONE_HOOK_SWITCH_DEVICE;
  396. //
  397. // hookswitch mode
  398. //
  399. typedef enum PHONE_HOOK_SWITCH_STATE
  400. {
  401. PHSS_ONHOOK = 0x00000001,
  402. PHSS_OFFHOOK_MIC_ONLY = 0x00000002,
  403. PHSS_OFFHOOK_SPEAKER_ONLY = 0x00000004,
  404. PHSS_OFFHOOK = 0x00000008
  405. } PHONE_HOOK_SWITCH_STATE;
  406. //
  407. // lamp mode
  408. // how the lamp is flashing.
  409. // as defined in TAPI 2.x
  410. //
  411. typedef enum PHONE_LAMP_MODE
  412. {
  413. LM_DUMMY = 0x00000001,
  414. LM_OFF = 0x00000002,
  415. LM_STEADY = 0x00000004,
  416. LM_WINK = 0x00000008,
  417. LM_FLASH = 0x00000010,
  418. LM_FLUTTER = 0x00000020,
  419. LM_BROKENFLUTTER = 0x00000040,
  420. LM_UNKNOWN = 0x00000080
  421. } PHONE_LAMP_MODE;
  422. //
  423. // capabilities of the phone
  424. //
  425. typedef enum PHONECAPS_LONG
  426. {
  427. PCL_HOOKSWITCHES,
  428. PCL_HANDSETHOOKSWITCHMODES,
  429. PCL_HEADSETHOOKSWITCHMODES,
  430. PCL_SPEAKERPHONEHOOKSWITCHMODES,
  431. PCL_DISPLAYNUMROWS,
  432. PCL_DISPLAYNUMCOLUMNS,
  433. PCL_NUMRINGMODES,
  434. PCL_NUMBUTTONLAMPS,
  435. PCL_GENERICPHONE
  436. } PHONECAPS_LONG;
  437. //
  438. // capabilities of the phone (strings)
  439. //
  440. typedef enum PHONECAPS_STRING
  441. {
  442. PCS_PHONENAME,
  443. PCS_PHONEINFO,
  444. PCS_PROVIDERINFO
  445. } PHONECAPS_STRING;
  446. //
  447. // capabilities of the phone (buffers)
  448. //
  449. typedef enum PHONECAPS_BUFFER
  450. {
  451. PCB_DEVSPECIFICBUFFER
  452. } PHONECAPS_BUFFER;
  453. //
  454. // state of the button
  455. // do we need to reflect the one shot vs. state?
  456. //
  457. typedef enum PHONE_BUTTON_STATE
  458. {
  459. PBS_UP = 0x00000001,
  460. PBS_DOWN = 0x00000002,
  461. PBS_UNKNOWN = 0x00000004,
  462. PBS_UNAVAIL = 0x00000008
  463. } PHONE_BUTTON_STATE;
  464. //
  465. // what the button is used for
  466. //
  467. typedef enum PHONE_BUTTON_MODE
  468. {
  469. PBM_DUMMY,
  470. PBM_CALL,
  471. PBM_FEATURE,
  472. PBM_KEYPAD,
  473. PBM_LOCAL,
  474. PBM_DISPLAY
  475. } PHONE_BUTTON_MODE;
  476. //
  477. // the function of the button - when the button is pressed,
  478. // what is expected to happen.
  479. //
  480. typedef enum PHONE_BUTTON_FUNCTION
  481. {
  482. PBF_UNKNOWN,
  483. PBF_CONFERENCE,
  484. PBF_TRANSFER,
  485. PBF_DROP,
  486. PBF_HOLD,
  487. PBF_RECALL,
  488. PBF_DISCONNECT,
  489. PBF_CONNECT,
  490. PBF_MSGWAITON,
  491. PBF_MSGWAITOFF,
  492. PBF_SELECTRING,
  493. PBF_ABBREVDIAL,
  494. PBF_FORWARD,
  495. PBF_PICKUP,
  496. PBF_RINGAGAIN,
  497. PBF_PARK,
  498. PBF_REJECT,
  499. PBF_REDIRECT,
  500. PBF_MUTE,
  501. PBF_VOLUMEUP,
  502. PBF_VOLUMEDOWN,
  503. PBF_SPEAKERON,
  504. PBF_SPEAKEROFF,
  505. PBF_FLASH,
  506. PBF_DATAON,
  507. PBF_DATAOFF,
  508. PBF_DONOTDISTURB,
  509. PBF_INTERCOM,
  510. PBF_BRIDGEDAPP,
  511. PBF_BUSY,
  512. PBF_CALLAPP,
  513. PBF_DATETIME,
  514. PBF_DIRECTORY,
  515. PBF_COVER,
  516. PBF_CALLID,
  517. PBF_LASTNUM,
  518. PBF_NIGHTSRV,
  519. PBF_SENDCALLS,
  520. PBF_MSGINDICATOR,
  521. PBF_REPDIAL,
  522. PBF_SETREPDIAL,
  523. PBF_SYSTEMSPEED,
  524. PBF_STATIONSPEED,
  525. PBF_CAMPON,
  526. PBF_SAVEREPEAT,
  527. PBF_QUEUECALL,
  528. PBF_NONE,
  529. PBF_SEND
  530. } PHONE_BUTTON_FUNCTION;
  531. //
  532. // Used by ITAutomatedPhoneControl
  533. //
  534. typedef enum PHONE_TONE
  535. {
  536. PT_KEYPADZERO,
  537. PT_KEYPADONE,
  538. PT_KEYPADTWO,
  539. PT_KEYPADTHREE,
  540. PT_KEYPADFOUR,
  541. PT_KEYPADFIVE,
  542. PT_KEYPADSIX,
  543. PT_KEYPADSEVEN,
  544. PT_KEYPADEIGHT,
  545. PT_KEYPADNINE,
  546. PT_KEYPADSTAR,
  547. PT_KEYPADPOUND,
  548. PT_KEYPADA,
  549. PT_KEYPADB,
  550. PT_KEYPADC,
  551. PT_KEYPADD,
  552. PT_NORMALDIALTONE,
  553. PT_EXTERNALDIALTONE,
  554. PT_BUSY,
  555. PT_RINGBACK,
  556. PT_ERRORTONE,
  557. PT_SILENCE
  558. } PHONE_TONE;
  559. //
  560. // events related to phones
  561. //
  562. typedef enum PHONE_EVENT
  563. {
  564. PE_DISPLAY,
  565. PE_LAMPMODE,
  566. PE_RINGMODE,
  567. PE_RINGVOLUME,
  568. PE_HOOKSWITCH,
  569. PE_CAPSCHANGE,
  570. PE_BUTTON,
  571. PE_CLOSE,
  572. PE_NUMBERGATHERED,
  573. PE_DIALING,
  574. PE_ANSWER,
  575. PE_DISCONNECT,
  576. PE_LASTITEM = PE_DISCONNECT
  577. } PHONE_EVENT;
  578. // Dispach ID mapping constants
  579. const DISPID INTERFACEMASK = 0x00FF0000;
  580. const DISPID DISPIDMASK = 0x0000FFFF;
  581. // Tapi Object Interfaces
  582. const DISPID IDISPTAPI = 0x00010000;
  583. const DISPID IDISPTAPICALLCENTER = 0x00020000;
  584. // Call Object Interfaces
  585. const DISPID IDISPCALLINFO = 0x00010000;
  586. const DISPID IDISPBASICCALLCONTROL = 0x00020000;
  587. const DISPID IDISPLEGACYCALLMEDIACONTROL = 0x00030000;
  588. const DISPID IDISPAGGREGATEDMSPCALLOBJ = 0x00040000;
  589. // Address Object Interfaces
  590. const DISPID IDISPADDRESS = 0x00010000;
  591. const DISPID IDISPADDRESSCAPABILITIES = 0x00020000;
  592. const DISPID IDISPMEDIASUPPORT = 0x00030000;
  593. const DISPID IDISPADDRESSTRANSLATION = 0x00040000;
  594. const DISPID IDISPLEGACYADDRESSMEDIACONTROL = 0x00050000;
  595. const DISPID IDISPAGGREGATEDMSPADDRESSOBJ = 0x00060000;
  596. // Phone Object Interfaces
  597. const DISPID IDISPPHONE = 0x00010000;
  598. const DISPID IDISPAPC = 0x00020000;
  599. // file terminal object interfaces
  600. const DISPID IDISPMULTITRACK = 0x00010000;
  601. const DISPID IDISPMEDIACONTROL = 0x00020000;
  602. const DISPID IDISPMEDIARECORD = 0x00030000;
  603. const DISPID IDISPMEDIAPLAYBACK = 0x00040000;
  604. // file terminal track interfaces
  605. const DISPID IDISPFILETRACK = 0x00010000;
  606. // forward definitions
  607. interface IEnumAddress;
  608. interface IEnumPhone;
  609. interface IEnumCall;
  610. interface IEnumTerminalClass;
  611. interface IEnumTerminal;
  612. interface IEnumLocation;
  613. interface IEnumCallingCard;
  614. interface IEnumBstr;
  615. interface ITCollection;
  616. interface ITCollection2;
  617. interface ITTerminal;
  618. interface ITAMTerminal;
  619. interface ITTAPI;
  620. interface ITTAPI2;
  621. interface ITMediaSupport;
  622. interface ITTerminalSupport;
  623. interface ITTerminalSupport2;
  624. interface ITCallInfo;
  625. interface ITCallInfo2;
  626. interface ITCallHub;
  627. interface ITBasicCallControl;
  628. interface IEnumCallHub;
  629. interface ITForwardInformation;
  630. interface ITAddressTranslation;
  631. interface ITAddressTranslationInfo;
  632. interface ITLocationInfo;
  633. interface ITCallingCard;
  634. interface ITAddress;
  635. interface ITAddress2;
  636. interface ITPhone;
  637. interface ITStaticAudioTerminal;
  638. interface ITStream;
  639. interface ITStreamControl;
  640. interface ITStream;
  641. interface ITSubStreamControl;
  642. interface ITSubStream;
  643. interface IEnumStream;
  644. interface IEnumSubStream;
  645. interface ITTone;
  646. interface ITToneGeneration;
  647. interface ITToneDetection;
  648. interface ITScriptableAudioFormat;
  649. interface ITPluggableTerminalSuperclassInfo;
  650. interface ITPluggableTerminalClassInfo;
  651. interface IEnumPluggableTerminalClassInfo;
  652. interface IEnumPluggableSuperclassInfo;
  653. interface ITDetectTone;
  654. interface ITCustomTone;
  655. [
  656. uuid( B1EFC382-9355-11d0-835C-00AA003CCABD ),
  657. helpstring("TAPI 3.0 ITTAPI interface"),
  658. pointer_default(unique),
  659. dual
  660. ]
  661. interface ITTAPI : IDispatch
  662. {
  663. [id(IDISPTAPI | 13), helpstring("Initialize")]
  664. HRESULT Initialize();
  665. [id(IDISPTAPI | 14), helpstring("Shutdown")]
  666. HRESULT Shutdown();
  667. [propget, id(IDISPTAPI | 1), helpstring("property Addresses")]
  668. HRESULT Addresses(
  669. [out, retval] VARIANT * pVariant
  670. );
  671. [id(IDISPTAPI | 2), hidden, helpstring("method EnumerateAddresses")]
  672. HRESULT EnumerateAddresses(
  673. [out, retval] IEnumAddress ** ppEnumAddress
  674. );
  675. [id(IDISPTAPI | 3), helpstring("method RegisterCallNotifications")]
  676. HRESULT RegisterCallNotifications(
  677. [in]ITAddress * pAddress,
  678. [in]VARIANT_BOOL fMonitor,
  679. [in]VARIANT_BOOL fOwner,
  680. [in]long lMediaTypes,
  681. [in]long lCallbackInstance,
  682. [out,retval]long * plRegister
  683. );
  684. [id(IDISPTAPI | 4), helpstring("method UnregisterNotifications")]
  685. HRESULT UnregisterNotifications(
  686. [in] long lRegister
  687. );
  688. [propget, id(IDISPTAPI | 5), helpstring("property CallHubs")]
  689. HRESULT CallHubs(
  690. [out, retval] VARIANT * pVariant
  691. );
  692. [id(IDISPTAPI | 6), hidden, helpstring("method EnumerateCallHubs")]
  693. HRESULT EnumerateCallHubs(
  694. [out, retval] IEnumCallHub ** ppEnumCallHub
  695. );
  696. [id(IDISPTAPI | 7), helpstring("method SetCallHubTracking")]
  697. HRESULT SetCallHubTracking(
  698. [in] VARIANT pAddresses,
  699. [in] VARIANT_BOOL bTracking
  700. );
  701. [id(IDISPTAPI | 8), hidden]
  702. HRESULT EnumeratePrivateTAPIObjects(
  703. [out] IEnumUnknown ** ppEnumUnknown
  704. );
  705. [propget, id(IDISPTAPI | 9), helpstring("property PrivateTAPIObjects")]
  706. HRESULT PrivateTAPIObjects(
  707. [out, retval] VARIANT * pVariant
  708. );
  709. [id(IDISPTAPI | 10), helpstring("method RegisterRequestRecipient")]
  710. HRESULT RegisterRequestRecipient(
  711. [in] long lRegistrationInstance,
  712. [in] long lRequestMode,
  713. [in] VARIANT_BOOL fEnable
  714. );
  715. [id(IDISPTAPI | 11), helpstring("method SetAssistedTelephonyPriority")]
  716. HRESULT SetAssistedTelephonyPriority(
  717. [in] BSTR pAppFilename,
  718. [in] VARIANT_BOOL fPriority
  719. );
  720. [id(IDISPTAPI | 12), helpstring("method SetApplicationPriority")]
  721. HRESULT SetApplicationPriority(
  722. [in] BSTR pAppFilename,
  723. [in] long lMediaType,
  724. [in] VARIANT_BOOL fPriority
  725. );
  726. [propput, id(IDISPTAPI | 15), helpstring("property EventFilter")]
  727. HRESULT EventFilter(
  728. [in] long lFilterMask
  729. );
  730. [propget, id(IDISPTAPI | 15), helpstring("property EventFilter")]
  731. HRESULT EventFilter(
  732. [out, retval] long * plFilterMask
  733. );
  734. }
  735. [
  736. uuid( 54FBDC8C-D90F-4dad-9695-B373097F094B ),
  737. helpstring("TAPI 3.1 ITTAPI2 interface"),
  738. dual
  739. ]
  740. interface ITTAPI2 : ITTAPI
  741. {
  742. //
  743. // get the phones that can be used on this address
  744. // returns a collection/enumeration for scripting and c/c++
  745. //
  746. [propget, id(IDISPTAPI | 16), helpstring("property Phones")]
  747. HRESULT Phones(
  748. [out, retval] VARIANT * pPhones
  749. );
  750. [id(IDISPTAPI | 17), hidden, helpstring("method EnumeratePhones")]
  751. HRESULT EnumeratePhones(
  752. [out, retval] IEnumPhone ** ppEnumPhone
  753. );
  754. [id(IDISPTAPI | 18), helpstring("method CreateEmptyCollectionObject")]
  755. HRESULT CreateEmptyCollectionObject(
  756. [out, retval] ITCollection2 ** ppCollection
  757. );
  758. }
  759. [
  760. uuid( B1EFC384-9355-11d0-835C-00AA003CCABD ),
  761. helpstring("TAPI 3.0 ITMediaSupport interface"),
  762. dual
  763. ]
  764. interface ITMediaSupport : IDispatch
  765. {
  766. [propget, id(IDISPMEDIASUPPORT | 1), helpstring("property MediaTypes")]
  767. HRESULT MediaTypes(
  768. [out, retval] long * plMediaTypes
  769. );
  770. [id(IDISPMEDIASUPPORT | 2), helpstring("method QueryMediaType")]
  771. HRESULT QueryMediaType(
  772. [in] long lMediaType,
  773. [out, retval] VARIANT_BOOL * pfSupport
  774. );
  775. }
  776. [
  777. uuid( 41757F4A-CF09-4b34-BC96-0A79D2390076 ),
  778. helpstring("TAPI 3.1 ITPluggableTerminalClassInfo interface"),
  779. dual
  780. ]
  781. interface ITPluggableTerminalClassInfo : IDispatch
  782. {
  783. //
  784. // Terminal Friendly Name
  785. //
  786. [id(1), propget, helpstring("method get_Name")]
  787. HRESULT Name(
  788. [out, retval] BSTR* pName
  789. );
  790. //
  791. // Company name
  792. //
  793. [id(2), propget, helpstring("method get_Company")]
  794. HRESULT Company(
  795. [out, retval] BSTR* pCompany
  796. );
  797. //
  798. // Terminal Version
  799. //
  800. [id(3), propget, helpstring("method get_Version")]
  801. HRESULT Version(
  802. [out, retval] BSTR* pVersion
  803. );
  804. //
  805. // TerminalClass
  806. //
  807. [id(4), propget, helpstring("method get_TerminalClass")]
  808. HRESULT TerminalClass(
  809. [out, retval] BSTR* pTerminalClass
  810. );
  811. //
  812. // This CLSID is used to CoCreate the terminal
  813. //
  814. [id(5), propget, helpstring("method get_CLSID")]
  815. HRESULT CLSID(
  816. [out, retval] BSTR* pCLSID
  817. );
  818. //
  819. // Direction supported by terminal
  820. //
  821. [id(6), propget, helpstring("method get_Direction")]
  822. HRESULT Direction(
  823. [out, retval] TERMINAL_DIRECTION* pDirection
  824. );
  825. //
  826. // Media Types supported by terminal
  827. //
  828. [id(7), propget, helpstring("method get_MediaTypes")]
  829. HRESULT MediaTypes(
  830. [out, retval] long* pMediaTypes
  831. );
  832. }
  833. [
  834. uuid( 6D54E42C-4625-4359-A6F7-631999107E05 ),
  835. helpstring("TAPI 3.1 ITPluggableTerminalSuperclassInfo interface"),
  836. dual
  837. ]
  838. interface ITPluggableTerminalSuperclassInfo : IDispatch
  839. {
  840. [id(1), propget, helpstring("method get_Name")]
  841. HRESULT Name(
  842. [out, retval] BSTR* pName
  843. );
  844. [id(2), propget, helpstring("method get_CLSID")]
  845. HRESULT CLSID(
  846. [out, retval] BSTR* pCLSID
  847. );
  848. }
  849. [
  850. uuid( B1EFC385-9355-11d0-835C-00AA003CCABD ),
  851. helpstring("TAPI 3.0 ITTerminalSupport interface"),
  852. dual
  853. ]
  854. interface ITTerminalSupport : IDispatch
  855. {
  856. [propget, id(IDISPAGGREGATEDMSPADDRESSOBJ | 1), helpstring("property StaticTerminals")]
  857. HRESULT StaticTerminals(
  858. [out, retval] VARIANT * pVariant
  859. );
  860. [id(IDISPAGGREGATEDMSPADDRESSOBJ | 2), hidden, helpstring("method EnumerateStaticTerminals")]
  861. HRESULT EnumerateStaticTerminals(
  862. [out, retval] IEnumTerminal ** ppTerminalEnumerator
  863. );
  864. [propget, id(IDISPAGGREGATEDMSPADDRESSOBJ | 3), helpstring("property DynamicTerminalClasses")]
  865. HRESULT DynamicTerminalClasses(
  866. [out, retval] VARIANT * pVariant
  867. );
  868. [id(IDISPAGGREGATEDMSPADDRESSOBJ | 4), hidden, helpstring("method EnumerateDynamicTerminalClasses")]
  869. HRESULT EnumerateDynamicTerminalClasses(
  870. [out, retval] IEnumTerminalClass ** ppTerminalClassEnumerator
  871. );
  872. [id(IDISPAGGREGATEDMSPADDRESSOBJ | 5), helpstring("method CreateTerminal")]
  873. HRESULT CreateTerminal(
  874. [in] BSTR pTerminalClass,
  875. [in] long lMediaType,
  876. [in] TERMINAL_DIRECTION Direction,
  877. [out, retval] ITTerminal ** ppTerminal
  878. );
  879. [id(IDISPAGGREGATEDMSPADDRESSOBJ | 6), helpstring("method GetDefaultStaticTerminal")]
  880. HRESULT GetDefaultStaticTerminal(
  881. [in] long lMediaType,
  882. [in] TERMINAL_DIRECTION Direction,
  883. [out, retval] ITTerminal ** ppTerminal
  884. );
  885. }
  886. [
  887. uuid( F3EB39BC-1B1F-4e99-A0C0-56305C4DD591 ),
  888. helpstring("TAPI 3.1 ITTerminalSupport2 interface"),
  889. dual
  890. ]
  891. interface ITTerminalSupport2 : ITTerminalSupport
  892. {
  893. [propget, id(IDISPAGGREGATEDMSPADDRESSOBJ | 7), helpstring("property PluggableSuperclasses")]
  894. HRESULT PluggableSuperclasses(
  895. [out, retval] VARIANT * pVariant
  896. );
  897. [id(IDISPAGGREGATEDMSPADDRESSOBJ | 8), hidden, helpstring("method EnumeratePluggableSuperclasses")]
  898. HRESULT EnumeratePluggableSuperclasses(
  899. [out, retval] IEnumPluggableSuperclassInfo ** ppSuperclassEnumerator
  900. );
  901. [propget, id(IDISPAGGREGATEDMSPADDRESSOBJ | 9), helpstring("property PluggableTerminalClasses")]
  902. HRESULT PluggableTerminalClasses(
  903. [in] BSTR bstrTerminalSuperclass,
  904. [in] long lMediaType,
  905. [out, retval] VARIANT * pVariant
  906. );
  907. [id(IDISPAGGREGATEDMSPADDRESSOBJ | 10), hidden, helpstring("method EnumeratePluggableTerminalClasses")]
  908. HRESULT EnumeratePluggableTerminalClasses(
  909. [in] CLSID iidTerminalSuperclass,
  910. [in] long lMediaType,
  911. [out, retval] IEnumPluggableTerminalClassInfo ** ppClassEnumerator
  912. );
  913. }
  914. [
  915. uuid( B1EFC386-9355-11d0-835C-00AA003CCABD ),
  916. helpstring("TAPI 3.0 ITAddress interface"),
  917. dual
  918. ]
  919. interface ITAddress : IDispatch
  920. {
  921. [propget, id(IDISPADDRESS | 1), helpstring("property State")]
  922. HRESULT State(
  923. [out, retval] ADDRESS_STATE * pAddressState
  924. );
  925. [propget, id(IDISPADDRESS | 2), helpstring("property AddressName")]
  926. HRESULT AddressName(
  927. [out, retval] BSTR * ppName
  928. );
  929. [propget, id(IDISPADDRESS | 3), helpstring("property ServiceProviderName")]
  930. HRESULT ServiceProviderName(
  931. [out, retval] BSTR * ppName
  932. );
  933. [propget, id(IDISPADDRESS | 4), helpstring("property TAPIObject")]
  934. HRESULT TAPIObject(
  935. [out, retval] ITTAPI ** ppTapiObject
  936. );
  937. [id(IDISPADDRESS | 5), helpstring("method CreateCall")]
  938. HRESULT CreateCall(
  939. [in] BSTR pDestAddress,
  940. [in] long lAddressType,
  941. [in] long lMediaTypes,
  942. [out, retval] ITBasicCallControl ** ppCall
  943. );
  944. [propget, id(IDISPADDRESS | 6), helpstring("property Calls")]
  945. HRESULT Calls(
  946. [out, retval] VARIANT * pVariant
  947. );
  948. [id(IDISPADDRESS | 7), hidden, helpstring("method EnumerateCalls")]
  949. HRESULT EnumerateCalls(
  950. [out, retval] IEnumCall ** ppCallEnum
  951. );
  952. [propget, id(IDISPADDRESS | 8), helpstring("property DialableAddress")]
  953. HRESULT DialableAddress(
  954. [out,retval] BSTR * pDialableAddress
  955. );
  956. [id(IDISPADDRESS | 10), helpstring("method CreateForwardInfoObject")]
  957. HRESULT CreateForwardInfoObject(
  958. [out, retval] ITForwardInformation ** ppForwardInfo
  959. );
  960. [id(IDISPADDRESS | 11), helpstring("method Forward")]
  961. HRESULT Forward(
  962. [in] ITForwardInformation * pForwardInfo,
  963. [in] ITBasicCallControl * pCall
  964. );
  965. [propget, id(IDISPADDRESS | 12), helpstring("method Forward")]
  966. HRESULT CurrentForwardInfo(
  967. [out, retval] ITForwardInformation ** ppForwardInfo
  968. );
  969. [propput, id(IDISPADDRESS | 14), helpstring("property MessageWaiting")]
  970. HRESULT MessageWaiting(
  971. [in] VARIANT_BOOL fMessageWaiting
  972. );
  973. [propget, id(IDISPADDRESS | 14), helpstring("property MessageWaiting")]
  974. HRESULT MessageWaiting(
  975. [out, retval] VARIANT_BOOL * pfMessageWaiting
  976. );
  977. [propput, id(IDISPADDRESS | 15), helpstring("property DoNotDisturb")]
  978. HRESULT DoNotDisturb(
  979. [in] VARIANT_BOOL fDoNotDisturb
  980. );
  981. [propget, id(IDISPADDRESS | 15), helpstring("property DoNotDisturb")]
  982. HRESULT DoNotDisturb(
  983. [out, retval] VARIANT_BOOL * pfDoNotDisturb
  984. );
  985. }
  986. ///////////////////////////////////////////////////////
  987. // ITAddress2
  988. ///////////////////////////////////////////////////////
  989. [
  990. uuid( B0AE5D9B-BE51-46c9-B0F7-DFA8A22A8BC4 ),
  991. helpstring("TAPI 3.1 ITAddress2 interface"),
  992. dual
  993. ]
  994. interface ITAddress2 : ITAddress
  995. {
  996. //
  997. // get the phones that can be used on this address
  998. // returns a collection/enumeration for scripting and c/c++
  999. //
  1000. [propget, id(IDISPADDRESS | 16), helpstring("property Phones")]
  1001. HRESULT Phones(
  1002. [out, retval] VARIANT * pPhones
  1003. );
  1004. [id(IDISPADDRESS | 17), hidden, helpstring("method EnumeratePhones")]
  1005. HRESULT EnumeratePhones(
  1006. [out, retval] IEnumPhone ** ppEnumPhone
  1007. );
  1008. [id(IDISPADDRESS | 18), helpstring("method GetPhoneFromTerminal")]
  1009. HRESULT GetPhoneFromTerminal(
  1010. [in] ITTerminal * pTerminal,
  1011. [out, retval] ITPhone ** ppPhone
  1012. );
  1013. [propget, id(IDISPADDRESS | 20), helpstring("property PreferredPhones")]
  1014. HRESULT PreferredPhones(
  1015. [out, retval] VARIANT * pPhones
  1016. );
  1017. [id(IDISPADDRESS | 21), hidden, helpstring("method EnumeratePreferredPhones")]
  1018. HRESULT EnumeratePreferredPhones(
  1019. [out, retval] IEnumPhone ** ppEnumPhone
  1020. );
  1021. //
  1022. // Filtering events
  1023. //
  1024. [propget, id(IDISPADDRESS | 19), helpstring("method EventFilter")]
  1025. HRESULT EventFilter(
  1026. [in] TAPI_EVENT TapiEvent,
  1027. [in] long lSubEvent,
  1028. [out,retval] VARIANT_BOOL* pEnable
  1029. );
  1030. [propput, id(IDISPADDRESS | 19), helpstring("method EventFilter")]
  1031. HRESULT EventFilter(
  1032. [in] TAPI_EVENT TapiEvent,
  1033. [in] long lSubEvent,
  1034. [in] VARIANT_BOOL bEnable
  1035. );
  1036. //
  1037. // device specific methods
  1038. //
  1039. [id(IDISPADDRESS | 22), hidden, helpstring("method DeviceSpecific")]
  1040. HRESULT DeviceSpecific(
  1041. [in] ITCallInfo *pCall,
  1042. [in] BYTE *pParams,
  1043. [in] DWORD dwSize
  1044. );
  1045. [id(IDISPADDRESS | 23), helpstring("method DeviceSpecificVariant")]
  1046. HRESULT DeviceSpecificVariant(
  1047. [in] ITCallInfo *pCall,
  1048. [in] VARIANT varDevSpecificByteArray
  1049. );
  1050. [id(IDISPADDRESS | 24), helpstring("method NegotiateExtVersion")]
  1051. HRESULT NegotiateExtVersion (
  1052. [in] long lLowVersion,
  1053. [in] long lHighVersion,
  1054. [out, retval] long *plExtVersion
  1055. );
  1056. }
  1057. [
  1058. uuid( 8DF232F5-821B-11d1-BB5C-00C04FB6809F ),
  1059. helpstring("TAPI 3.0 ITAddressCapabilities interface"),
  1060. dual
  1061. ]
  1062. interface ITAddressCapabilities : IDispatch
  1063. {
  1064. [propget, id(IDISPADDRESSCAPABILITIES | 1), helpstring("property AddressCapability")]
  1065. HRESULT AddressCapability(
  1066. [in] ADDRESS_CAPABILITY AddressCap,
  1067. [out, retval] long * plCapability
  1068. );
  1069. [propget, id(IDISPADDRESSCAPABILITIES | 2), helpstring("property AddressCapabilityString")]
  1070. HRESULT AddressCapabilityString(
  1071. [in] ADDRESS_CAPABILITY_STRING AddressCapString,
  1072. [out, retval] BSTR * ppCapabilityString
  1073. );
  1074. [propget, id(IDISPADDRESSCAPABILITIES | 3), helpstring("property CallTreatments")]
  1075. HRESULT CallTreatments( [out, retval] VARIANT * pVariant );
  1076. [id(IDISPADDRESSCAPABILITIES | 4), hidden]
  1077. HRESULT EnumerateCallTreatments( [out, retval] IEnumBstr ** ppEnumCallTreatment );
  1078. [propget, id(IDISPADDRESSCAPABILITIES | 5), helpstring("property CompletionMessages")]
  1079. HRESULT CompletionMessages( [out, retval] VARIANT * pVariant );
  1080. [id(IDISPADDRESSCAPABILITIES | 6), hidden]
  1081. HRESULT EnumerateCompletionMessages( [out, retval] IEnumBstr ** ppEnumCompletionMessage );
  1082. [propget, id(IDISPADDRESSCAPABILITIES | 7), helpstring("property DeviceClasses")]
  1083. HRESULT DeviceClasses( [out, retval] VARIANT * pVariant );
  1084. [id(IDISPADDRESSCAPABILITIES | 8), hidden]
  1085. HRESULT EnumerateDeviceClasses( [out, retval] IEnumBstr ** ppEnumDeviceClass );
  1086. }
  1087. ///////////////////////////////////////////////////////
  1088. // ITPhone
  1089. ///////////////////////////////////////////////////////
  1090. [
  1091. uuid( 09D48DB4-10CC-4388-9DE7-A8465618975A ),
  1092. helpstring("TAPI 3.1 ITPhone interface"),
  1093. dual
  1094. ]
  1095. interface ITPhone : IDispatch
  1096. {
  1097. //
  1098. // opens the phone devices
  1099. //
  1100. [id(IDISPPHONE | 1), helpstring("method Open")]
  1101. HRESULT Open(
  1102. [in] PHONE_PRIVILEGE Privilege
  1103. );
  1104. //
  1105. // closes the phone
  1106. //
  1107. [id(IDISPPHONE | 2), helpstring("method Close")]
  1108. HRESULT Close();
  1109. //
  1110. // returns a collection/enumeration of addresses that the phone
  1111. // can be used on
  1112. //
  1113. [propget, id(IDISPPHONE | 3), helpstring("property Addresses")]
  1114. HRESULT Addresses(
  1115. [out, retval] VARIANT * pAddresses
  1116. );
  1117. [id(IDISPPHONE | 4), hidden, helpstring("method EnumerateAddresses")]
  1118. HRESULT EnumerateAddresses(
  1119. [out, retval] IEnumAddress ** ppEnumAddress
  1120. );
  1121. //
  1122. // gets a DWORD (long) capability of the phone, based on the PHONECAPS_LONG
  1123. // passed in.
  1124. //
  1125. [propget, id(IDISPPHONE | 5), helpstring("property PhoneCapsLong")]
  1126. HRESULT PhoneCapsLong(
  1127. [in] PHONECAPS_LONG pclCap,
  1128. [out, retval] long * plCapability
  1129. );
  1130. //
  1131. // gets a string capability/information about the phone, based on the PHONECAPS_STRING
  1132. // passed in.
  1133. //
  1134. [propget, id(IDISPPHONE | 6), helpstring("property PhoneCapsString")]
  1135. HRESULT PhoneCapsString(
  1136. [in] PHONECAPS_STRING pcsCap,
  1137. [out, retval] BSTR * ppCapability
  1138. );
  1139. //
  1140. // gets a collection/enumerations of terminals that are the terminals that
  1141. // are associated with the phone.
  1142. //
  1143. [propget, id(IDISPPHONE | 7), helpstring("property Terminals")]
  1144. HRESULT Terminals(
  1145. [in] ITAddress * pAddress,
  1146. [out, retval] VARIANT * pTerminals
  1147. );
  1148. [id(IDISPPHONE | 8), hidden, helpstring("method EnumerateTerminals")]
  1149. HRESULT EnumerateTerminals(
  1150. [in] ITAddress * pAddress,
  1151. [out, retval] IEnumTerminal ** ppEnumTerminal
  1152. );
  1153. //
  1154. // get the button mode
  1155. //
  1156. [propget, id(IDISPPHONE | 9), helpstring("property ButtonMode")]
  1157. HRESULT ButtonMode(
  1158. [in] long lButtonID,
  1159. [out, retval] PHONE_BUTTON_MODE * pButtonMode
  1160. );
  1161. //
  1162. // put the button mode
  1163. //
  1164. [propput, id(IDISPPHONE | 9), helpstring("property ButtonMode")]
  1165. HRESULT ButtonMode(
  1166. [in] long lButtonID,
  1167. [in] PHONE_BUTTON_MODE ButtonMode
  1168. );
  1169. //
  1170. // get the button function
  1171. //
  1172. [propget, id(IDISPPHONE | 10), helpstring("property ButtonFunction")]
  1173. HRESULT ButtonFunction(
  1174. [in] long lButtonID,
  1175. [out, retval] PHONE_BUTTON_FUNCTION * pButtonFunction
  1176. );
  1177. //
  1178. // put the button function
  1179. //
  1180. [propput, id(IDISPPHONE | 10), helpstring("property ButtonFunction")]
  1181. HRESULT ButtonFunction(
  1182. [in] long lButtonID,
  1183. [in] PHONE_BUTTON_FUNCTION ButtonFunction
  1184. );
  1185. //
  1186. // get the button text
  1187. //
  1188. [propget, id(IDISPPHONE | 11), helpstring("property ButtonText")]
  1189. HRESULT ButtonText(
  1190. [in] long lButtonID,
  1191. [out, retval] BSTR * ppButtonText
  1192. );
  1193. //
  1194. // set the button text
  1195. //
  1196. [propput, id(IDISPPHONE | 11), helpstring("property ButtonText")]
  1197. HRESULT ButtonText(
  1198. [in] long lButtonID,
  1199. [in] BSTR bstrButtonText
  1200. );
  1201. //
  1202. // get the button state
  1203. //
  1204. [propget, id(IDISPPHONE | 12), helpstring("property ButtonState")]
  1205. HRESULT ButtonState(
  1206. [in] long lButtonID,
  1207. [out, retval] PHONE_BUTTON_STATE * pButtonState
  1208. );
  1209. //
  1210. // set the current hookswitch state
  1211. //
  1212. [propget, id(IDISPPHONE | 13), helpstring("property HookSwitchState")]
  1213. HRESULT HookSwitchState(
  1214. [in] PHONE_HOOK_SWITCH_DEVICE HookSwitchDevice,
  1215. [out, retval] PHONE_HOOK_SWITCH_STATE * pHookSwitchState
  1216. );
  1217. //
  1218. // set the current hookswitch state
  1219. //
  1220. [propput, id(IDISPPHONE | 13), helpstring("property HookSwitchState")]
  1221. HRESULT HookSwitchState(
  1222. [in] PHONE_HOOK_SWITCH_DEVICE HookSwitchDevice,
  1223. [in] PHONE_HOOK_SWITCH_STATE HookSwitchState
  1224. );
  1225. //
  1226. // set the ring mode for the phone
  1227. //
  1228. [propput, id(IDISPPHONE | 14), helpstring("property RingMode")]
  1229. HRESULT RingMode(
  1230. [in] long lRingMode
  1231. );
  1232. //
  1233. // get the ring mode for the phone
  1234. //
  1235. [propget, id(IDISPPHONE | 14), helpstring("property RingMode")]
  1236. HRESULT RingMode(
  1237. [out, retval] long * plRingMode
  1238. );
  1239. //
  1240. // set the ring volume for the phone
  1241. //
  1242. [propput, id(IDISPPHONE | 15), helpstring("property RingVolume")]
  1243. HRESULT RingVolume(
  1244. [in] long lRingVolume
  1245. );
  1246. //
  1247. // get the ring volume for the phone
  1248. //
  1249. [propget, id(IDISPPHONE | 15), helpstring("property RingVolume")]
  1250. HRESULT RingVolume(
  1251. [out, retval] long * plRingVolume
  1252. );
  1253. //
  1254. // get the privilege for the phone
  1255. //
  1256. [propget, id(IDISPPHONE | 16), helpstring("property Privilege")]
  1257. HRESULT Privilege(
  1258. [out, retval] PHONE_PRIVILEGE * pPrivilege
  1259. );
  1260. [id(IDISPPHONE | 17), hidden, helpstring("method GetPhoneDevCapsBuffer")]
  1261. HRESULT GetPhoneCapsBuffer(
  1262. [in] PHONECAPS_BUFFER pcbCaps,
  1263. [out] DWORD *pdwSize,
  1264. [out] BYTE **ppPhoneCapsBuffer
  1265. );
  1266. [propget, id(IDISPPHONE | 18), helpstring("property PhoneCapsBuffer")]
  1267. HRESULT PhoneCapsBuffer(
  1268. [in] PHONECAPS_BUFFER pcbCaps,
  1269. [out, retval] VARIANT *pVarBuffer
  1270. );
  1271. [propget, id(IDISPPHONE | 19), helpstring("property LampMode")]
  1272. HRESULT LampMode(
  1273. [in] long lLampID,
  1274. [out, retval] PHONE_LAMP_MODE * pLampMode
  1275. );
  1276. [propput, id(IDISPPHONE | 19), helpstring("property LampMode")]
  1277. HRESULT LampMode(
  1278. [in] long lLampID,
  1279. [in] PHONE_LAMP_MODE LampMode
  1280. );
  1281. [propget, id(IDISPPHONE | 20), helpstring("property Display")]
  1282. HRESULT Display(
  1283. [out, retval] BSTR *pbstrDisplay
  1284. );
  1285. [id(IDISPPHONE | 21), helpstring("method SetDisplay")]
  1286. HRESULT SetDisplay(
  1287. [in] long lRow,
  1288. [in] long lColumn,
  1289. [in] BSTR bstrDisplay
  1290. );
  1291. //
  1292. // returns a collection/enumeration of addresses that the phone
  1293. // is preferred on
  1294. //
  1295. [propget, id(IDISPPHONE | 22), helpstring("property PreferredAddresses")]
  1296. HRESULT PreferredAddresses(
  1297. [out, retval] VARIANT * pAddresses
  1298. );
  1299. [id(IDISPPHONE | 23), hidden, helpstring("method EnumeratePreferredAddresses")]
  1300. HRESULT EnumeratePreferredAddresses(
  1301. [out, retval] IEnumAddress ** ppEnumAddress
  1302. );
  1303. //
  1304. // device specific methods
  1305. //
  1306. [id(IDISPADDRESS | 24), hidden, helpstring("method DeviceSpecific")]
  1307. HRESULT DeviceSpecific(
  1308. [in] BYTE *pParams,
  1309. [in] DWORD dwSize
  1310. );
  1311. [id(IDISPADDRESS | 25), helpstring("method DeviceSpecificVariant")]
  1312. HRESULT DeviceSpecificVariant(
  1313. [in] VARIANT varDevSpecificByteArray
  1314. );
  1315. [id(IDISPADDRESS | 26), helpstring("method NegotiateExtVersion")]
  1316. HRESULT NegotiateExtVersion(
  1317. [in] long lLowVersion,
  1318. [in] long lHighVersion,
  1319. [out, retval] long *plExtVersion
  1320. );
  1321. }
  1322. ///////////////////////////////////////////////////////
  1323. // ITAutomatedPhoneControl
  1324. ///////////////////////////////////////////////////////
  1325. [
  1326. uuid( 1EE1AF0E-6159-4a61-B79B-6A4BA3FC9DFC ),
  1327. helpstring("TAPI 3.1 ITAutomatedPhoneControl interface"),
  1328. dual
  1329. ]
  1330. interface ITAutomatedPhoneControl : IDispatch
  1331. {
  1332. [id(IDISPAPC | 1), helpstring("method StartTone")]
  1333. HRESULT StartTone(
  1334. [in] PHONE_TONE Tone,
  1335. [in] long lDuration
  1336. );
  1337. [id(IDISPAPC | 2), helpstring("method StopTone")]
  1338. HRESULT StopTone();
  1339. [propget, id(IDISPAPC | 3), helpstring("property Tone")]
  1340. HRESULT Tone(
  1341. [out, retval] PHONE_TONE * pTone
  1342. );
  1343. [id(IDISPAPC | 4), helpstring("method StartRinger")]
  1344. HRESULT StartRinger(
  1345. [in] long lRingMode,
  1346. [in] long lDuration
  1347. );
  1348. [id(IDISPAPC | 5), helpstring("method StopRinger")]
  1349. HRESULT StopRinger();
  1350. [propget, id(IDISPAPC | 6), helpstring("property Ringer")]
  1351. HRESULT Ringer(
  1352. [out, retval] VARIANT_BOOL * pfRinging
  1353. );
  1354. [propput, id(IDISPAPC | 7), helpstring("property PhoneHandlingEnabled")]
  1355. HRESULT PhoneHandlingEnabled(
  1356. [in] VARIANT_BOOL fEnabled
  1357. );
  1358. [propget, id(IDISPAPC | 7), helpstring("property PhoneHandlingEnabled")]
  1359. HRESULT PhoneHandlingEnabled(
  1360. [out, retval] VARIANT_BOOL * pfEnabled
  1361. );
  1362. [propput, id(IDISPAPC | 8), helpstring("property AutoEndOfNumberTimeout")]
  1363. HRESULT AutoEndOfNumberTimeout(
  1364. [in] long lTimeout
  1365. );
  1366. [propget, id(IDISPAPC | 8), helpstring("property AutoEndOfNumberTimeout")]
  1367. HRESULT AutoEndOfNumberTimeout(
  1368. [out, retval] long * plTimeout
  1369. );
  1370. [propput, id(IDISPAPC | 9), helpstring("property AutoDialtone")]
  1371. HRESULT AutoDialtone(
  1372. [in] VARIANT_BOOL fEnabled
  1373. );
  1374. [propget, id(IDISPAPC | 9), helpstring("property AutoDialtone")]
  1375. HRESULT AutoDialtone(
  1376. [out, retval] VARIANT_BOOL * pfEnabled
  1377. );
  1378. [propput, id(IDISPAPC | 10), helpstring("property AutoStopTonesOnOnHook")]
  1379. HRESULT AutoStopTonesOnOnHook(
  1380. [in] VARIANT_BOOL fEnabled
  1381. );
  1382. [propget, id(IDISPAPC | 10), helpstring("property AutoStopTonesOnOnHook")]
  1383. HRESULT AutoStopTonesOnOnHook(
  1384. [out, retval] VARIANT_BOOL * pfEnabled
  1385. );
  1386. [propput, id(IDISPAPC | 11), helpstring("property AutoStopRingOnOffHook")]
  1387. HRESULT AutoStopRingOnOffHook(
  1388. [in] VARIANT_BOOL fEnabled
  1389. );
  1390. [propget, id(IDISPAPC | 11), helpstring("property AutoStopRingOnOffHook")]
  1391. HRESULT AutoStopRingOnOffHook(
  1392. [out, retval] VARIANT_BOOL * pfEnabled
  1393. );
  1394. [propput, id(IDISPAPC | 12), helpstring("property AutoKeypadTones")]
  1395. HRESULT AutoKeypadTones(
  1396. [in] VARIANT_BOOL fEnabled
  1397. );
  1398. [propget, id(IDISPAPC | 12), helpstring("property AutoKeypadTones")]
  1399. HRESULT AutoKeypadTones (
  1400. [out, retval] VARIANT_BOOL * pfEnabled
  1401. );
  1402. [propput, id(IDISPAPC | 13), helpstring("property AutoKeypadTonesMinimumDuration")]
  1403. HRESULT AutoKeypadTonesMinimumDuration(
  1404. [in] long lDuration
  1405. );
  1406. [propget, id(IDISPAPC | 13), helpstring("property AutoKeypadTonesMinimumDuration")]
  1407. HRESULT AutoKeypadTonesMinimumDuration(
  1408. [out, retval] long * plDuration
  1409. );
  1410. [propput, id(IDISPAPC | 14), helpstring("property AutoVolumeControl")]
  1411. HRESULT AutoVolumeControl(
  1412. [in] VARIANT_BOOL fEnabled
  1413. );
  1414. [propget, id(IDISPAPC | 14), helpstring("property AutoVolumeControl")]
  1415. HRESULT AutoVolumeControl(
  1416. [out, retval] VARIANT_BOOL * fEnabled
  1417. );
  1418. [propput, id(IDISPAPC | 15), helpstring("property AutoVolumeControlStep")]
  1419. HRESULT AutoVolumeControlStep(
  1420. [in] long lStepSize
  1421. );
  1422. [propget, id(IDISPAPC | 15), helpstring("property AutoVolumeControlStep")]
  1423. HRESULT AutoVolumeControlStep(
  1424. [out, retval] long * plStepSize
  1425. );
  1426. [propput, id(IDISPAPC | 16), helpstring("property AutoVolumeControlRepeatDelay")]
  1427. HRESULT AutoVolumeControlRepeatDelay(
  1428. [in] long lDelay
  1429. );
  1430. [propget, id(IDISPAPC | 16), helpstring("property AutoVolumeControlRepeatDelay")]
  1431. HRESULT AutoVolumeControlRepeatDelay(
  1432. [out, retval] long * plDelay
  1433. );
  1434. [propput, id(IDISPAPC | 17), helpstring("property AutoVolumeControlRepeatPeriod")]
  1435. HRESULT AutoVolumeControlRepeatPeriod(
  1436. [in] long lPeriod
  1437. );
  1438. [propget, id(IDISPAPC | 17), helpstring("property AutoVolumeControlRepeatPeriod")]
  1439. HRESULT AutoVolumeControlRepeatPeriod(
  1440. [out, retval] long * plPeriod
  1441. );
  1442. [id(IDISPAPC | 18), helpstring("method SelectCall")]
  1443. HRESULT SelectCall(
  1444. [in] ITCallInfo * pCall,
  1445. [in] VARIANT_BOOL fSelectDefaultTerminals
  1446. );
  1447. [id(IDISPAPC | 19), helpstring("method UnselectCall")]
  1448. HRESULT UnselectCall(
  1449. [in] ITCallInfo * pCall
  1450. );
  1451. [id(IDISPAPC | 20), hidden, helpstring("method EnumerateSelectedCalls")]
  1452. HRESULT EnumerateSelectedCalls(
  1453. [out, retval] IEnumCall ** ppCallEnum
  1454. );
  1455. [propget, id(IDISPAPC | 21), helpstring("property SelectedCalls")]
  1456. HRESULT SelectedCalls(
  1457. [out, retval] VARIANT * pVariant
  1458. );
  1459. }
  1460. [
  1461. uuid( B1EFC389-9355-11d0-835C-00AA003CCABD ),
  1462. helpstring("TAPI 3.0 ITBasicCallControl interface"),
  1463. dual
  1464. ]
  1465. interface ITBasicCallControl : IDispatch
  1466. {
  1467. [id(IDISPBASICCALLCONTROL | 3), helpstring("method Connect")]
  1468. HRESULT Connect(
  1469. [in] VARIANT_BOOL fSync
  1470. );
  1471. [id(IDISPBASICCALLCONTROL | 4), helpstring("method Answer")]
  1472. HRESULT Answer();
  1473. [id(IDISPBASICCALLCONTROL | 5), helpstring("method Disconnect")]
  1474. HRESULT Disconnect(
  1475. [in] DISCONNECT_CODE code
  1476. );
  1477. [id(IDISPBASICCALLCONTROL | 6), helpstring("method Hold")]
  1478. HRESULT Hold(
  1479. [in] VARIANT_BOOL fHold
  1480. );
  1481. [id(IDISPBASICCALLCONTROL | 7), helpstring("method HandoffDirect")]
  1482. HRESULT HandoffDirect(
  1483. [in] BSTR pApplicationName
  1484. );
  1485. [id(IDISPBASICCALLCONTROL | 8), helpstring("method HandoffIndirect")]
  1486. HRESULT HandoffIndirect(
  1487. [in] long lMediaType
  1488. );
  1489. [id(IDISPBASICCALLCONTROL | 9), helpstring("method Conference")]
  1490. HRESULT Conference(
  1491. [in] ITBasicCallControl * pCall,
  1492. [in] VARIANT_BOOL fSync
  1493. );
  1494. [id(IDISPBASICCALLCONTROL | 10), helpstring("method Transfer")]
  1495. HRESULT Transfer(
  1496. [in] ITBasicCallControl * pCall,
  1497. [in] VARIANT_BOOL fSync
  1498. );
  1499. [id(IDISPBASICCALLCONTROL | 11), helpstring("method BlindTransfer")]
  1500. HRESULT BlindTransfer(
  1501. [in] BSTR pDestAddress
  1502. );
  1503. [id(IDISPBASICCALLCONTROL | 12), helpstring("method SwapHold")]
  1504. HRESULT SwapHold(
  1505. [in] ITBasicCallControl * pCall
  1506. );
  1507. [id(IDISPBASICCALLCONTROL | 13), helpstring("method ParkDirect")]
  1508. HRESULT ParkDirect(
  1509. [in] BSTR pParkAddress
  1510. );
  1511. [id(IDISPBASICCALLCONTROL | 14), helpstring("method ParkIndirect")]
  1512. HRESULT ParkIndirect(
  1513. [out, retval] BSTR * ppNonDirAddress
  1514. );
  1515. [id(IDISPBASICCALLCONTROL | 15), helpstring("method Unpark")]
  1516. HRESULT Unpark();
  1517. [id(IDISPBASICCALLCONTROL | 16), helpstring("method SetQOS")]
  1518. HRESULT SetQOS(
  1519. [in] long lMediaType,
  1520. [in] QOS_SERVICE_LEVEL ServiceLevel
  1521. );
  1522. [id(IDISPBASICCALLCONTROL | 19), helpstring("method Pickup")]
  1523. HRESULT Pickup(
  1524. [in] BSTR pGroupID
  1525. );
  1526. [id(IDISPBASICCALLCONTROL | 20), helpstring("method Dial")]
  1527. HRESULT Dial(
  1528. [in] BSTR pDestAddress
  1529. );
  1530. [id(IDISPBASICCALLCONTROL | 21), helpstring("method Finish")]
  1531. HRESULT Finish(
  1532. [in] FINISH_MODE finishMode
  1533. );
  1534. [id(IDISPBASICCALLCONTROL | 22), helpstring("method RemoveFromConference")]
  1535. HRESULT RemoveFromConference();
  1536. }
  1537. [
  1538. uuid( 350F85D1-1227-11D3-83D4-00C04FB6809F ),
  1539. helpstring("TAPI 3.0 ITCallInfo interface"),
  1540. dual
  1541. ]
  1542. interface ITCallInfo : IDispatch
  1543. {
  1544. [propget, id(IDISPCALLINFO | 1), helpstring("property Address")]
  1545. HRESULT Address(
  1546. [out, retval] ITAddress ** ppAddress
  1547. );
  1548. [propget, id(IDISPCALLINFO | 2), helpstring("property CallState")]
  1549. HRESULT CallState(
  1550. [out, retval] CALL_STATE * pCallState
  1551. );
  1552. [propget, id(IDISPCALLINFO | 3), helpstring("property Privilege")]
  1553. HRESULT Privilege(
  1554. [out, retval] CALL_PRIVILEGE * pPrivilege
  1555. );
  1556. [propget, id(IDISPCALLINFO | 4), helpstring("property CallHub")]
  1557. HRESULT CallHub(
  1558. [out,retval] ITCallHub ** ppCallHub
  1559. );
  1560. [propget, id(IDISPCALLINFO | 5), helpstring("property CallInfoLong")]
  1561. HRESULT CallInfoLong(
  1562. [in] CALLINFO_LONG CallInfoLong,
  1563. [out, retval] long * plCallInfoLongVal
  1564. );
  1565. [propput, id(IDISPCALLINFO | 5), helpstring("property CallInfoLong")]
  1566. HRESULT CallInfoLong(
  1567. [in] CALLINFO_LONG CallInfoLong,
  1568. [in] long lCallInfoLongVal
  1569. );
  1570. [propget, id(IDISPCALLINFO | 6), helpstring("property CallInfoString")]
  1571. HRESULT CallInfoString(
  1572. [in] CALLINFO_STRING CallInfoString,
  1573. [out, retval] BSTR * ppCallInfoString
  1574. );
  1575. [propput, id(IDISPCALLINFO | 6), helpstring("property CallInfoString")]
  1576. HRESULT CallInfoString(
  1577. [in] CALLINFO_STRING CallInfoString,
  1578. [in] BSTR pCallInfoString
  1579. );
  1580. [propget, id(IDISPCALLINFO | 7), helpstring("property CallInfoBuffer")]
  1581. HRESULT CallInfoBuffer(
  1582. [in] CALLINFO_BUFFER CallInfoBuffer,
  1583. [out, retval] VARIANT * ppCallInfoBuffer
  1584. );
  1585. [propput, id(IDISPCALLINFO | 7), helpstring("property CallInfoBuffer")]
  1586. HRESULT CallInfoBuffer(
  1587. [in] CALLINFO_BUFFER CallInfoBuffer,
  1588. [in] VARIANT pCallInfoBuffer
  1589. );
  1590. [id(IDISPCALLINFO | 8), hidden]
  1591. HRESULT GetCallInfoBuffer(
  1592. [in] CALLINFO_BUFFER CallInfoBuffer,
  1593. [out] DWORD * pdwSize,
  1594. [out, size_is(,*pdwSize)] BYTE ** ppCallInfoBuffer
  1595. );
  1596. [id(IDISPCALLINFO | 9), hidden]
  1597. HRESULT SetCallInfoBuffer(
  1598. [in] CALLINFO_BUFFER CallInfoBuffer,
  1599. [in] DWORD dwSize,
  1600. [in, size_is(dwSize)] BYTE * pCallInfoBuffer
  1601. );
  1602. [id(IDISPCALLINFO | 10), helpstring("method ReleaseUserUserInfo")]
  1603. HRESULT ReleaseUserUserInfo();
  1604. }
  1605. [
  1606. uuid( 94D70CA6-7AB0-4daa-81CA-B8F8643FAEC1 ),
  1607. helpstring("TAPI 3.1 ITCallInfo2 interface"),
  1608. dual
  1609. ]
  1610. interface ITCallInfo2 : ITCallInfo
  1611. {
  1612. [propget, id(IDISPCALLINFO | 11), helpstring("method EventFilter")]
  1613. HRESULT EventFilter(
  1614. [in] TAPI_EVENT TapiEvent,
  1615. [in] long lSubEvent,
  1616. [out,retval] VARIANT_BOOL* pEnable
  1617. );
  1618. [propput, id(IDISPCALLINFO | 11), helpstring("method EventFilter")]
  1619. HRESULT EventFilter(
  1620. [in] TAPI_EVENT TapiEvent,
  1621. [in] long lSubEvent,
  1622. [in] VARIANT_BOOL bEnable
  1623. );
  1624. }
  1625. //
  1626. // Implemented by the MSP's Terminal objects.
  1627. //
  1628. [
  1629. uuid( B1EFC38A-9355-11d0-835C-00AA003CCABD ),
  1630. helpstring("TAPI 3.0 ITTerminal interface"),
  1631. dual
  1632. ]
  1633. interface ITTerminal : IDispatch
  1634. {
  1635. [propget, id(1), helpstring("property Name")]
  1636. HRESULT Name(
  1637. [out, retval] BSTR * ppName
  1638. );
  1639. [propget, id(2), helpstring("property State")]
  1640. HRESULT State(
  1641. [out, retval] TERMINAL_STATE * pTerminalState
  1642. );
  1643. [propget, id(3), helpstring("property TerminalType")]
  1644. HRESULT TerminalType(
  1645. [out, retval] TERMINAL_TYPE * pType
  1646. );
  1647. // terminal class is actually a guid
  1648. [propget, id(4), helpstring("property TerminalClass")]
  1649. HRESULT TerminalClass(
  1650. [out, retval] BSTR * ppTerminalClass
  1651. );
  1652. [propget, id(5), helpstring("property MediaType")]
  1653. HRESULT MediaType(
  1654. [out, retval] long * plMediaType
  1655. );
  1656. [propget, id(6), helpstring("property Direction")]
  1657. HRESULT Direction(
  1658. [out, retval] TERMINAL_DIRECTION *pDirection
  1659. );
  1660. }
  1661. //
  1662. // implemented by multitrack terminals
  1663. //
  1664. [
  1665. object,
  1666. uuid(FE040091-ADE8-4072-95C9-BF7DE8C54B44),
  1667. dual,
  1668. helpstring("ITMultiTrackTerminal Interface"),
  1669. ]
  1670. interface ITMultiTrackTerminal : IDispatch
  1671. {
  1672. [propget, id(IDISPMULTITRACK | 1), helpstring("property TrackTerminals")]
  1673. HRESULT TrackTerminals(
  1674. [out, retval] VARIANT *pVariant
  1675. );
  1676. [id(IDISPMULTITRACK | 2), hidden, helpstring("method EnumerateTrackTerminals")]
  1677. HRESULT EnumerateTrackTerminals(
  1678. [out, retval] IEnumTerminal **ppEnumTerminal
  1679. );
  1680. [id(IDISPMULTITRACK | 3), helpstring("method CreateTrackTerminal")]
  1681. HRESULT CreateTrackTerminal(
  1682. [in]long MediaType,
  1683. [in]TERMINAL_DIRECTION TerminalDirection,
  1684. [out,retval]ITTerminal **ppTerminal
  1685. );
  1686. [propget, id(IDISPMULTITRACK | 4), helpstring("property MediaTypesInUse")]
  1687. HRESULT MediaTypesInUse(
  1688. [out, retval] long *plMediaTypesInUse
  1689. );
  1690. [propget, id(IDISPMULTITRACK | 5), helpstring("property DirectionsInUse")]
  1691. HRESULT DirectionsInUse(
  1692. [out, retval] TERMINAL_DIRECTION *plDirectionsInUsed
  1693. );
  1694. [id(IDISPMULTITRACK | 6), helpstring("method RemoveTrackTerminal")]
  1695. HRESULT RemoveTrackTerminal(
  1696. [in] ITTerminal *pTrackTerminalToRemove
  1697. );
  1698. }
  1699. //
  1700. // this describes state of the terminal
  1701. //
  1702. typedef enum TERMINAL_MEDIA_STATE
  1703. {
  1704. TMS_IDLE, // Terminal is doing nothing. No transfer of data
  1705. TMS_ACTIVE, // Transferring media stream <-> storage
  1706. TMS_PAUSED, // Transfer temporarily suspended
  1707. TMS_LASTITEM = TMS_PAUSED
  1708. } TERMINAL_MEDIA_STATE;
  1709. //
  1710. // state transition causes
  1711. //
  1712. typedef enum FT_STATE_EVENT_CAUSE
  1713. {
  1714. FTEC_NORMAL,
  1715. FTEC_END_OF_FILE,
  1716. FTEC_READ_ERROR,
  1717. FTEC_WRITE_ERROR
  1718. } FT_STATE_EVENT_CAUSE;
  1719. [
  1720. object,
  1721. uuid(31CA6EA9-C08A-4bea-8811-8E9C1BA3EA3A),
  1722. dual,
  1723. helpstring("ITFileTrack Interface"),
  1724. pointer_default(unique)
  1725. ]
  1726. interface ITFileTrack : IDispatch
  1727. {
  1728. [propget, id(IDISPFILETRACK | 1), hidden, helpstring("property Format")]
  1729. HRESULT Format(
  1730. [out, retval] AM_MEDIA_TYPE **ppmt
  1731. );
  1732. [propput, id(IDISPFILETRACK | 1), hidden, helpstring("property Format")]
  1733. HRESULT Format(
  1734. [in] const AM_MEDIA_TYPE *pmt
  1735. );
  1736. [propget, id(IDISPFILETRACK | 2), helpstring("property ControllingTerminal")]
  1737. HRESULT ControllingTerminal(
  1738. [out, retval] ITTerminal **ppControllingTerminal
  1739. );
  1740. [propget, id(IDISPFILETRACK | 3), helpstring("property AudioFormatForScripting")]
  1741. HRESULT AudioFormatForScripting(
  1742. [out, retval] ITScriptableAudioFormat** ppAudioFormat
  1743. );
  1744. [propput, id(IDISPFILETRACK | 3), helpstring("property AudioFormatForScripting")]
  1745. HRESULT AudioFormatForScripting(
  1746. [in] ITScriptableAudioFormat* pAudioFormat
  1747. );
  1748. [propget, id(IDISPFILETRACK | 5), helpstring("property EmptyAudioFormatForScripting")]
  1749. HRESULT EmptyAudioFormatForScripting(
  1750. [out, retval] ITScriptableAudioFormat** ppAudioFormat
  1751. );
  1752. };
  1753. [
  1754. object,
  1755. uuid(627E8AE6-AE4C-4a69-BB63-2AD625404B77),
  1756. dual,
  1757. helpstring("ITMediaPlayback Interface"),
  1758. pointer_default(unique)
  1759. ]
  1760. interface ITMediaPlayback : IDispatch
  1761. {
  1762. [propput, id(IDISPMEDIAPLAYBACK | 1), helpstring("property PlayList")]
  1763. HRESULT PlayList(
  1764. [in] VARIANTARG PlayListVariant
  1765. );
  1766. [propget, id(IDISPMEDIAPLAYBACK | 1), helpstring("property PlayList")]
  1767. HRESULT PlayList(
  1768. [out, retval] VARIANTARG* pPlayListVariant
  1769. );
  1770. };
  1771. [
  1772. object,
  1773. uuid(F5DD4592-5476-4cc1-9D4D-FAD3EEFE7DB2),
  1774. dual,
  1775. helpstring("ITMediaRecord Interface"),
  1776. pointer_default(unique)
  1777. ]
  1778. interface ITMediaRecord : IDispatch
  1779. {
  1780. [propput, id(IDISPMEDIARECORD | 1), helpstring("propery FileName")]
  1781. HRESULT FileName
  1782. (
  1783. [in] BSTR bstrFileName
  1784. );
  1785. [propget, id(IDISPMEDIARECORD | 1), helpstring("property FileName")]
  1786. HRESULT FileName(
  1787. [out, retval] BSTR *pbstrFileName
  1788. );
  1789. };
  1790. [
  1791. object,
  1792. uuid(C445DDE8-5199-4bc7-9807-5FFB92E42E09),
  1793. dual,
  1794. helpstring("ITMediaControl Interface"),
  1795. pointer_default(unique)
  1796. ]
  1797. interface ITMediaControl : IDispatch
  1798. {
  1799. [id(IDISPMEDIACONTROL | 1), helpstring("method Start")]
  1800. HRESULT Start();
  1801. [id(IDISPMEDIACONTROL | 2), helpstring("method Stop")]
  1802. HRESULT Stop();
  1803. [id(IDISPMEDIACONTROL | 3), helpstring("method Pause")]
  1804. HRESULT Pause();
  1805. [propget, id(IDISPMEDIACONTROL | 4), helpstring("property MediaState")]
  1806. HRESULT MediaState(
  1807. [out, retval] TERMINAL_MEDIA_STATE *pTerminalMediaState
  1808. );
  1809. };
  1810. [
  1811. uuid( B1EFC38D-9355-11d0-835C-00AA003CCABD ),
  1812. helpstring("TAPI 3.0 ITBasicAudioTerminal interface"),
  1813. dual
  1814. ]
  1815. interface ITBasicAudioTerminal : IDispatch
  1816. {
  1817. [propput, id(1), helpstring("property Volume")]
  1818. HRESULT Volume(
  1819. [in] long lVolume
  1820. );
  1821. [propget, id(1), helpstring("property Volume")]
  1822. HRESULT Volume(
  1823. [out, retval] long * plVolume
  1824. );
  1825. [propput, id(2), helpstring("property Balance")]
  1826. HRESULT Balance(
  1827. [in] long lBalance
  1828. );
  1829. [propget, id(2), helpstring("property Balance")]
  1830. HRESULT Balance(
  1831. [out, retval] long * plBalance
  1832. );
  1833. }
  1834. ///////////////////////////////////////////////////////
  1835. // ITStaticAudioTerminal
  1836. ///////////////////////////////////////////////////////
  1837. [
  1838. uuid( A86B7871-D14C-48e6-922E-A8D15F984800 ),
  1839. helpstring("TAPI 3.1 ITStaticAudioTerminal Interface"),
  1840. dual
  1841. ]
  1842. interface ITStaticAudioTerminal : IDispatch
  1843. {
  1844. [propget, id(1), helpstring("property WaveId")]
  1845. HRESULT WaveId(
  1846. [out, retval] long * plWaveId
  1847. );
  1848. }
  1849. [
  1850. uuid( A3C1544E-5B92-11d1-8F4E-00C04FB6809F ),
  1851. helpstring("TAPI 3.0 ITCallHub interface"),
  1852. dual
  1853. ]
  1854. interface ITCallHub : IDispatch
  1855. {
  1856. [id(1), helpstring("method Clear")]
  1857. HRESULT Clear();
  1858. [id(2), hidden, helpstring("method EnumerateCalls")]
  1859. HRESULT EnumerateCalls(
  1860. [out, retval] IEnumCall ** ppEnumCall
  1861. );
  1862. [propget, id(3), helpstring("property Calls")]
  1863. HRESULT Calls(
  1864. [out, retval] VARIANT * pCalls
  1865. );
  1866. [propget, id(4), helpstring("property NumCalls")]
  1867. HRESULT NumCalls(
  1868. [out, retval] long * plCalls
  1869. );
  1870. [propget, id(5), helpstring("property State")]
  1871. HRESULT State(
  1872. [out, retval] CALLHUB_STATE * pState
  1873. );
  1874. }
  1875. [
  1876. uuid(AB493640-4C0B-11D2-A046-00C04FB6809F),
  1877. helpstring("TAPI 3.0 ITLegacyAddressMediaControl Interface"),
  1878. hidden,
  1879. pointer_default(unique)
  1880. ]
  1881. interface ITLegacyAddressMediaControl : IUnknown
  1882. {
  1883. [id(IDISPLEGACYADDRESSMEDIACONTROL | 1), hidden]
  1884. HRESULT GetID(
  1885. [in] BSTR pDeviceClass,
  1886. [out] DWORD * pdwSize,
  1887. [out, size_is(,*pdwSize)] BYTE ** ppDeviceID
  1888. );
  1889. [id(IDISPLEGACYADDRESSMEDIACONTROL | 2), hidden]
  1890. HRESULT GetDevConfig(
  1891. [in] BSTR pDeviceClass,
  1892. [out] DWORD * pdwSize,
  1893. [out, size_is(,*pdwSize)] BYTE ** ppDeviceConfig
  1894. );
  1895. [id(IDISPLEGACYADDRESSMEDIACONTROL | 3), hidden]
  1896. HRESULT SetDevConfig(
  1897. [in] BSTR pDeviceClass,
  1898. [in] DWORD dwSize,
  1899. [in, size_is(dwSize)] BYTE * pDeviceConfig
  1900. );
  1901. }
  1902. [
  1903. uuid( 0e269cd0-10d4-4121-9c22-9c85d625650d ),
  1904. helpstring("TAPI 3.0 ITPrivateEvent Interface"),
  1905. dual
  1906. ]
  1907. interface ITPrivateEvent : IDispatch
  1908. {
  1909. [propget, id(1), helpstring("property Address")]
  1910. HRESULT Address(
  1911. [out, retval] ITAddress ** ppAddress
  1912. );
  1913. [propget, id(2), helpstring("property Call")]
  1914. HRESULT Call(
  1915. [out, retval] ITCallInfo ** ppCallInfo
  1916. );
  1917. [propget, id(3), helpstring("property CallHub")]
  1918. HRESULT CallHub(
  1919. [out, retval] ITCallHub ** ppCallHub
  1920. );
  1921. [propget, id(4), helpstring("property EventCode")]
  1922. HRESULT EventCode(
  1923. [out, retval] long * plEventCode
  1924. );
  1925. [propget, id(5), helpstring("property EventInterface")]
  1926. HRESULT EventInterface(
  1927. [out, retval] IDispatch ** pEventInterface
  1928. );
  1929. }
  1930. [
  1931. uuid(B0EE512B-A531-409e-9DD9-4099FE86C738),
  1932. helpstring("TAPI 3.1 ITLegacyAddressMediaControl2 Interface"),
  1933. hidden,
  1934. pointer_default(unique)
  1935. ]
  1936. interface ITLegacyAddressMediaControl2 : ITLegacyAddressMediaControl
  1937. {
  1938. [id(IDISPLEGACYADDRESSMEDIACONTROL | 4), hidden]
  1939. HRESULT ConfigDialog(
  1940. [in] HWND hwndOwner,
  1941. [in] BSTR pDeviceClass
  1942. );
  1943. [id(IDISPLEGACYADDRESSMEDIACONTROL | 5), hidden]
  1944. HRESULT ConfigDialogEdit(
  1945. [in] HWND hwndOwner,
  1946. [in] BSTR pDeviceClass,
  1947. [in] DWORD dwSizeIn,
  1948. [in, size_is(dwSizeIn)] BYTE * pDeviceConfigIn,
  1949. [out] DWORD * pdwSizeOut,
  1950. [out, size_is(,*pdwSizeOut)] BYTE ** ppDeviceConfigOut
  1951. );
  1952. }
  1953. [
  1954. uuid(d624582f-cc23-4436-b8a5-47c625c8045d),
  1955. helpstring("TAPI 3.0 ITLegacyCallMediaControl Interface"),
  1956. dual,
  1957. pointer_default(unique)
  1958. ]
  1959. interface ITLegacyCallMediaControl : IDispatch
  1960. {
  1961. [id(IDISPLEGACYCALLMEDIACONTROL | 1), helpstring("method DetectDigits")]
  1962. HRESULT DetectDigits(
  1963. [in] TAPI_DIGITMODE DigitMode
  1964. );
  1965. [id(IDISPLEGACYCALLMEDIACONTROL | 2), helpstring("method GenerateDigits")]
  1966. HRESULT GenerateDigits(
  1967. [in] BSTR pDigits,
  1968. [in] TAPI_DIGITMODE DigitMode
  1969. );
  1970. [id(IDISPLEGACYCALLMEDIACONTROL | 3), hidden]
  1971. HRESULT GetID(
  1972. [in] BSTR pDeviceClass,
  1973. [out] DWORD * pdwSize,
  1974. [out, size_is(,*pdwSize)] BYTE ** ppDeviceID
  1975. );
  1976. [id(IDISPLEGACYCALLMEDIACONTROL | 4), helpstring("method SetMediaType")]
  1977. HRESULT SetMediaType(
  1978. [in] long lMediaType
  1979. );
  1980. [id(IDISPLEGACYCALLMEDIACONTROL | 5), helpstring("method MonitorMedia")]
  1981. HRESULT MonitorMedia(
  1982. [in] long lMediaType
  1983. );
  1984. }
  1985. [
  1986. uuid(57CA332D-7BC2-44f1-A60C-936FE8D7CE73),
  1987. helpstring("TAPI 3.1 ITLegacyCallMediaControl2 Interface"),
  1988. dual
  1989. ]
  1990. interface ITLegacyCallMediaControl2 : ITLegacyCallMediaControl
  1991. {
  1992. [id(IDISPLEGACYCALLMEDIACONTROL | 6), helpstring("method GenerateDigits2")]
  1993. HRESULT GenerateDigits2(
  1994. [in] BSTR pDigits,
  1995. [in] TAPI_DIGITMODE DigitMode,
  1996. [in] long lDuration
  1997. );
  1998. [id(IDISPLEGACYCALLMEDIACONTROL | 7), helpstring("method GatherDigits")]
  1999. HRESULT GatherDigits(
  2000. [in] TAPI_DIGITMODE DigitMode,
  2001. [in] long lNumDigits,
  2002. [in] BSTR pTerminationDigits,
  2003. [in] long lFirstDigitTimeout,
  2004. [in] long lInterDigitTimeout
  2005. );
  2006. [id(IDISPLEGACYCALLMEDIACONTROL | 8), hidden, helpstring("method DetectTones")]
  2007. HRESULT DetectTones(
  2008. [in] TAPI_DETECTTONE * pToneList,
  2009. [in] long lNumTones
  2010. );
  2011. [id(IDISPLEGACYCALLMEDIACONTROL | 9), helpstring("method DetectTonesByCollection")]
  2012. HRESULT DetectTonesByCollection(
  2013. [in] ITCollection2 * pDetectToneCollection
  2014. );
  2015. [id(IDISPLEGACYCALLMEDIACONTROL | 10), helpstring("method GenerateTone")]
  2016. HRESULT GenerateTone(
  2017. [in] TAPI_TONEMODE ToneMode,
  2018. [in] long lDuration
  2019. );
  2020. [id(IDISPLEGACYCALLMEDIACONTROL | 11), hidden, helpstring("method GenerateCustomTones")]
  2021. HRESULT GenerateCustomTones(
  2022. [in] TAPI_CUSTOMTONE * pToneList,
  2023. [in] long lNumTones,
  2024. [in] long lDuration
  2025. );
  2026. [id(IDISPLEGACYCALLMEDIACONTROL | 12), helpstring("method GenerateCustomTonesByCollection")]
  2027. HRESULT GenerateCustomTonesByCollection(
  2028. [in] ITCollection2 * pCustomToneCollection,
  2029. [in] long lDuration
  2030. );
  2031. [id(IDISPLEGACYCALLMEDIACONTROL | 13), helpstring("method CreateDetectToneObject")]
  2032. HRESULT CreateDetectToneObject(
  2033. [out, retval] ITDetectTone ** ppDetectTone
  2034. );
  2035. [id(IDISPLEGACYCALLMEDIACONTROL | 14), helpstring("method CreateCustomToneObject")]
  2036. HRESULT CreateCustomToneObject(
  2037. [out, retval] ITCustomTone ** ppCustomTone
  2038. );
  2039. [id(IDISPLEGACYCALLMEDIACONTROL | 15), helpstring("method GetIDAsVariant")]
  2040. HRESULT GetIDAsVariant(
  2041. [in] BSTR bstrDeviceClass,
  2042. [out, retval] VARIANT *pVarDeviceID
  2043. );
  2044. }
  2045. [
  2046. uuid( 961F79BD-3097-49df-A1D6-909B77E89CA0 ),
  2047. helpstring("TAPI 3.1 ITDetectTone Interface"),
  2048. dual
  2049. ]
  2050. interface ITDetectTone : IDispatch
  2051. {
  2052. [propget, id(1), helpstring("property AppSpecific")]
  2053. HRESULT AppSpecific(
  2054. [out, retval] long * plAppSpecific
  2055. );
  2056. [propput, id(1), helpstring("property AppSpecific")]
  2057. HRESULT AppSpecific(
  2058. [in] long lAppSpecific
  2059. );
  2060. [propget, id(2), helpstring("property Duration")]
  2061. HRESULT Duration(
  2062. [out, retval] long * plDuration
  2063. );
  2064. [propput, id(2), helpstring("property Duration")]
  2065. HRESULT Duration(
  2066. [in] long lDuration
  2067. );
  2068. [propget, id(3), helpstring("property Frequency")]
  2069. HRESULT Frequency(
  2070. [in] long Index,
  2071. [out, retval] long * plFrequency
  2072. );
  2073. [propput, id(3), helpstring("property Frequency")]
  2074. HRESULT Frequency(
  2075. [in] long Index,
  2076. [in] long lFrequency
  2077. );
  2078. }
  2079. [
  2080. uuid( 357AD764-B3C6-4b2a-8FA5-0722827A9254 ),
  2081. helpstring("TAPI 3.1 ITCustomTone Interface"),
  2082. dual,
  2083. pointer_default(unique)
  2084. ]
  2085. interface ITCustomTone : IDispatch
  2086. {
  2087. [propget, id(1), helpstring("property Frequency")]
  2088. HRESULT Frequency(
  2089. [out, retval] long * plFrequency
  2090. );
  2091. [propput, id(1), helpstring("property Frequency")]
  2092. HRESULT Frequency(
  2093. [in] long lFrequency
  2094. );
  2095. [propget, id(2), helpstring("property CadenceOn")]
  2096. HRESULT CadenceOn(
  2097. [out, retval] long * plCadenceOn
  2098. );
  2099. [propput, id(2), helpstring("property CadenceOn")]
  2100. HRESULT CadenceOn(
  2101. [in] long CadenceOn
  2102. );
  2103. [propget, id(3), helpstring("property CadenceOff")]
  2104. HRESULT CadenceOff(
  2105. [out, retval] long * plCadenceOff
  2106. );
  2107. [propput, id(3), helpstring("property CadenceOff")]
  2108. HRESULT CadenceOff(
  2109. [in] long lCadenceOff
  2110. );
  2111. [propget, id(4), helpstring("property Volume")]
  2112. HRESULT Volume(
  2113. [out, retval] long * plVolume
  2114. );
  2115. [propput, id(4), helpstring("property Volume")]
  2116. HRESULT Volume(
  2117. [in] long lVolume
  2118. );
  2119. }
  2120. ///////////////////////////////////////////////////////
  2121. // IEnumPhone
  2122. ///////////////////////////////////////////////////////
  2123. [
  2124. uuid( F15B7669-4780-4595-8C89-FB369C8CF7AA ),
  2125. helpstring("TAPI 3.1 IEnumPhone Interface"),
  2126. hidden,
  2127. pointer_default(unique)
  2128. ]
  2129. interface IEnumPhone : IUnknown
  2130. {
  2131. HRESULT Next(
  2132. [in] ULONG celt,
  2133. [out, size_is(celt)] ITPhone ** ppElements,
  2134. [in,out,ptr] ULONG * pceltFetched
  2135. );
  2136. HRESULT Reset( void );
  2137. HRESULT Skip (
  2138. [in] ULONG celt
  2139. );
  2140. HRESULT Clone (
  2141. [out, retval] IEnumPhone ** ppEnum
  2142. );
  2143. }
  2144. [
  2145. uuid( AE269CF4-935E-11d0-835C-00AA003CCABD ),
  2146. helpstring("TAPI 3.0 IEnumTerminal Interface"),
  2147. hidden,
  2148. pointer_default(unique)
  2149. ]
  2150. interface IEnumTerminal : IUnknown
  2151. {
  2152. HRESULT Next(
  2153. [in] ULONG celt,
  2154. [out] ITTerminal ** ppElements,
  2155. [in,out,ptr] ULONG * pceltFetched
  2156. );
  2157. HRESULT Reset( void );
  2158. HRESULT Skip (
  2159. [in] ULONG celt
  2160. );
  2161. HRESULT Clone (
  2162. [out, retval] IEnumTerminal ** ppEnum
  2163. );
  2164. }
  2165. [
  2166. uuid( AE269CF5-935E-11d0-835C-00AA003CCABD ),
  2167. helpstring("TAPI 3.0 IEnumTerminalClass interface"),
  2168. hidden,
  2169. pointer_default(unique)
  2170. ]
  2171. interface IEnumTerminalClass : IUnknown
  2172. {
  2173. HRESULT Next(
  2174. [in] ULONG celt,
  2175. [out, size_is(celt)] GUID * pElements,
  2176. [in,out,ptr] ULONG * pceltFetched
  2177. );
  2178. HRESULT Reset( void );
  2179. HRESULT Skip (
  2180. [in] ULONG celt
  2181. );
  2182. HRESULT Clone (
  2183. [out, retval] IEnumTerminalClass ** ppEnum
  2184. );
  2185. }
  2186. [
  2187. uuid( AE269CF6-935E-11d0-835C-00AA003CCABD ),
  2188. helpstring("TAPI 3.0 IEnumCall interface"),
  2189. hidden,
  2190. pointer_default(unique)
  2191. ]
  2192. interface IEnumCall : IUnknown
  2193. {
  2194. HRESULT Next(
  2195. [in] ULONG celt,
  2196. [out] ITCallInfo ** ppElements,
  2197. [in,out,ptr] ULONG * pceltFetched
  2198. );
  2199. HRESULT Reset( void );
  2200. HRESULT Skip (
  2201. [in] ULONG celt
  2202. );
  2203. HRESULT Clone (
  2204. [out, retval] IEnumCall ** ppEnum
  2205. );
  2206. }
  2207. [
  2208. uuid( 1666FCA1-9363-11d0-835C-00AA003CCABD ),
  2209. helpstring("TAPI 3.0 IEnumAddress interface"),
  2210. hidden,
  2211. pointer_default(unique)
  2212. ]
  2213. interface IEnumAddress : IUnknown
  2214. {
  2215. HRESULT Next(
  2216. [in] ULONG celt,
  2217. [out, size_is(celt)] ITAddress ** ppElements,
  2218. [in,out,ptr] ULONG * pceltFetched
  2219. );
  2220. HRESULT Reset( void );
  2221. HRESULT Skip (
  2222. [in] ULONG celt
  2223. );
  2224. HRESULT Clone (
  2225. [out, retval] IEnumAddress ** ppEnum
  2226. );
  2227. }
  2228. [
  2229. uuid( A3C15450-5B92-11d1-8F4E-00C04FB6809F ),
  2230. helpstring("TAPI 3.0 IEnumCallHub interface"),
  2231. hidden,
  2232. pointer_default(unique)
  2233. ]
  2234. interface IEnumCallHub : IUnknown
  2235. {
  2236. HRESULT Next(
  2237. [in] ULONG celt,
  2238. [out, size_is(celt)] ITCallHub ** ppElements,
  2239. [in,out,ptr] ULONG * pceltFetched
  2240. );
  2241. HRESULT Reset( void );
  2242. HRESULT Skip (
  2243. [in] ULONG celt
  2244. );
  2245. HRESULT Clone (
  2246. [out, retval] IEnumCallHub ** ppEnum
  2247. );
  2248. }
  2249. [
  2250. uuid( 35372049-0BC6-11d2-A033-00C04FB6809F ),
  2251. helpstring("TAPI 3.0 IEnumBstr interface"),
  2252. hidden,
  2253. pointer_default(unique)
  2254. ]
  2255. interface IEnumBstr : IUnknown
  2256. {
  2257. HRESULT Next(
  2258. [in] ULONG celt,
  2259. [out, size_is(celt)] BSTR * ppStrings,
  2260. [in,out,ptr] ULONG * pceltFetched
  2261. );
  2262. HRESULT Reset( void );
  2263. HRESULT Skip (
  2264. [in] ULONG celt
  2265. );
  2266. HRESULT Clone (
  2267. [out, retval] IEnumBstr ** ppEnum
  2268. );
  2269. }
  2270. [
  2271. uuid( 4567450C-DBEE-4e3f-AAF5-37BF9EBF5E29 ),
  2272. helpstring("TAPI 3.1 IEnumPluggableTerminalClassInfo interface"),
  2273. hidden,
  2274. pointer_default(unique)
  2275. ]
  2276. interface IEnumPluggableTerminalClassInfo : IUnknown
  2277. {
  2278. HRESULT Next(
  2279. [in] ULONG celt,
  2280. [out, size_is(celt)] ITPluggableTerminalClassInfo** ppElements,
  2281. [in,out,ptr] ULONG * pceltFetched
  2282. );
  2283. HRESULT Reset( void );
  2284. HRESULT Skip (
  2285. [in] ULONG celt
  2286. );
  2287. HRESULT Clone (
  2288. [out, retval] IEnumPluggableTerminalClassInfo ** ppEnum
  2289. );
  2290. }
  2291. [
  2292. uuid( E9586A80-89E6-4cff-931D-478D5751F4C0 ),
  2293. helpstring("TAPI 3.1 IEnumPluggableSuperclassInfo interface"),
  2294. hidden,
  2295. pointer_default(unique)
  2296. ]
  2297. interface IEnumPluggableSuperclassInfo : IUnknown
  2298. {
  2299. HRESULT Next(
  2300. [in] ULONG celt,
  2301. [out, size_is(celt)] ITPluggableTerminalSuperclassInfo** ppElements,
  2302. [in,out,ptr] ULONG * pceltFetched
  2303. );
  2304. HRESULT Reset( void );
  2305. HRESULT Skip (
  2306. [in] ULONG celt
  2307. );
  2308. HRESULT Clone (
  2309. [out, retval] IEnumPluggableSuperclassInfo ** ppEnum
  2310. );
  2311. }
  2312. ///////////////////////////////////////////////////////
  2313. // ITPhoneEvent
  2314. ///////////////////////////////////////////////////////
  2315. [
  2316. uuid( 8F942DD8-64ED-4aaf-A77D-B23DB0837EAD ),
  2317. helpstring("TAPI 3.1 ITPhoneEvent Interface"),
  2318. oleautomation
  2319. ]
  2320. interface ITPhoneEvent : IDispatch
  2321. {
  2322. [propget, id(1), helpstring("property Phone")]
  2323. HRESULT Phone( [out, retval] ITPhone ** ppPhone );
  2324. [propget, id(2), helpstring("property Event")]
  2325. HRESULT Event( [out, retval] PHONE_EVENT * pEvent );
  2326. [propget, id(3), helpstring("property ButtonState")]
  2327. HRESULT ButtonState( [out, retval] PHONE_BUTTON_STATE * pState );
  2328. [propget, id(4), helpstring("property HookSwitchState")]
  2329. HRESULT HookSwitchState( [out, retval] PHONE_HOOK_SWITCH_STATE * pState );
  2330. [propget, id(5), helpstring("property HookSwitchDevice")]
  2331. HRESULT HookSwitchDevice( [out, retval] PHONE_HOOK_SWITCH_DEVICE * pDevice );
  2332. [propget, id(6), helpstring("property RingMode")]
  2333. HRESULT RingMode( [out, retval] long * plRingMode );
  2334. [propget, id(7), helpstring("property ButtonLampId")]
  2335. HRESULT ButtonLampId( [out, retval] long * plButtonLampId );
  2336. [propget, id(8), helpstring("property NumberGathered")]
  2337. HRESULT NumberGathered( [out, retval] BSTR * ppNumber );
  2338. [propget, id(9), helpstring("property Call")]
  2339. HRESULT Call( [out, retval] ITCallInfo ** ppCallInfo );
  2340. }
  2341. [
  2342. uuid( 62F47097-95C9-11d0-835D-00AA003CCABD ),
  2343. helpstring("TAPI 3.0 ITCallStateEvent Interface"),
  2344. dual
  2345. ]
  2346. interface ITCallStateEvent : IDispatch
  2347. {
  2348. [propget, id(1), helpstring("property Call")]
  2349. HRESULT Call(
  2350. [out, retval] ITCallInfo ** ppCallInfo
  2351. );
  2352. [propget, id(2), helpstring("property State")]
  2353. HRESULT State(
  2354. [out, retval] CALL_STATE * pCallState
  2355. );
  2356. [propget, id(3), helpstring("property Cause")]
  2357. HRESULT Cause(
  2358. [out, retval] CALL_STATE_EVENT_CAUSE * pCEC
  2359. );
  2360. [propget, id(4), helpstring("property CallbackInstance")]
  2361. HRESULT CallbackInstance(
  2362. [out, retval] long * plCallbackInstance
  2363. );
  2364. }
  2365. [
  2366. uuid( 63FFB2A6-872B-4cd3-A501-326E8FB40AF7 ),
  2367. helpstring("TAPI 3.1 ITPhoneDeviceSpecificEvent interface"),
  2368. oleautomation
  2369. ]
  2370. interface ITPhoneDeviceSpecificEvent : IDispatch
  2371. {
  2372. [propget, id(1), helpstring("property Phone")]
  2373. HRESULT Phone( [out, retval] ITPhone ** ppPhone );
  2374. [propget, id(2), helpstring("property lParam1")]
  2375. HRESULT lParam1( [out, retval] long *pParam1);
  2376. [propget, id(3), helpstring("property lParam2")]
  2377. HRESULT lParam2( [out, retval] long *pParam2);
  2378. [propget, id(4), helpstring("property lParam3")]
  2379. HRESULT lParam3( [out, retval] long *pParam3);
  2380. }
  2381. [
  2382. uuid( FF36B87F-EC3A-11d0-8EE4-00C04FB6809F ),
  2383. helpstring("TAPI 3.0 ITCallMediaEvent Interface"),
  2384. dual
  2385. ]
  2386. interface ITCallMediaEvent : IDispatch
  2387. {
  2388. [propget, id(1), helpstring("property Call")]
  2389. HRESULT Call(
  2390. [out, retval] ITCallInfo ** ppCallInfo
  2391. );
  2392. [propget, id(2), helpstring("property Event")]
  2393. HRESULT Event(
  2394. [out, retval] CALL_MEDIA_EVENT * pCallMediaEvent
  2395. );
  2396. [propget, id(3), helpstring("property Error")]
  2397. HRESULT Error(
  2398. [out, retval] HRESULT * phrError
  2399. );
  2400. [propget, id(4), helpstring("property Terminal")]
  2401. HRESULT Terminal(
  2402. [out, retval] ITTerminal ** ppTerminal
  2403. );
  2404. [propget, id(5), helpstring("property Stream")]
  2405. HRESULT Stream(
  2406. [out, retval] ITStream ** ppStream
  2407. );
  2408. [propget, id(6), helpstring("property Cause")]
  2409. HRESULT Cause(
  2410. [out, retval] CALL_MEDIA_EVENT_CAUSE * pCause
  2411. );
  2412. }
  2413. [
  2414. uuid( 80D3BFAC-57D9-11d2-A04A-00C04FB6809F ),
  2415. helpstring("TAPI 3.0 ITDigitDetectionEvent interface"),
  2416. oleautomation
  2417. ]
  2418. interface ITDigitDetectionEvent : IDispatch
  2419. {
  2420. [propget, id(1), helpstring("property Call")]
  2421. HRESULT Call( [out, retval] ITCallInfo ** ppCallInfo );
  2422. [propget, id(2), helpstring("property Digit")]
  2423. HRESULT Digit( [out, retval] unsigned char * pucDigit );
  2424. [propget, id(3), helpstring("property DigitMode")]
  2425. HRESULT DigitMode( [out, retval] TAPI_DIGITMODE * pDigitMode );
  2426. [propget, id(4), helpstring("property TickCount")]
  2427. HRESULT TickCount( [out, retval] long * plTickCount );
  2428. [propget, id(5), helpstring("property CallbackInstance")]
  2429. HRESULT CallbackInstance( [out, retval] long * plCallbackInstance );
  2430. }
  2431. [
  2432. uuid(80D3BFAD-57D9-11d2-A04A-00C04FB6809F),
  2433. helpstring("TAPI 3.0 ITDigitGenerationEvent interface"),
  2434. dual
  2435. ]
  2436. interface ITDigitGenerationEvent : IDispatch
  2437. {
  2438. [propget, id(1), helpstring("property Call")]
  2439. HRESULT Call( [out, retval] ITCallInfo ** ppCallInfo );
  2440. [propget, id(2), helpstring("property GenerationTermination")]
  2441. HRESULT GenerationTermination( [out, retval] long * plGenerationTermination );
  2442. [propget, id(3), helpstring("property TickCount")]
  2443. HRESULT TickCount( [out, retval] long * plTickCount );
  2444. [propget, id(4), helpstring("property CallbackInstance")]
  2445. HRESULT CallbackInstance( [out, retval] long * plCallbackInstance );
  2446. }
  2447. [
  2448. uuid( E52EC4C1-CBA3-441a-9E6A-93CB909E9724 ),
  2449. helpstring("TAPI 3.1 ITDigitsGatheredEvent Interface"),
  2450. dual
  2451. ]
  2452. interface ITDigitsGatheredEvent : IDispatch
  2453. {
  2454. [propget, id(1), helpstring("property Call")]
  2455. HRESULT Call( [out, retval] ITCallInfo ** ppCallInfo );
  2456. [propget, id(2), helpstring("property Digits")]
  2457. HRESULT Digits( [out, retval] BSTR * ppDigits );
  2458. [propget, id(3), helpstring("property GatherTermination")]
  2459. HRESULT GatherTermination( [out, retval] TAPI_GATHERTERM * pGatherTermination );
  2460. [propget, id(4), helpstring("property TickCount")]
  2461. HRESULT TickCount( [out, retval] long * plTickCount );
  2462. [propget, id(5), helpstring("property CallbackInstance")]
  2463. HRESULT CallbackInstance( [out, retval] long * plCallbackInstance );
  2464. }
  2465. [
  2466. uuid( 407E0FAF-D047-4753-B0C6-8E060373FECD ),
  2467. helpstring("TAPI 3.1 ITToneDetectionEvent Interface"),
  2468. dual
  2469. ]
  2470. interface ITToneDetectionEvent : IDispatch
  2471. {
  2472. [propget, id(1), helpstring("property Call")]
  2473. HRESULT Call( [out, retval] ITCallInfo ** ppCallInfo );
  2474. [propget, id(2), helpstring("property AppSpecific")]
  2475. HRESULT AppSpecific( [out, retval] long * plAppSpecific );
  2476. [propget, id(3), helpstring("property TickCount")]
  2477. HRESULT TickCount( [out, retval] long * plTickCount );
  2478. [propget, id(4), helpstring("property CallbackInstance")]
  2479. HRESULT CallbackInstance( [out, retval] long * plCallbackInstance );
  2480. }
  2481. [
  2482. uuid( F4854D48-937A-11d1-BB58-00C04FB6809F ),
  2483. helpstring("TAPI 3.0 ITTAPIObjectEvent Interface"),
  2484. dual
  2485. ]
  2486. interface ITTAPIObjectEvent : IDispatch
  2487. {
  2488. [propget, id(1), helpstring("property TAPIObject")]
  2489. HRESULT TAPIObject(
  2490. [out, retval] ITTAPI ** ppTAPIObject
  2491. );
  2492. [propget, id(2), helpstring("property Event")]
  2493. HRESULT Event(
  2494. [out, retval] TAPIOBJECT_EVENT * pEvent
  2495. );
  2496. [propget, id(3), helpstring("property Address")]
  2497. HRESULT Address(
  2498. [out, retval] ITAddress ** ppAddress
  2499. );
  2500. [propget, id(4), helpstring("property CallbackInstance")]
  2501. HRESULT CallbackInstance(
  2502. [out, retval] long * plCallbackInstance
  2503. );
  2504. }
  2505. [
  2506. uuid( 359DDA6E-68CE-4383-BF0B-169133C41B46 ),
  2507. helpstring("TAPI 3.1 ITTAPIObjectEvent2 interface"),
  2508. oleautomation
  2509. ]
  2510. interface ITTAPIObjectEvent2 : ITTAPIObjectEvent
  2511. {
  2512. [propget, id(5), helpstring("property Phone")]
  2513. HRESULT Phone( [out, retval] ITPhone ** ppPhone );
  2514. }
  2515. [
  2516. uuid( EDDB9426-3B91-11d1-8F30-00C04FB6809F ),
  2517. helpstring("TAPI 3.0 ITTAPIEventNotification Interface"),
  2518. oleautomation
  2519. ]
  2520. interface ITTAPIEventNotification : IUnknown
  2521. {
  2522. [id(1), helpstring("method Event")]
  2523. HRESULT Event(
  2524. [in] TAPI_EVENT TapiEvent,
  2525. [in] IDispatch * pEvent
  2526. );
  2527. }
  2528. [
  2529. uuid( A3C15451-5B92-11d1-8F4E-00C04FB6809F ),
  2530. helpstring("TAPI 3.0 ITCallHubEvent Interface"),
  2531. oleautomation
  2532. ]
  2533. interface ITCallHubEvent : IDispatch
  2534. {
  2535. [propget, id(1), helpstring("property Event")]
  2536. HRESULT Event(
  2537. [out, retval] CALLHUB_EVENT * pEvent
  2538. );
  2539. [propget, id(2), helpstring("property CallHub")]
  2540. HRESULT CallHub(
  2541. [out, retval] ITCallHub ** ppCallHub
  2542. );
  2543. [propget, id(3), helpstring("property Call")]
  2544. HRESULT Call(
  2545. [out, retval] ITCallInfo ** ppCall
  2546. );
  2547. }
  2548. [
  2549. uuid( 831CE2D1-83B5-11d1-BB5C-00C04FB6809F ),
  2550. helpstring("TAPI 3.0 ITAddressEvent interface"),
  2551. oleautomation
  2552. ]
  2553. interface ITAddressEvent : IDispatch
  2554. {
  2555. [propget, id(1), helpstring("property Address")]
  2556. HRESULT Address( [out, retval] ITAddress ** ppAddress );
  2557. [propget, id(2), helpstring("property Event")]
  2558. HRESULT Event( [out, retval] ADDRESS_EVENT * pEvent );
  2559. [propget, id(3), helpstring("property Terminal")]
  2560. HRESULT Terminal( [out, retval] ITTerminal ** ppTerminal );
  2561. }
  2562. [
  2563. uuid( 3ACB216B-40BD-487a-8672-5CE77BD7E3A3 ),
  2564. helpstring("TAPI 3.1 ITAddressDeviceSpecificEvent interface"),
  2565. oleautomation
  2566. ]
  2567. interface ITAddressDeviceSpecificEvent : IDispatch
  2568. {
  2569. [propget, id(1), helpstring("property Address")]
  2570. HRESULT Address( [out, retval] ITAddress ** ppAddress );
  2571. [propget, id(2), helpstring("property Call")]
  2572. HRESULT Call( [out, retval] ITCallInfo ** ppCall );
  2573. [propget, id(3), helpstring("property lParam1")]
  2574. HRESULT lParam1( [out, retval] long *pParam1);
  2575. [propget, id(4), helpstring("property lParam2")]
  2576. HRESULT lParam2( [out, retval] long *pParam2);
  2577. [propget, id(5), helpstring("property lParam3")]
  2578. HRESULT lParam3( [out, retval] long *pParam3);
  2579. }
  2580. [
  2581. uuid( E4A7FBAC-8C17-4427-9F55-9F589AC8AF00 ),
  2582. helpstring("TAPI 3.0 ITFileTerminalEvent interface"),
  2583. oleautomation
  2584. ]
  2585. interface ITFileTerminalEvent : IDispatch
  2586. {
  2587. [propget, id(1), helpstring("property Terminal")]
  2588. HRESULT Terminal( [out, retval] ITTerminal ** ppTerminal );
  2589. [propget, id(2), helpstring("property Track")]
  2590. HRESULT Track( [out, retval] ITFileTrack ** ppTrackTerminal );
  2591. [propget, id(3), helpstring("property Call") ]
  2592. HRESULT Call( [out, retval] ITCallInfo ** ppCall );
  2593. [propget, id(4), helpstring("property State")]
  2594. HRESULT State( [out, retval] TERMINAL_MEDIA_STATE * pState);
  2595. [propget, id(5), helpstring("property Cause")]
  2596. HRESULT Cause( [out, retval] FT_STATE_EVENT_CAUSE * pCause );
  2597. [propget, id(6), helpstring("property Error")]
  2598. HRESULT Error( [out, retval] HRESULT * phrErrorCode );
  2599. }
  2600. [
  2601. uuid( D964788F-95A5-461d-AB0C-B9900A6C2713 ),
  2602. helpstring("TAPI 3.0 ITTTSTerminalEvent interface"),
  2603. oleautomation
  2604. ]
  2605. interface ITTTSTerminalEvent : IDispatch
  2606. {
  2607. [propget, id(1), helpstring("property Terminal")]
  2608. HRESULT Terminal( [out, retval] ITTerminal ** ppTerminal );
  2609. [propget, id(2), helpstring("property Call") ]
  2610. HRESULT Call( [out, retval] ITCallInfo ** ppCall );
  2611. [propget, id(3), helpstring("property Error")]
  2612. HRESULT Error( [out, retval] HRESULT * phrErrorCode );
  2613. }
  2614. [
  2615. uuid( EE016A02-4FA9-467c-933F-5A15B12377D7 ),
  2616. helpstring("TAPI 3.0 ITASRTerminalEvent interface"),
  2617. oleautomation
  2618. ]
  2619. interface ITASRTerminalEvent : IDispatch
  2620. {
  2621. [propget, id(1), helpstring("property Terminal")]
  2622. HRESULT Terminal( [out, retval] ITTerminal ** ppTerminal );
  2623. [propget, id(2), helpstring("property Call") ]
  2624. HRESULT Call( [out, retval] ITCallInfo ** ppCall );
  2625. [propget, id(3), helpstring("property Error")]
  2626. HRESULT Error( [out, retval] HRESULT * phrErrorCode );
  2627. }
  2628. [
  2629. uuid( E6F56009-611F-4945-BBD2-2D0CE5612056 ),
  2630. helpstring("TAPI 3.0 ITToneTerminalEvent interface"),
  2631. oleautomation
  2632. ]
  2633. interface ITToneTerminalEvent : IDispatch
  2634. {
  2635. [propget, id(1), helpstring("property Terminal")]
  2636. HRESULT Terminal( [out, retval] ITTerminal ** ppTerminal );
  2637. [propget, id(2), helpstring("property Call") ]
  2638. HRESULT Call( [out, retval] ITCallInfo ** ppCall );
  2639. [propget, id(3), helpstring("property Error")]
  2640. HRESULT Error( [out, retval] HRESULT * phrErrorCode );
  2641. }
  2642. [
  2643. uuid( CFA3357C-AD77-11d1-BB68-00C04FB6809F ),
  2644. helpstring("TAPI 3.0 ITQOSEvent Interface"),
  2645. oleautomation
  2646. ]
  2647. interface ITQOSEvent : IDispatch
  2648. {
  2649. [propget, id(1), helpstring("property CallHub")]
  2650. HRESULT Call( [out, retval] ITCallInfo ** ppCall );
  2651. [propget, id(3), helpstring("property Event")]
  2652. HRESULT Event( [out, retval] QOS_EVENT * pQosEvent );
  2653. [propget, id(4), helpstring("property MediaType")]
  2654. HRESULT MediaType( [out, retval] long * plMediaType );
  2655. }
  2656. [
  2657. uuid( 5D4B65F9-E51C-11d1-A02F-00C04FB6809F ),
  2658. helpstring("TAPI 3.0 ITCallInfoChangeEvent Interface"),
  2659. oleautomation
  2660. ]
  2661. interface ITCallInfoChangeEvent : IDispatch
  2662. {
  2663. [ propget, id(1), helpstring("property Call") ]
  2664. HRESULT Call( [out, retval] ITCallInfo ** ppCall );
  2665. [ propget, id(2), helpstring("property Cause") ]
  2666. HRESULT Cause( [out, retval] CALLINFOCHANGE_CAUSE * pCIC );
  2667. [ propget, id(3), helpstring("property Callback Instance") ]
  2668. HRESULT CallbackInstance( [out, retval] long * plCallbackInstance );
  2669. }
  2670. [
  2671. uuid( AC48FFDF-F8C4-11d1-A030-00C04FB6809F ),
  2672. helpstring("TAPI 3.0 ITRequest Interface"),
  2673. oleautomation
  2674. ]
  2675. interface ITRequest : IDispatch
  2676. {
  2677. [ id(1), helpstring("method MakeCall") ]
  2678. HRESULT MakeCall(
  2679. [in] BSTR pDestAddress,
  2680. [in] BSTR pAppName,
  2681. [in] BSTR pCalledParty,
  2682. [in] BSTR pComment
  2683. );
  2684. }
  2685. [
  2686. uuid(AC48FFDE-F8C4-11d1-A030-00C04FB6809F ),
  2687. helpstring("TAPI 3.0 ITRequestEvent Interface"),
  2688. oleautomation
  2689. ]
  2690. interface ITRequestEvent : IDispatch
  2691. {
  2692. [ propget, id(1), helpstring("property RegistrationInstance") ]
  2693. HRESULT RegistrationInstance( [out, retval] long * plRegistrationInstance );
  2694. [ propget, id(2), helpstring("property RequestMode") ]
  2695. HRESULT RequestMode( [out, retval] long * plRequestMode );
  2696. [ propget, id(3), helpstring("property DestAddress") ]
  2697. HRESULT DestAddress( [out, retval] BSTR * ppDestAddress );
  2698. [ propget, id(5), helpstring("property AppName") ]
  2699. HRESULT AppName( [out, retval] BSTR * ppAppName );
  2700. [ propget, id(6), helpstring("property CalledParty") ]
  2701. HRESULT CalledParty( [out, retval] BSTR * ppCalledParty );
  2702. [ propget, id(7), helpstring("property Comment") ]
  2703. HRESULT Comment( [out, retval] BSTR * ppComment );
  2704. }
  2705. [
  2706. object,
  2707. public,
  2708. uuid( 5EC5ACF2-9C02-11d0-8362-00AA003CCABD ),
  2709. helpstring("TAPI 3.0 ITCollection interface"),
  2710. dual
  2711. ]
  2712. interface ITCollection : IDispatch
  2713. {
  2714. [propget, helpstring("Returns number of items in collection.")]
  2715. HRESULT Count(
  2716. [out, retval] long * lCount
  2717. );
  2718. [propget, id(DISPID_VALUE),
  2719. helpstring("Given an index, returns an item in the collection.")]
  2720. HRESULT Item(
  2721. [in] long Index,
  2722. [out, retval] VARIANT * pVariant
  2723. );
  2724. [propget, restricted, id(DISPID_NEWENUM),
  2725. helpstring("returns an enumerator for the collection.")]
  2726. HRESULT _NewEnum(
  2727. [out, retval] IUnknown ** ppNewEnum
  2728. );
  2729. }
  2730. [
  2731. object,
  2732. public,
  2733. uuid( E6DDDDA5-A6D3-48ff-8737-D32FC4D95477 ),
  2734. helpstring("TAPI 3.1 ITCollection2 interface"),
  2735. dual
  2736. ]
  2737. interface ITCollection2 : ITCollection
  2738. {
  2739. [id(1), helpstring("Adds an item to the collection.")]
  2740. HRESULT Add(
  2741. [in] long Index,
  2742. [in] VARIANT * pVariant
  2743. );
  2744. [id(2), helpstring("Removes an item from the collection.")]
  2745. HRESULT Remove(
  2746. [in] long Index
  2747. );
  2748. }
  2749. [
  2750. uuid( 449F659E-88A3-11d1-BB5D-00C04FB6809F ),
  2751. helpstring("TAPI 3.0 ITForwardInformation Interface"),
  2752. dual
  2753. ]
  2754. interface ITForwardInformation : IDispatch
  2755. {
  2756. [propput, id(1), helpstring("property NumRingsNoAnswer")]
  2757. HRESULT NumRingsNoAnswer(
  2758. [in] long lNumRings
  2759. );
  2760. [propget, id(1), helpstring("property NumRingsNoAnswer")]
  2761. HRESULT NumRingsNoAnswer(
  2762. [out, retval] long * plNumRings
  2763. );
  2764. [id(2), helpstring("method SetForwardType")]
  2765. HRESULT SetForwardType(
  2766. [in] long ForwardType,
  2767. [in] BSTR pDestAddress,
  2768. [in] BSTR pCallerAddress
  2769. );
  2770. [propget, id(3), helpstring("property ForwardTypeDestination")]
  2771. HRESULT ForwardTypeDestination(
  2772. [in] long ForwardType,
  2773. [out, retval] BSTR * ppDestAddress
  2774. );
  2775. [propget, id(4), helpstring("property ForwardTypeCaller")]
  2776. HRESULT ForwardTypeCaller(
  2777. [in] long Forwardtype,
  2778. [out, retval] BSTR * ppCallerAddress
  2779. );
  2780. [id(5),hidden]
  2781. HRESULT GetForwardType(
  2782. [in] long ForwardType,
  2783. [out] BSTR * ppDestinationAddress,
  2784. [out] BSTR * ppCallerAddress
  2785. );
  2786. [id(6), helpstring("method Clear")]
  2787. HRESULT Clear();
  2788. }
  2789. [
  2790. uuid( 5229B4ED-B260-4382-8E1A-5DF3A8A4CCC0 ),
  2791. helpstring("TAPI 3.1 ITForwardInformation2 Interface"),
  2792. dual
  2793. ]
  2794. interface ITForwardInformation2 : ITForwardInformation
  2795. {
  2796. [id(7), helpstring("method SetForwardType2")]
  2797. HRESULT SetForwardType2(
  2798. [in] long ForwardType,
  2799. [in] BSTR pDestAddress,
  2800. [in] long DestAddressType,
  2801. [in] BSTR pCallerAddress,
  2802. [in] long CallerAddressType
  2803. );
  2804. [id(8),hidden]
  2805. HRESULT GetForwardType2(
  2806. [in] long ForwardType,
  2807. [out] BSTR * ppDestinationAddress,
  2808. [out] long * pDestAddressType,
  2809. [out] BSTR * ppCallerAddress,
  2810. [out] long * pCallerAddressType
  2811. );
  2812. [propget, id(9), helpstring("property ForwardTypeDestinationAddressType")]
  2813. HRESULT ForwardTypeDestinationAddressType(
  2814. [in] long ForwardType,
  2815. [out, retval] long * pDestAddressType
  2816. );
  2817. [propget, id(10), helpstring("property ForwardTypeCallerAddressType")]
  2818. HRESULT ForwardTypeCallerAddressType(
  2819. [in] long Forwardtype,
  2820. [out, retval] long * pCallerAddressType
  2821. );
  2822. }
  2823. [
  2824. uuid( 0C4D8F03-8DDB-11d1-A09E-00805FC147D3 ),
  2825. helpstring("TAPI 3.0 ITAddressTranslation Interface"),
  2826. dual
  2827. ]
  2828. interface ITAddressTranslation : IDispatch
  2829. {
  2830. [id(IDISPADDRESSTRANSLATION | 1), helpstring("method TranslateAddress")]
  2831. HRESULT TranslateAddress(
  2832. [in] BSTR pAddressToTranslate,
  2833. [in] long lCard,
  2834. [in] long lTranslateOptions,
  2835. [out, retval] ITAddressTranslationInfo ** ppTranslated
  2836. );
  2837. [ id(IDISPADDRESSTRANSLATION | 2), helpstring("method TranslateDialog")]
  2838. HRESULT TranslateDialog(
  2839. [in] TAPIHWND hwndOwner,
  2840. [in] BSTR pAddressIn
  2841. );
  2842. [id(IDISPADDRESSTRANSLATION | 3), hidden, helpstring("method EnumerateLocations")]
  2843. HRESULT EnumerateLocations(
  2844. [out, retval] IEnumLocation ** ppEnumLocation
  2845. );
  2846. [propget, id(IDISPADDRESSTRANSLATION | 4), helpstring("property Locations")]
  2847. HRESULT Locations(
  2848. [out, retval] VARIANT * pVariant
  2849. );
  2850. [id(IDISPADDRESSTRANSLATION | 5), hidden, helpstring("method EnumerateCallingCards")]
  2851. HRESULT EnumerateCallingCards(
  2852. [out, retval] IEnumCallingCard ** ppEnumCallingCard
  2853. );
  2854. [propget, id(IDISPADDRESSTRANSLATION | 6), helpstring("property CallingCards")]
  2855. HRESULT CallingCards(
  2856. [out, retval] VARIANT * pVariant
  2857. );
  2858. }
  2859. [
  2860. uuid( AFC15945-8D40-11d1-A09E-00805FC147D3 ),
  2861. helpstring("TAPI 3.0 ITAddressTranslationInfo Interface"),
  2862. dual
  2863. ]
  2864. interface ITAddressTranslationInfo : IDispatch
  2865. {
  2866. [propget, id(1), helpstring("property Dialable String")]
  2867. HRESULT DialableString(
  2868. [out, retval] BSTR * ppDialableString
  2869. );
  2870. [propget, id(2), helpstring("property Displayable String")]
  2871. HRESULT DisplayableString(
  2872. [out, retval] BSTR * ppDisplayableString
  2873. );
  2874. [propget, id(3), helpstring("property Current Country Code")]
  2875. HRESULT CurrentCountryCode(
  2876. [out, retval] long * CountryCode
  2877. );
  2878. [propget, id(4), helpstring("property Destination Country Code")]
  2879. HRESULT DestinationCountryCode(
  2880. [out, retval] long * CountryCode
  2881. );
  2882. [propget, id(5), helpstring("property Translation Results")]
  2883. HRESULT TranslationResults(
  2884. [out, retval] long * plResults
  2885. );
  2886. }
  2887. [
  2888. uuid( 0C4D8EFF-8DDB-11d1-A09E-00805FC147D3 ),
  2889. helpstring("TAPI 3.0 ITLocationInfo Interface"),
  2890. dual
  2891. ]
  2892. interface ITLocationInfo : IDispatch
  2893. {
  2894. [propget, id(1), helpstring("property Permanent Location ID")]
  2895. HRESULT PermanentLocationID(
  2896. [out, retval] long * plLocationID
  2897. );
  2898. [propget, id(2), helpstring("property Country Code")]
  2899. HRESULT CountryCode(
  2900. [out, retval] long * plCountryCode
  2901. );
  2902. [propget, id(3), helpstring("property Country ID")]
  2903. HRESULT CountryID(
  2904. [out, retval] long * plCountryID
  2905. );
  2906. [propget, id(4), helpstring("property Options")]
  2907. HRESULT Options(
  2908. [out, retval] long * plOptions
  2909. );
  2910. [propget, id(5), helpstring("property Preferred Credit Card ID")]
  2911. HRESULT PreferredCardID(
  2912. [out, retval] long * plCardID
  2913. );
  2914. [propget, id(6), helpstring("property Location Name")]
  2915. HRESULT LocationName(
  2916. [out, retval] BSTR * ppLocationName
  2917. );
  2918. [propget, id(7), helpstring("property City/Area Code")]
  2919. HRESULT CityCode(
  2920. [out, retval] BSTR * ppCode
  2921. );
  2922. [propget, id(8), helpstring("property Local Access Code")]
  2923. HRESULT LocalAccessCode(
  2924. [out, retval] BSTR * ppCode
  2925. );
  2926. [propget, id(9), helpstring("property Long Distance Access Code")]
  2927. HRESULT LongDistanceAccessCode(
  2928. [out, retval] BSTR * ppCode
  2929. );
  2930. [propget, id(10), helpstring("property Toll Prefix List")]
  2931. HRESULT TollPrefixList(
  2932. [out, retval] BSTR * ppTollList
  2933. );
  2934. [propget, id(11), helpstring("property Cancel Call Waiting Code")]
  2935. HRESULT CancelCallWaitingCode(
  2936. [out, retval] BSTR * ppCode
  2937. );
  2938. }
  2939. [
  2940. uuid( 0C4D8F01-8DDB-11d1-A09E-00805FC147D3 ),
  2941. helpstring("TAPI 3.0 IEnumLocation interface"),
  2942. hidden,
  2943. pointer_default(unique)
  2944. ]
  2945. interface IEnumLocation : IUnknown
  2946. {
  2947. HRESULT Next(
  2948. [in] ULONG celt,
  2949. [out] ITLocationInfo ** ppElements,
  2950. [in,out,ptr] ULONG * pceltFetched
  2951. );
  2952. HRESULT Reset( void );
  2953. HRESULT Skip (
  2954. [in] ULONG celt
  2955. );
  2956. HRESULT Clone (
  2957. [out, retval] IEnumLocation ** ppEnum
  2958. );
  2959. }
  2960. [
  2961. uuid( 0C4D8F00-8DDB-11d1-A09E-00805FC147D3 ),
  2962. helpstring("TAPI 3.0 ITCallingCard Interface"),
  2963. dual
  2964. ]
  2965. interface ITCallingCard : IDispatch
  2966. {
  2967. [propget, id(1), helpstring("property Permanent Card ID")]
  2968. HRESULT PermanentCardID(
  2969. [out, retval] long * plCardID
  2970. );
  2971. [propget, id(2), helpstring("property Number Of Digits")]
  2972. HRESULT NumberOfDigits(
  2973. [out, retval] long * plDigits
  2974. );
  2975. [propget, id(3), helpstring("property Options")]
  2976. HRESULT Options(
  2977. [out, retval] long * plOptions
  2978. );
  2979. [propget, id(4), helpstring("property Card Name")]
  2980. HRESULT CardName(
  2981. [out, retval] BSTR * ppCardName
  2982. );
  2983. [propget, id(5), helpstring("property Same Area Dialing Rule")]
  2984. HRESULT SameAreaDialingRule(
  2985. [out, retval] BSTR * ppRule
  2986. );
  2987. [propget, id(6), helpstring("property Long Distance Dialing Rule")]
  2988. HRESULT LongDistanceDialingRule(
  2989. [out, retval] BSTR * ppRule
  2990. );
  2991. [propget, id(7), helpstring("property International Dialing Rule")]
  2992. HRESULT InternationalDialingRule(
  2993. [out, retval] BSTR * ppRule
  2994. );
  2995. }
  2996. [
  2997. uuid( 0C4D8F02-8DDB-11d1-A09E-00805FC147D3 ),
  2998. helpstring("TAPI 3.0 IEnumCallingCard interface"),
  2999. hidden,
  3000. pointer_default(unique)
  3001. ]
  3002. interface IEnumCallingCard : IUnknown
  3003. {
  3004. HRESULT Next(
  3005. [in] ULONG celt,
  3006. [out] ITCallingCard ** ppElements,
  3007. [in,out,ptr] ULONG * pceltFetched
  3008. );
  3009. HRESULT Reset( void );
  3010. HRESULT Skip (
  3011. [in] ULONG celt
  3012. );
  3013. HRESULT Clone (
  3014. [out, retval] IEnumCallingCard ** ppEnum
  3015. );
  3016. }
  3017. [
  3018. uuid( 895801DF-3DD6-11d1-8F30-00C04FB6809F ),
  3019. helpstring("TAPI 3.0 ITCallNotificationEvent interface"),
  3020. dual
  3021. ]
  3022. interface ITCallNotificationEvent : IDispatch
  3023. {
  3024. [propget, id(1), helpstring("property Call")]
  3025. HRESULT Call(
  3026. [out,retval] ITCallInfo ** ppCall
  3027. );
  3028. [propget, id(2), helpstring("property Event")]
  3029. HRESULT Event(
  3030. [out,retval] CALL_NOTIFICATION_EVENT * pCallNotificationEvent
  3031. );
  3032. [propget, id(3), helpstring("property CallbackInstance")]
  3033. HRESULT CallbackInstance(
  3034. [out, retval] long * plCallbackInstance
  3035. );
  3036. }
  3037. [
  3038. uuid( E9225295-C759-11d1-A02B-00C04FB6809F ),
  3039. helpstring("TAPI 3.0 ITDispatchMapper interface")
  3040. ]
  3041. interface ITDispatchMapper : IDispatch
  3042. {
  3043. [id(1), helpstring("QueryDispatchInterface")]
  3044. HRESULT
  3045. QueryDispatchInterface(
  3046. [in] BSTR pIID,
  3047. [in] IDispatch * pInterfaceToMap,
  3048. [out, retval] IDispatch ** ppReturnedInterface
  3049. );
  3050. }
  3051. [
  3052. uuid( EE3BD604-3868-11D2-A045-00C04FB6809F ),
  3053. helpstring( "ITStreamControl interface" ),
  3054. pointer_default(unique),
  3055. dual
  3056. ]
  3057. interface ITStreamControl : IDispatch
  3058. {
  3059. [id(IDISPAGGREGATEDMSPCALLOBJ | 1), helpstring("method CreateStream")]
  3060. HRESULT CreateStream(
  3061. [in] long lMediaType,
  3062. [in] TERMINAL_DIRECTION td,
  3063. [out, retval] ITStream ** ppStream
  3064. );
  3065. [id(IDISPAGGREGATEDMSPCALLOBJ | 2), helpstring("method RemoveStream")]
  3066. HRESULT RemoveStream(
  3067. [in] ITStream * pStream
  3068. );
  3069. [id(IDISPAGGREGATEDMSPCALLOBJ | 3), hidden]
  3070. HRESULT EnumerateStreams(
  3071. [out] IEnumStream ** ppEnumStream
  3072. );
  3073. [propget, id(IDISPAGGREGATEDMSPCALLOBJ | 4), helpstring("property Streams")]
  3074. HRESULT Streams(
  3075. [out, retval] VARIANT * pVariant
  3076. );
  3077. }
  3078. [
  3079. uuid( EE3BD605-3868-11D2-A045-00C04FB6809F ),
  3080. helpstring( "ITStream interface" ),
  3081. pointer_default(unique),
  3082. dual
  3083. ]
  3084. interface ITStream : IDispatch
  3085. {
  3086. [propget, id(1), helpstring("property MediaType")]
  3087. HRESULT MediaType(
  3088. [out, retval] long * plMediaType
  3089. );
  3090. [propget, id(2), helpstring("property Direction")]
  3091. HRESULT Direction(
  3092. [out, retval] TERMINAL_DIRECTION * pTD
  3093. );
  3094. [propget, id(3), helpstring("property Name")]
  3095. HRESULT Name(
  3096. [out, retval] BSTR * ppName
  3097. );
  3098. [id(4), helpstring("method StartStream")]
  3099. HRESULT StartStream(void);
  3100. [id(5), helpstring("method PauseStream")]
  3101. HRESULT PauseStream(void);
  3102. [id(6), helpstring("method StopStream")]
  3103. HRESULT StopStream(void);
  3104. [id(7), helpstring("method SelectTerminal")]
  3105. HRESULT SelectTerminal(
  3106. [in] ITTerminal * pTerminal
  3107. );
  3108. [id(8), helpstring("method UnselectTerminal")]
  3109. HRESULT UnselectTerminal(
  3110. [in] ITTerminal * pTerminal
  3111. );
  3112. [id(9), hidden]
  3113. HRESULT EnumerateTerminals(
  3114. [out] IEnumTerminal ** ppEnumTerminal
  3115. );
  3116. [propget, id(10), helpstring("property Terminals")]
  3117. HRESULT Terminals(
  3118. [out, retval] VARIANT * pTerminals
  3119. );
  3120. }
  3121. [
  3122. uuid( EE3BD606-3868-11d2-A045-00C04FB6809F ),
  3123. helpstring( "IEnumStream interface" ),
  3124. hidden,
  3125. pointer_default(unique)
  3126. ]
  3127. interface IEnumStream : IUnknown
  3128. {
  3129. HRESULT Next(
  3130. [in] ULONG celt,
  3131. [out] ITStream ** ppElements,
  3132. [in,out,ptr] ULONG * pceltFetched
  3133. );
  3134. HRESULT Reset( void );
  3135. HRESULT Skip (
  3136. [in] ULONG celt
  3137. );
  3138. HRESULT Clone (
  3139. [out, retval] IEnumStream ** ppEnum
  3140. );
  3141. }
  3142. [
  3143. uuid( EE3BD607-3868-11D2-A045-00C04FB6809F ),
  3144. helpstring( "ITSubStreamControl interface" ),
  3145. pointer_default(unique),
  3146. dual
  3147. ]
  3148. interface ITSubStreamControl : IDispatch
  3149. {
  3150. [id(1), helpstring("method CreateSubStream")]
  3151. HRESULT CreateSubStream(
  3152. [out, retval] ITSubStream ** ppSubStream
  3153. );
  3154. [id(2), helpstring("method RemoveSubStream")]
  3155. HRESULT RemoveSubStream(
  3156. [in] ITSubStream * pSubStream
  3157. );
  3158. [id(3), hidden]
  3159. HRESULT EnumerateSubStreams(
  3160. [out] IEnumSubStream ** ppEnumSubStream
  3161. );
  3162. [propget, id(4), helpstring("property SubStreams")]
  3163. HRESULT SubStreams(
  3164. [out, retval] VARIANT * pVariant
  3165. );
  3166. }
  3167. [
  3168. uuid( EE3BD608-3868-11D2-A045-00C04FB6809F ),
  3169. helpstring( "ITSubStream interface" ),
  3170. pointer_default(unique),
  3171. dual
  3172. ]
  3173. interface ITSubStream : IDispatch
  3174. {
  3175. [id(1), helpstring("method StartStream")]
  3176. HRESULT StartSubStream(void);
  3177. [id(2), helpstring("method PauseStream")]
  3178. HRESULT PauseSubStream(void);
  3179. [id(3), helpstring("method StopStream")]
  3180. HRESULT StopSubStream(void);
  3181. [id(4), helpstring("method SelectTerminal")]
  3182. HRESULT SelectTerminal(
  3183. [in] ITTerminal * pTerminal
  3184. );
  3185. [id(5), helpstring("method UnselectTerminal")]
  3186. HRESULT UnselectTerminal(
  3187. [in] ITTerminal * pTerminal
  3188. );
  3189. [id(6), hidden]
  3190. HRESULT EnumerateTerminals(
  3191. [out] IEnumTerminal ** ppEnumTerminal
  3192. );
  3193. [propget, id(7), helpstring("property Terminals")]
  3194. HRESULT Terminals(
  3195. [out, retval] VARIANT * pTerminals
  3196. );
  3197. [propget, id(8), helpstring("property Stream")]
  3198. HRESULT Stream(
  3199. [out, retval] ITStream ** ppITStream
  3200. );
  3201. }
  3202. [
  3203. uuid( EE3BD609-3868-11d2-A045-00C04FB6809F ),
  3204. helpstring( "IEnumSubStream interface" ),
  3205. hidden,
  3206. pointer_default(unique)
  3207. ]
  3208. interface IEnumSubStream : IUnknown
  3209. {
  3210. HRESULT Next(
  3211. [in] ULONG celt,
  3212. [out] ITSubStream ** ppElements,
  3213. [in,out,ptr] ULONG * pceltFetched
  3214. );
  3215. HRESULT Reset( void );
  3216. HRESULT Skip (
  3217. [in] ULONG celt
  3218. );
  3219. HRESULT Clone (
  3220. [out, retval] IEnumSubStream ** ppEnum
  3221. );
  3222. }
  3223. [
  3224. uuid( 207823EA-E252-11d2-B77E-0080C7135381 ),
  3225. helpstring("ITLegacyWaveSupport"),
  3226. dual
  3227. ]
  3228. interface ITLegacyWaveSupport : IDispatch
  3229. {
  3230. HRESULT IsFullDuplex( [out] FULLDUPLEX_SUPPORT * pSupport );
  3231. }
  3232. [
  3233. uuid(161A4A56-1E99-4b3f-A46A-168F38A5EE4C ),
  3234. helpstring("TAPI 3.0 ITBasicCallControl2 interface"),
  3235. dual
  3236. ]
  3237. interface ITBasicCallControl2 : ITBasicCallControl
  3238. {
  3239. [id(IDISPBASICCALLCONTROL | 23), helpstring("method RequestTerminal")]
  3240. HRESULT RequestTerminal(
  3241. [in] BSTR bstrTerminalClassGUID,
  3242. [in] long lMediaType,
  3243. [in] TERMINAL_DIRECTION Direction,
  3244. [out, retval] ITTerminal ** ppTerminal
  3245. );
  3246. [id(IDISPBASICCALLCONTROL | 24), helpstring("method SelectTerminalOnCall")]
  3247. HRESULT SelectTerminalOnCall(
  3248. [in] ITTerminal *pTerminal
  3249. );
  3250. [id(IDISPBASICCALLCONTROL | 25), helpstring("method UnselectTerminalOnCall")]
  3251. HRESULT UnselectTerminalOnCall(
  3252. [in] ITTerminal *pTerminal
  3253. );
  3254. }
  3255. [
  3256. uuid( B87658BD-3C59-4f64-BE74-AEDE3E86A81E ),
  3257. helpstring("TAPI 3.0 ITScriptableAudioFormat Interface"),
  3258. dual
  3259. ]
  3260. interface ITScriptableAudioFormat : IDispatch
  3261. {
  3262. [propget, id(1), helpstring("property Channels")]
  3263. HRESULT Channels(
  3264. [out, retval] long* pVal
  3265. );
  3266. [propput, id(1), helpstring("property Channels")]
  3267. HRESULT Channels(
  3268. [in] const long nNewVal
  3269. );
  3270. [propget, id(2), helpstring("property SamplesPerSec")]
  3271. HRESULT SamplesPerSec(
  3272. [out, retval] long* pVal
  3273. );
  3274. [propput, id(2), helpstring("property SamplesPerSec")]
  3275. HRESULT SamplesPerSec(
  3276. [in] const long nNewVal
  3277. );
  3278. [propget, id(3), helpstring("property AvgBytesPerSec")]
  3279. HRESULT AvgBytesPerSec(
  3280. [out, retval] long* pVal
  3281. );
  3282. [propput, id(3), helpstring("property AvgBytesPerSec")]
  3283. HRESULT AvgBytesPerSec(
  3284. [in] const long nNewVal
  3285. );
  3286. [propget, id(4), helpstring("property BlockAlign")]
  3287. HRESULT BlockAlign(
  3288. [out, retval] long* pVal
  3289. );
  3290. [propput, id(4), helpstring("property BlockAlign")]
  3291. HRESULT BlockAlign(
  3292. [in] const long nNewVal
  3293. );
  3294. [propget, id(5), helpstring("property BitsPerSample")]
  3295. HRESULT BitsPerSample(
  3296. [out, retval] long* pVal
  3297. );
  3298. [propput, id(5), helpstring("property BitsPerSample")]
  3299. HRESULT BitsPerSample(
  3300. [in] const long nNewVal
  3301. );
  3302. [propget, id(6), helpstring("property FormatTag")]
  3303. HRESULT FormatTag(
  3304. [out, retval] long* pVal
  3305. );
  3306. [propput, id(6), helpstring("property FormatTag")]
  3307. HRESULT FormatTag(
  3308. [in] const long nNewVal
  3309. );
  3310. };
  3311. cpp_quote("/****************************************")
  3312. cpp_quote(" * Terminal Classes")
  3313. cpp_quote(" ****************************************/")
  3314. cpp_quote("")
  3315. cpp_quote("// Video Windows - {F7438990-D6EB-11d0-82A6-00AA00B5CA1B}")
  3316. cpp_quote("EXTERN_C const CLSID CLSID_VideoWindowTerm;")
  3317. cpp_quote("")
  3318. cpp_quote("// Video input (camera) {AAF578EC-DC70-11d0-8ED3-00C04FB6809F}")
  3319. cpp_quote("EXTERN_C const CLSID CLSID_VideoInputTerminal;")
  3320. cpp_quote("")
  3321. cpp_quote("// Handset device {AAF578EB-DC70-11d0-8ED3-00C04FB6809F}")
  3322. cpp_quote("EXTERN_C const CLSID CLSID_HandsetTerminal;")
  3323. cpp_quote("")
  3324. cpp_quote("// Headset device {AAF578ED-DC70-11d0-8ED3-00C04FB6809F}")
  3325. cpp_quote("EXTERN_C const CLSID CLSID_HeadsetTerminal;")
  3326. cpp_quote("")
  3327. cpp_quote("// Speakerphone device {AAF578EE-DC70-11d0-8ED3-00C04FB6809F}")
  3328. cpp_quote("EXTERN_C const CLSID CLSID_SpeakerphoneTerminal;")
  3329. cpp_quote("")
  3330. cpp_quote("// Microphone (sound card) {AAF578EF-DC70-11d0-8ED3-00C04FB6809F}")
  3331. cpp_quote("EXTERN_C const CLSID CLSID_MicrophoneTerminal;")
  3332. cpp_quote("")
  3333. cpp_quote("// Speakers (sound card) {AAF578F0-DC70-11d0-8ED3-00C04FB6809F}")
  3334. cpp_quote("EXTERN_C const CLSID CLSID_SpeakersTerminal;")
  3335. cpp_quote("")
  3336. cpp_quote("// Media stream terminal {E2F7AEF7-4971-11D1-A671-006097C9A2E8}")
  3337. cpp_quote("EXTERN_C const CLSID CLSID_MediaStreamTerminal;")
  3338. cpp_quote("")
  3339. cpp_quote("// File Recording terminal {521F3D06-C3D0-4511-8617-86B9A783DA77}")
  3340. cpp_quote("EXTERN_C const CLSID CLSID_FileRecordingTerminal;")
  3341. cpp_quote("")
  3342. cpp_quote("// File Recording Track {BF14A2E4-E88B-4ef5-9740-5AC5D022F8C9}")
  3343. cpp_quote("EXTERN_C const CLSID CLSID_FileRecordingTrack;")
  3344. cpp_quote("")
  3345. cpp_quote("// File Playback Terminal {0CB9914C-79CD-47dc-ADB0-327F47CEFB20}")
  3346. cpp_quote("EXTERN_C const CLSID CLSID_FilePlaybackTerminal;")
  3347. cpp_quote("")
  3348. cpp_quote("// define the media modes")
  3349. cpp_quote("#define TAPIMEDIATYPE_AUDIO 0x8")
  3350. cpp_quote("#define TAPIMEDIATYPE_VIDEO 0x8000")
  3351. cpp_quote("#define TAPIMEDIATYPE_DATAMODEM 0x10")
  3352. cpp_quote("#define TAPIMEDIATYPE_G3FAX 0x20")
  3353. cpp_quote("#define TAPIMEDIATYPE_MULTITRACK 0x10000")
  3354. cpp_quote("")
  3355. cpp_quote("// {831CE2D6-83B5-11d1-BB5C-00C04FB6809F}")
  3356. cpp_quote("EXTERN_C const CLSID TAPIPROTOCOL_PSTN;")
  3357. cpp_quote("")
  3358. cpp_quote("// {831CE2D7-83B5-11d1-BB5C-00C04FB6809F}")
  3359. cpp_quote("EXTERN_C const CLSID TAPIPROTOCOL_H323;")
  3360. cpp_quote("")
  3361. cpp_quote("// {831CE2D8-83B5-11d1-BB5C-00C04FB6809F}")
  3362. cpp_quote("EXTERN_C const CLSID TAPIPROTOCOL_Multicast;")
  3363. cpp_quote("")
  3364. cpp_quote("#define __TapiConstants_MODULE_DEFINED__")
  3365. #endif // __TAPI3IF_IDL__