Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1714 lines
45 KiB

  1. /*++ BUILD Version: 0000 // Increment this if a change has global effects
  2. The Telephony API is jointly copyrighted by Intel and Microsoft. You are
  3. granted a royalty free worldwide, unlimited license to make copies, and use
  4. the API/SPI for making applications/drivers that interface with the
  5. specification provided that this paragraph and the Intel/Microsoft copyright
  6. statement is maintained as is in the text and source code files.
  7. Copyright (c) Microsoft Corporation. All rights reserved.
  8. Portions copyright 1992, 1993 Intel/Microsoft, all rights reserved.
  9. Module Name:
  10. tspi.h
  11. Notes:
  12. Additions to the Telephony Service Provider Interface (TSPI) since
  13. version 1.0 are noted by version number (i.e. "TSPI v1.4").
  14. --*/
  15. #ifndef TSPI_H
  16. #define TSPI_H
  17. #include <windows.h>
  18. #include "tapi.h"
  19. #if WIN32
  20. #if TAPI_CURRENT_VERSION < 0x00020000
  21. #error Building a 32bit 1.3 or 1.4 service provider is not supported.
  22. #endif
  23. #endif
  24. // tspi.h is only of use in conjunction with tapi.h. Very few types are
  25. // defined in tspi.h. Most types of procedure formal parameters are simply
  26. // passed through from corresponding procedures in tapi.h. A working knowledge
  27. // of the TAPI interface is required for an understanding of this interface.
  28. #ifdef __cplusplus
  29. extern "C" { /* Assume C declarations for C++ */
  30. #endif /* __cplusplus */
  31. #ifndef DECLARE_OPAQUE
  32. #define DECLARE_OPAQUE(name) struct name##__ { int unused; }; \
  33. typedef const struct name##__ FAR* name
  34. #endif // DECLARE_OPAQUE
  35. #ifndef TSPIAPI
  36. #define TSPIAPI PASCAL
  37. #endif
  38. DECLARE_OPAQUE(HDRVCALL);
  39. DECLARE_OPAQUE(HDRVLINE);
  40. DECLARE_OPAQUE(HDRVPHONE);
  41. DECLARE_OPAQUE(HDRVMSPLINE);
  42. DECLARE_OPAQUE(HDRVDIALOGINSTANCE);
  43. typedef HDRVCALL FAR * LPHDRVCALL;
  44. typedef HDRVLINE FAR * LPHDRVLINE;
  45. typedef HDRVPHONE FAR * LPHDRVPHONE;
  46. typedef HDRVDIALOGINSTANCE FAR * LPHDRVDIALOGINSTANCE;
  47. typedef HDRVMSPLINE FAR * LPHDRVMSPLINE;
  48. DECLARE_OPAQUE(HTAPICALL);
  49. DECLARE_OPAQUE(HTAPILINE);
  50. DECLARE_OPAQUE(HTAPIPHONE);
  51. DECLARE_OPAQUE32(HTAPIDIALOGINSTANCE);
  52. DECLARE_OPAQUE32(HTAPIMSPLINE);
  53. typedef HTAPICALL FAR * LPHTAPICALL;
  54. typedef HTAPILINE FAR * LPHTAPILINE;
  55. typedef HTAPIPHONE FAR * LPHTAPIPHONE;
  56. typedef HTAPIDIALOGINSTANCE FAR * LPHTAPIDIALOGINSTANCE;
  57. typedef HTAPIMSPLINE FAR * LPHTAPIMSPLINE;
  58. DECLARE_OPAQUE(HPROVIDER);
  59. typedef HPROVIDER FAR * LPHPROVIDER;
  60. typedef DWORD DRV_REQUESTID;
  61. typedef void (CALLBACK * ASYNC_COMPLETION)(
  62. DRV_REQUESTID dwRequestID,
  63. LONG lResult
  64. );
  65. typedef void (CALLBACK * LINEEVENT)(
  66. HTAPILINE htLine,
  67. HTAPICALL htCall,
  68. DWORD dwMsg,
  69. DWORD_PTR dwParam1,
  70. DWORD_PTR dwParam2,
  71. DWORD_PTR dwParam3
  72. );
  73. typedef void (CALLBACK * PHONEEVENT)(
  74. HTAPIPHONE htPhone,
  75. DWORD dwMsg,
  76. DWORD_PTR dwParam1,
  77. DWORD_PTR dwParam2,
  78. DWORD_PTR dwParam3
  79. );
  80. typedef LONG (CALLBACK * TUISPIDLLCALLBACK)(
  81. DWORD_PTR dwObjectID,
  82. DWORD dwObjectType,
  83. LPVOID lpParams,
  84. DWORD dwSize
  85. );
  86. #if TAPI_CURRENT_VERSION >= 0x00020000
  87. typedef struct tuispicreatedialoginstanceparams_tag
  88. {
  89. DRV_REQUESTID dwRequestID;
  90. HDRVDIALOGINSTANCE hdDlgInst;
  91. HTAPIDIALOGINSTANCE htDlgInst;
  92. LPCWSTR lpszUIDLLName;
  93. LPVOID lpParams;
  94. DWORD dwSize;
  95. } TUISPICREATEDIALOGINSTANCEPARAMS, *LPTUISPICREATEDIALOGINSTANCEPARAMS;
  96. #endif
  97. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  98. #define LINEQOSSTRUCT_KEY ((DWORD)'LQSK')
  99. typedef struct LINEQOSSERVICELEVEL_tag
  100. {
  101. DWORD dwMediaMode;
  102. DWORD dwQOSServiceLevel;
  103. } LINEQOSSERVICELEVEL, * LPLINEQOSSERVICELEVEL;
  104. typedef struct LINECALLQOSINFO_tag
  105. {
  106. DWORD dwKey;
  107. DWORD dwTotalSize;
  108. DWORD dwQOSRequestType;
  109. union
  110. {
  111. struct
  112. {
  113. DWORD dwNumServiceLevelEntries;
  114. LINEQOSSERVICELEVEL LineQOSServiceLevel[1];
  115. } SetQOSServiceLevel;
  116. };
  117. } LINECALLQOSINFO, * LPLINECALLQOSINFO;
  118. // {831CE2D6-83B5-11d1-BB5C-00C04FB6809F}
  119. EXTERN_C const CLSID TAPIPROTOCOL_PSTN;
  120. // {831CE2D7-83B5-11d1-BB5C-00C04FB6809F}
  121. EXTERN_C const CLSID TAPIPROTOCOL_H323;
  122. // {831CE2D8-83B5-11d1-BB5C-00C04FB6809F}
  123. EXTERN_C const CLSID TAPIPROTOCOL_Multicast;
  124. #endif
  125. #define TSPI_MESSAGE_BASE 500
  126. // The lowest-numbered TSPI-specific message ID number
  127. #define LINE_NEWCALL ((long) TSPI_MESSAGE_BASE + 0)
  128. #define LINE_CALLDEVSPECIFIC ((long) TSPI_MESSAGE_BASE + 1)
  129. #define LINE_CALLDEVSPECIFICFEATURE ((long) TSPI_MESSAGE_BASE + 2)
  130. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  131. #define LINE_CREATEDIALOGINSTANCE ((long) TSPI_MESSAGE_BASE + 3)
  132. // TSPI v2.0
  133. #define LINE_SENDDIALOGINSTANCEDATA ((long) TSPI_MESSAGE_BASE + 4)
  134. // TSPI v2.0
  135. #endif
  136. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  137. #define LINE_SENDMSPDATA ((long) TSPI_MESSAGE_BASE + 5)
  138. // TSPI v3.0
  139. #define LINE_QOSINFO ((long) TSPI_MESSAGE_BASE + 6)
  140. // TSPI v3.0
  141. #endif
  142. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  143. #define LINETSPIOPTION_NONREENTRANT 0x00000001 // TSPI v2.0
  144. #endif
  145. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  146. #define TUISPIDLL_OBJECT_LINEID 1L // TSPI v2.0
  147. #define TUISPIDLL_OBJECT_PHONEID 2L // TSPI v2.0
  148. #define TUISPIDLL_OBJECT_PROVIDERID 3L // TSPI v2.0
  149. #define TUISPIDLL_OBJECT_DIALOGINSTANCE 4L // TSPI v2.0
  150. #endif
  151. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  152. #define PRIVATEOBJECT_NONE 0x00000001 // TSPI v3.0
  153. #define PRIVATEOBJECT_CALLID 0x00000002 // TSPI v3.0
  154. #define PRIVATEOBJECT_LINE 0x00000003 // TSPI v3.0
  155. #define PRIVATEOBJECT_CALL 0x00000004 // TSPI v3.0
  156. #define PRIVATEOBJECT_PHONE 0x00000005 // TSPI v3.0
  157. #define PRIVATEOBJECT_ADDRESS 0x00000006 // TSPI v3.0
  158. #define LINEQOSREQUESTTYPE_SERVICELEVEL 0x00000001 // TSPI v3.0
  159. #define LINEQOSSERVICELEVEL_NEEDED 0x00000001 // TSPI v3.0
  160. #define LINEQOSSERVICELEVEL_IFAVAILABLE 0x00000002 // TSPI v3.0
  161. #define LINEQOSSERVICELEVEL_BESTEFFORT 0x00000003 // TSPI v3.0
  162. #define LINEEQOSINFO_NOQOS 0x00000001 // TSPI v3.0
  163. #define LINEEQOSINFO_ADMISSIONFAILURE 0x00000002 // TSPI v3.0
  164. #define LINEEQOSINFO_POLICYFAILURE 0x00000003 // TSPI v3.0
  165. #define LINEEQOSINFO_GENERICERROR 0x00000004 // TSPI v3.0
  166. #endif
  167. //
  168. // The following function prototypes pertain
  169. // to a service provider's core module
  170. //
  171. LONG
  172. TSPIAPI
  173. TSPI_lineAccept(
  174. DRV_REQUESTID dwRequestID,
  175. HDRVCALL hdCall,
  176. LPCSTR lpsUserUserInfo,
  177. DWORD dwSize
  178. );
  179. LONG
  180. TSPIAPI
  181. TSPI_lineAddToConference(
  182. DRV_REQUESTID dwRequestID,
  183. HDRVCALL hdConfCall,
  184. HDRVCALL hdConsultCall
  185. );
  186. LONG
  187. TSPIAPI
  188. TSPI_lineAnswer(
  189. DRV_REQUESTID dwRequestID,
  190. HDRVCALL hdCall,
  191. LPCSTR lpsUserUserInfo,
  192. DWORD dwSize
  193. );
  194. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  195. LONG
  196. TSPIAPI
  197. TSPI_lineBlindTransfer(
  198. DRV_REQUESTID dwRequestID,
  199. HDRVCALL hdCall,
  200. LPCWSTR lpszDestAddress,
  201. DWORD dwCountryCode);
  202. #else
  203. LONG
  204. TSPIAPI
  205. TSPI_lineBlindTransfer(
  206. DRV_REQUESTID dwRequestID,
  207. HDRVCALL hdCall,
  208. LPCSTR lpszDestAddress,
  209. DWORD dwCountryCode);
  210. #endif
  211. LONG
  212. TSPIAPI
  213. TSPI_lineClose(
  214. HDRVLINE hdLine
  215. );
  216. LONG
  217. TSPIAPI
  218. TSPI_lineCloseCall(
  219. HDRVCALL hdCall
  220. );
  221. LONG
  222. TSPIAPI
  223. TSPI_lineCompleteCall(
  224. DRV_REQUESTID dwRequestID,
  225. HDRVCALL hdCall,
  226. LPDWORD lpdwCompletionID,
  227. DWORD dwCompletionMode,
  228. DWORD dwMessageID
  229. );
  230. LONG
  231. TSPIAPI
  232. TSPI_lineCompleteTransfer(
  233. DRV_REQUESTID dwRequestID,
  234. HDRVCALL hdCall,
  235. HDRVCALL hdConsultCall,
  236. HTAPICALL htConfCall,
  237. LPHDRVCALL lphdConfCall,
  238. DWORD dwTransferMode
  239. );
  240. LONG
  241. TSPIAPI
  242. TSPI_lineConditionalMediaDetection(
  243. HDRVLINE hdLine,
  244. DWORD dwMediaModes,
  245. LPLINECALLPARAMS const lpCallParams
  246. );
  247. LONG
  248. TSPIAPI
  249. TSPI_lineDevSpecific(
  250. DRV_REQUESTID dwRequestID,
  251. HDRVLINE hdLine,
  252. DWORD dwAddressID,
  253. HDRVCALL hdCall,
  254. LPVOID lpParams,
  255. DWORD dwSize
  256. );
  257. LONG
  258. TSPIAPI
  259. TSPI_lineDevSpecificFeature(
  260. DRV_REQUESTID dwRequestID,
  261. HDRVLINE hdLine,
  262. DWORD dwFeature,
  263. LPVOID lpParams,
  264. DWORD dwSize
  265. );
  266. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  267. LONG
  268. TSPIAPI
  269. TSPI_lineDial(
  270. DRV_REQUESTID dwRequestID,
  271. HDRVCALL hdCall,
  272. LPCWSTR lpszDestAddress,
  273. DWORD dwCountryCode
  274. );
  275. #else
  276. LONG
  277. TSPIAPI
  278. TSPI_lineDial(
  279. DRV_REQUESTID dwRequestID,
  280. HDRVCALL hdCall,
  281. LPCSTR lpszDestAddress,
  282. DWORD dwCountryCode
  283. );
  284. #endif
  285. LONG
  286. TSPIAPI
  287. TSPI_lineDrop(
  288. DRV_REQUESTID dwRequestID,
  289. HDRVCALL hdCall,
  290. LPCSTR lpsUserUserInfo,
  291. DWORD dwSize
  292. );
  293. LONG
  294. TSPIAPI
  295. TSPI_lineDropOnClose( // TSPI v1.4
  296. HDRVCALL hdCall
  297. );
  298. LONG
  299. TSPIAPI
  300. TSPI_lineDropNoOwner( // TSPI v1.4
  301. HDRVCALL hdCall
  302. );
  303. LONG
  304. TSPIAPI
  305. TSPI_lineForward(
  306. DRV_REQUESTID dwRequestID,
  307. HDRVLINE hdLine,
  308. DWORD bAllAddresses,
  309. DWORD dwAddressID,
  310. LPLINEFORWARDLIST const lpForwardList,
  311. DWORD dwNumRingsNoAnswer,
  312. HTAPICALL htConsultCall,
  313. LPHDRVCALL lphdConsultCall,
  314. LPLINECALLPARAMS const lpCallParams
  315. );
  316. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  317. LONG
  318. TSPIAPI
  319. TSPI_lineGatherDigits(
  320. HDRVCALL hdCall,
  321. DWORD dwEndToEndID,
  322. DWORD dwDigitModes,
  323. LPWSTR lpsDigits,
  324. DWORD dwNumDigits,
  325. LPCWSTR lpszTerminationDigits,
  326. DWORD dwFirstDigitTimeout,
  327. DWORD dwInterDigitTimeout
  328. );
  329. #else
  330. LONG
  331. TSPIAPI
  332. TSPI_lineGatherDigits(
  333. HDRVCALL hdCall,
  334. DWORD dwEndToEndID,
  335. DWORD dwDigitModes,
  336. LPSTR lpsDigits,
  337. DWORD dwNumDigits,
  338. LPCSTR lpszTerminationDigits,
  339. DWORD dwFirstDigitTimeout,
  340. DWORD dwInterDigitTimeout
  341. );
  342. #endif
  343. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  344. LONG
  345. TSPIAPI
  346. TSPI_lineGenerateDigits(
  347. HDRVCALL hdCall,
  348. DWORD dwEndToEndID,
  349. DWORD dwDigitMode,
  350. LPCWSTR lpszDigits,
  351. DWORD dwDuration
  352. );
  353. #else
  354. LONG
  355. TSPIAPI
  356. TSPI_lineGenerateDigits(
  357. HDRVCALL hdCall,
  358. DWORD dwEndToEndID,
  359. DWORD dwDigitMode,
  360. LPCSTR lpszDigits,
  361. DWORD dwDuration
  362. );
  363. #endif
  364. LONG
  365. TSPIAPI
  366. TSPI_lineGenerateTone(
  367. HDRVCALL hdCall,
  368. DWORD dwEndToEndID,
  369. DWORD dwToneMode,
  370. DWORD dwDuration,
  371. DWORD dwNumTones,
  372. LPLINEGENERATETONE const lpTones
  373. );
  374. LONG
  375. TSPIAPI
  376. TSPI_lineGetAddressCaps(
  377. DWORD dwDeviceID,
  378. DWORD dwAddressID,
  379. DWORD dwTSPIVersion,
  380. DWORD dwExtVersion,
  381. LPLINEADDRESSCAPS lpAddressCaps
  382. );
  383. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  384. LONG
  385. TSPIAPI
  386. TSPI_lineGetAddressID(
  387. HDRVLINE hdLine,
  388. LPDWORD lpdwAddressID,
  389. DWORD dwAddressMode,
  390. LPCWSTR lpsAddress,
  391. DWORD dwSize
  392. );
  393. #else
  394. LONG
  395. TSPIAPI
  396. TSPI_lineGetAddressID(
  397. HDRVLINE hdLine,
  398. LPDWORD lpdwAddressID,
  399. DWORD dwAddressMode,
  400. LPCSTR lpsAddress,
  401. DWORD dwSize
  402. );
  403. #endif
  404. LONG
  405. TSPIAPI
  406. TSPI_lineGetAddressStatus(
  407. HDRVLINE hdLine,
  408. DWORD dwAddressID,
  409. LPLINEADDRESSSTATUS lpAddressStatus
  410. );
  411. LONG
  412. TSPIAPI
  413. TSPI_lineGetCallAddressID(
  414. HDRVCALL hdCall,
  415. LPDWORD lpdwAddressID
  416. );
  417. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  418. LONG
  419. TSPIAPI
  420. TSPI_lineGetCallHubTracking( // TSPI v3.0
  421. HDRVLINE hdLine,
  422. LPLINECALLHUBTRACKINGINFO lpTrackingInfo
  423. );
  424. #endif
  425. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  426. LONG
  427. TSPIAPI
  428. TSPI_lineGetCallIDs( // TSPI v3.0
  429. HDRVCALL hdCall,
  430. LPDWORD lpdwAddressID,
  431. LPDWORD lpdwCallID,
  432. LPDWORD lpdwRelatedCallID
  433. );
  434. #endif
  435. LONG
  436. TSPIAPI
  437. TSPI_lineGetCallInfo(
  438. HDRVCALL hdCall,
  439. LPLINECALLINFO lpCallInfo
  440. );
  441. LONG
  442. TSPIAPI
  443. TSPI_lineGetCallStatus(
  444. HDRVCALL hdCall,
  445. LPLINECALLSTATUS lpCallStatus
  446. );
  447. LONG
  448. TSPIAPI
  449. TSPI_lineGetDevCaps(
  450. DWORD dwDeviceID,
  451. DWORD dwTSPIVersion,
  452. DWORD dwExtVersion,
  453. LPLINEDEVCAPS lpLineDevCaps
  454. );
  455. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  456. LONG
  457. TSPIAPI
  458. TSPI_lineGetDevConfig(
  459. DWORD dwDeviceID,
  460. LPVARSTRING lpDeviceConfig,
  461. LPCWSTR lpszDeviceClass
  462. );
  463. #else
  464. LONG
  465. TSPIAPI
  466. TSPI_lineGetDevConfig(
  467. DWORD dwDeviceID,
  468. LPVARSTRING lpDeviceConfig,
  469. LPCSTR lpszDeviceClass
  470. );
  471. #endif
  472. LONG
  473. TSPIAPI
  474. TSPI_lineGetExtensionID(
  475. DWORD dwDeviceID,
  476. DWORD dwTSPIVersion,
  477. LPLINEEXTENSIONID lpExtensionID
  478. );
  479. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  480. LONG
  481. TSPIAPI
  482. TSPI_lineGetIcon(
  483. DWORD dwDeviceID,
  484. LPCWSTR lpszDeviceClass,
  485. LPHICON lphIcon
  486. );
  487. #else
  488. LONG
  489. TSPIAPI
  490. TSPI_lineGetIcon(
  491. DWORD dwDeviceID,
  492. LPCSTR lpszDeviceClass,
  493. LPHICON lphIcon
  494. );
  495. #endif
  496. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  497. LONG
  498. TSPIAPI
  499. TSPI_lineGetID(
  500. HDRVLINE hdLine,
  501. DWORD dwAddressID,
  502. HDRVCALL hdCall,
  503. DWORD dwSelect,
  504. LPVARSTRING lpDeviceID,
  505. LPCWSTR lpszDeviceClass,
  506. HANDLE hTargetProcess // TSPI v2.0
  507. );
  508. #else
  509. LONG
  510. TSPIAPI
  511. TSPI_lineGetID(
  512. HDRVLINE hdLine,
  513. DWORD dwAddressID,
  514. HDRVCALL hdCall,
  515. DWORD dwSelect,
  516. LPVARSTRING lpDeviceID,
  517. LPCSTR lpszDeviceClass
  518. );
  519. #endif
  520. LONG
  521. TSPIAPI
  522. TSPI_lineGetLineDevStatus(
  523. HDRVLINE hdLine,
  524. LPLINEDEVSTATUS lpLineDevStatus
  525. );
  526. LONG
  527. TSPIAPI
  528. TSPI_lineGetNumAddressIDs(
  529. HDRVLINE hdLine,
  530. LPDWORD lpdwNumAddressIDs
  531. );
  532. LONG
  533. TSPIAPI
  534. TSPI_lineHold(
  535. DRV_REQUESTID dwRequestID,
  536. HDRVCALL hdCall
  537. );
  538. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  539. LONG
  540. TSPIAPI
  541. TSPI_lineMakeCall(
  542. DRV_REQUESTID dwRequestID,
  543. HDRVLINE hdLine,
  544. HTAPICALL htCall,
  545. LPHDRVCALL lphdCall,
  546. LPCWSTR lpszDestAddress,
  547. DWORD dwCountryCode,
  548. LPLINECALLPARAMS const lpCallParams
  549. );
  550. #else
  551. LONG
  552. TSPIAPI
  553. TSPI_lineMakeCall(
  554. DRV_REQUESTID dwRequestID,
  555. HDRVLINE hdLine,
  556. HTAPICALL htCall,
  557. LPHDRVCALL lphdCall,
  558. LPCSTR lpszDestAddress,
  559. DWORD dwCountryCode,
  560. LPLINECALLPARAMS const lpCallParams
  561. );
  562. #endif
  563. LONG
  564. TSPIAPI
  565. TSPI_lineMonitorDigits(
  566. HDRVCALL hdCall,
  567. DWORD dwDigitModes
  568. );
  569. LONG
  570. TSPIAPI
  571. TSPI_lineMonitorMedia(
  572. HDRVCALL hdCall,
  573. DWORD dwMediaModes
  574. );
  575. LONG
  576. TSPIAPI
  577. TSPI_lineMonitorTones(
  578. HDRVCALL hdCall,
  579. DWORD dwToneListID,
  580. LPLINEMONITORTONE const lpToneList,
  581. DWORD dwNumEntries
  582. );
  583. LONG
  584. TSPIAPI
  585. TSPI_lineNegotiateExtVersion(
  586. DWORD dwDeviceID,
  587. DWORD dwTSPIVersion,
  588. DWORD dwLowVersion,
  589. DWORD dwHighVersion,
  590. LPDWORD lpdwExtVersion
  591. );
  592. LONG
  593. TSPIAPI
  594. TSPI_lineNegotiateTSPIVersion(
  595. DWORD dwDeviceID,
  596. DWORD dwLowVersion,
  597. DWORD dwHighVersion,
  598. LPDWORD lpdwTSPIVersion
  599. );
  600. LONG
  601. TSPIAPI
  602. TSPI_lineOpen(
  603. DWORD dwDeviceID,
  604. HTAPILINE htLine,
  605. LPHDRVLINE lphdLine,
  606. DWORD dwTSPIVersion,
  607. LINEEVENT lpfnEventProc
  608. );
  609. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  610. LONG
  611. TSPIAPI
  612. TSPI_linePark(
  613. DRV_REQUESTID dwRequestID,
  614. HDRVCALL hdCall,
  615. DWORD dwParkMode,
  616. LPCWSTR lpszDirAddress,
  617. LPVARSTRING lpNonDirAddress
  618. );
  619. #else
  620. LONG
  621. TSPIAPI
  622. TSPI_linePark(
  623. DRV_REQUESTID dwRequestID,
  624. HDRVCALL hdCall,
  625. DWORD dwParkMode,
  626. LPCSTR lpszDirAddress,
  627. LPVARSTRING lpNonDirAddress
  628. );
  629. #endif
  630. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  631. LONG
  632. TSPIAPI
  633. TSPI_linePickup(
  634. DRV_REQUESTID dwRequestID,
  635. HDRVLINE hdLine,
  636. DWORD dwAddressID,
  637. HTAPICALL htCall,
  638. LPHDRVCALL lphdCall,
  639. LPCWSTR lpszDestAddress,
  640. LPCWSTR lpszGroupID
  641. );
  642. #else
  643. LONG
  644. TSPIAPI
  645. TSPI_linePickup(
  646. DRV_REQUESTID dwRequestID,
  647. HDRVLINE hdLine,
  648. DWORD dwAddressID,
  649. HTAPICALL htCall,
  650. LPHDRVCALL lphdCall,
  651. LPCSTR lpszDestAddress,
  652. LPCSTR lpszGroupID
  653. );
  654. #endif
  655. LONG
  656. TSPIAPI
  657. TSPI_linePrepareAddToConference(
  658. DRV_REQUESTID dwRequestID,
  659. HDRVCALL hdConfCall,
  660. HTAPICALL htConsultCall,
  661. LPHDRVCALL lphdConsultCall,
  662. LPLINECALLPARAMS const lpCallParams
  663. );
  664. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  665. LONG
  666. TSPIAPI
  667. TSPI_lineRedirect(
  668. DRV_REQUESTID dwRequestID,
  669. HDRVCALL hdCall,
  670. LPCWSTR lpszDestAddress,
  671. DWORD dwCountryCode
  672. );
  673. #else
  674. LONG
  675. TSPIAPI
  676. TSPI_lineRedirect(
  677. DRV_REQUESTID dwRequestID,
  678. HDRVCALL hdCall,
  679. LPCSTR lpszDestAddress,
  680. DWORD dwCountryCode
  681. );
  682. #endif
  683. LONG
  684. TSPIAPI
  685. TSPI_lineReleaseUserUserInfo( // TSPI v1.4
  686. DRV_REQUESTID dwRequestID,
  687. HDRVCALL hdCall
  688. );
  689. LONG
  690. TSPIAPI
  691. TSPI_lineRemoveFromConference(
  692. DRV_REQUESTID dwRequestID,
  693. HDRVCALL hdCall
  694. );
  695. LONG
  696. TSPIAPI
  697. TSPI_lineSecureCall(
  698. DRV_REQUESTID dwRequestID,
  699. HDRVCALL hdCall
  700. );
  701. LONG
  702. TSPIAPI
  703. TSPI_lineSelectExtVersion(
  704. HDRVLINE hdLine,
  705. DWORD dwExtVersion
  706. );
  707. LONG
  708. TSPIAPI
  709. TSPI_lineSendUserUserInfo(
  710. DRV_REQUESTID dwRequestID,
  711. HDRVCALL hdCall,
  712. LPCSTR lpsUserUserInfo,
  713. DWORD dwSize
  714. );
  715. LONG
  716. TSPIAPI
  717. TSPI_lineSetAppSpecific(
  718. HDRVCALL hdCall,
  719. DWORD dwAppSpecific
  720. );
  721. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  722. LONG
  723. TSPIAPI
  724. TSPI_lineSetCallData( // TSPI v2.0
  725. DRV_REQUESTID dwRequestID,
  726. HDRVCALL hdCall,
  727. LPVOID lpCallData,
  728. DWORD dwSize
  729. );
  730. #endif
  731. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  732. LONG
  733. TSPIAPI
  734. TSPI_lineSetCallHubTracking( // TSPI v3.0
  735. HDRVLINE hdLine,
  736. LPLINECALLHUBTRACKINGINFO lpTrackingInfo
  737. );
  738. #endif
  739. LONG
  740. TSPIAPI
  741. TSPI_lineSetCallParams(
  742. DRV_REQUESTID dwRequestID,
  743. HDRVCALL hdCall,
  744. DWORD dwBearerMode,
  745. DWORD dwMinRate,
  746. DWORD dwMaxRate,
  747. LPLINEDIALPARAMS const lpDialParams
  748. );
  749. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  750. LONG
  751. TSPIAPI
  752. TSPI_lineSetCallQualityOfService( // TSPI v2.0
  753. DRV_REQUESTID dwRequestID,
  754. HDRVCALL hdCall,
  755. LPVOID lpSendingFlowspec,
  756. DWORD dwSendingFlowspecSize,
  757. LPVOID lpReceivingFlowspec,
  758. DWORD dwReceivingFlowspecSize
  759. );
  760. LONG
  761. TSPIAPI
  762. TSPI_lineSetCallTreatment( // TSPI v2.0
  763. DRV_REQUESTID dwRequestID,
  764. HDRVCALL hdCall,
  765. DWORD dwTreatment
  766. );
  767. #endif
  768. LONG
  769. TSPIAPI
  770. TSPI_lineSetCurrentLocation( // TSPI v1.4
  771. DWORD dwLocation
  772. );
  773. LONG
  774. TSPIAPI
  775. TSPI_lineSetDefaultMediaDetection(
  776. HDRVLINE hdLine,
  777. DWORD dwMediaModes
  778. );
  779. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  780. LONG
  781. TSPIAPI
  782. TSPI_lineSetDevConfig(
  783. DWORD dwDeviceID,
  784. LPVOID const lpDeviceConfig,
  785. DWORD dwSize,
  786. LPCWSTR lpszDeviceClass
  787. );
  788. #else
  789. LONG
  790. TSPIAPI
  791. TSPI_lineSetDevConfig(
  792. DWORD dwDeviceID,
  793. LPVOID const lpDeviceConfig,
  794. DWORD dwSize,
  795. LPCSTR lpszDeviceClass
  796. );
  797. #endif
  798. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  799. LONG
  800. TSPIAPI
  801. TSPI_lineSetLineDevStatus( // TSPI v2.0
  802. DRV_REQUESTID dwRequestID,
  803. HDRVLINE hdLine,
  804. DWORD dwStatusToChange,
  805. DWORD fStatus
  806. );
  807. #endif
  808. LONG
  809. TSPIAPI
  810. TSPI_lineSetMediaControl(
  811. HDRVLINE hdLine,
  812. DWORD dwAddressID,
  813. HDRVCALL hdCall,
  814. DWORD dwSelect,
  815. LPLINEMEDIACONTROLDIGIT const lpDigitList,
  816. DWORD dwDigitNumEntries,
  817. LPLINEMEDIACONTROLMEDIA const lpMediaList,
  818. DWORD dwMediaNumEntries,
  819. LPLINEMEDIACONTROLTONE const lpToneList,
  820. DWORD dwToneNumEntries,
  821. LPLINEMEDIACONTROLCALLSTATE const lpCallStateList,
  822. DWORD dwCallStateNumEntries
  823. );
  824. LONG
  825. TSPIAPI
  826. TSPI_lineSetMediaMode(
  827. HDRVCALL hdCall,
  828. DWORD dwMediaMode
  829. );
  830. LONG
  831. TSPIAPI
  832. TSPI_lineSetStatusMessages(
  833. HDRVLINE hdLine,
  834. DWORD dwLineStates,
  835. DWORD dwAddressStates
  836. );
  837. LONG
  838. TSPIAPI
  839. TSPI_lineSetTerminal(
  840. DRV_REQUESTID dwRequestID,
  841. HDRVLINE hdLine,
  842. DWORD dwAddressID,
  843. HDRVCALL hdCall,
  844. DWORD dwSelect,
  845. DWORD dwTerminalModes,
  846. DWORD dwTerminalID,
  847. DWORD bEnable
  848. );
  849. LONG
  850. TSPIAPI
  851. TSPI_lineSetupConference(
  852. DRV_REQUESTID dwRequestID,
  853. HDRVCALL hdCall,
  854. HDRVLINE hdLine,
  855. HTAPICALL htConfCall,
  856. LPHDRVCALL lphdConfCall,
  857. HTAPICALL htConsultCall,
  858. LPHDRVCALL lphdConsultCall,
  859. DWORD dwNumParties,
  860. LPLINECALLPARAMS const lpCallParams
  861. );
  862. LONG
  863. TSPIAPI
  864. TSPI_lineSetupTransfer(
  865. DRV_REQUESTID dwRequestID,
  866. HDRVCALL hdCall,
  867. HTAPICALL htConsultCall,
  868. LPHDRVCALL lphdConsultCall,
  869. LPLINECALLPARAMS const lpCallParams
  870. );
  871. LONG
  872. TSPIAPI
  873. TSPI_lineSwapHold(
  874. DRV_REQUESTID dwRequestID,
  875. HDRVCALL hdActiveCall,
  876. HDRVCALL hdHeldCall
  877. );
  878. LONG
  879. TSPIAPI
  880. TSPI_lineUncompleteCall(
  881. DRV_REQUESTID dwRequestID,
  882. HDRVLINE hdLine,
  883. DWORD dwCompletionID
  884. );
  885. LONG
  886. TSPIAPI
  887. TSPI_lineUnhold(
  888. DRV_REQUESTID dwRequestID,
  889. HDRVCALL hdCall
  890. );
  891. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  892. LONG
  893. TSPIAPI
  894. TSPI_lineUnpark(
  895. DRV_REQUESTID dwRequestID,
  896. HDRVLINE hdLine,
  897. DWORD dwAddressID,
  898. HTAPICALL htCall,
  899. LPHDRVCALL lphdCall,
  900. LPCWSTR lpszDestAddress
  901. );
  902. #else
  903. LONG
  904. TSPIAPI
  905. TSPI_lineUnpark(
  906. DRV_REQUESTID dwRequestID,
  907. HDRVLINE hdLine,
  908. DWORD dwAddressID,
  909. HTAPICALL htCall,
  910. LPHDRVCALL lphdCall,
  911. LPCSTR lpszDestAddress
  912. );
  913. #endif
  914. LONG
  915. TSPIAPI
  916. TSPI_phoneClose(
  917. HDRVPHONE hdPhone
  918. );
  919. LONG
  920. TSPIAPI
  921. TSPI_phoneDevSpecific(
  922. DRV_REQUESTID dwRequestID,
  923. HDRVPHONE hdPhone,
  924. LPVOID lpParams,
  925. DWORD dwSize
  926. );
  927. LONG
  928. TSPIAPI
  929. TSPI_phoneGetButtonInfo(
  930. HDRVPHONE hdPhone,
  931. DWORD dwButtonLampID,
  932. LPPHONEBUTTONINFO lpButtonInfo
  933. );
  934. LONG
  935. TSPIAPI
  936. TSPI_phoneGetData(
  937. HDRVPHONE hdPhone,
  938. DWORD dwDataID,
  939. LPVOID lpData,
  940. DWORD dwSize
  941. );
  942. LONG
  943. TSPIAPI
  944. TSPI_phoneGetDevCaps(
  945. DWORD dwDeviceID,
  946. DWORD dwTSPIVersion,
  947. DWORD dwExtVersion,
  948. LPPHONECAPS lpPhoneCaps
  949. );
  950. LONG
  951. TSPIAPI
  952. TSPI_phoneGetDisplay(
  953. HDRVPHONE hdPhone,
  954. LPVARSTRING lpDisplay
  955. );
  956. LONG
  957. TSPIAPI
  958. TSPI_phoneGetExtensionID(
  959. DWORD dwDeviceID,
  960. DWORD dwTSPIVersion,
  961. LPPHONEEXTENSIONID lpExtensionID
  962. );
  963. LONG
  964. TSPIAPI
  965. TSPI_phoneGetGain(
  966. HDRVPHONE hdPhone,
  967. DWORD dwHookSwitchDev,
  968. LPDWORD lpdwGain
  969. );
  970. LONG
  971. TSPIAPI
  972. TSPI_phoneGetHookSwitch(
  973. HDRVPHONE hdPhone,
  974. LPDWORD lpdwHookSwitchDevs
  975. );
  976. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  977. LONG
  978. TSPIAPI
  979. TSPI_phoneGetIcon(
  980. DWORD dwDeviceID,
  981. LPCWSTR lpszDeviceClass,
  982. LPHICON lphIcon
  983. );
  984. #else
  985. LONG
  986. TSPIAPI
  987. TSPI_phoneGetIcon(
  988. DWORD dwDeviceID,
  989. LPCSTR lpszDeviceClass,
  990. LPHICON lphIcon
  991. );
  992. #endif
  993. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  994. LONG
  995. TSPIAPI
  996. TSPI_phoneGetID(
  997. HDRVPHONE hdPhone,
  998. LPVARSTRING lpDeviceID,
  999. LPCWSTR lpszDeviceClass,
  1000. HANDLE hTargetProcess // TSPI v2.0
  1001. );
  1002. #else
  1003. LONG
  1004. TSPIAPI
  1005. TSPI_phoneGetID(
  1006. HDRVPHONE hdPhone,
  1007. LPVARSTRING lpDeviceID,
  1008. LPCSTR lpszDeviceClass
  1009. );
  1010. #endif
  1011. LONG
  1012. TSPIAPI
  1013. TSPI_phoneGetLamp(
  1014. HDRVPHONE hdPhone,
  1015. DWORD dwButtonLampID,
  1016. LPDWORD lpdwLampMode
  1017. );
  1018. LONG
  1019. TSPIAPI
  1020. TSPI_phoneGetRing(
  1021. HDRVPHONE hdPhone,
  1022. LPDWORD lpdwRingMode,
  1023. LPDWORD lpdwVolume
  1024. );
  1025. LONG
  1026. TSPIAPI
  1027. TSPI_phoneGetStatus(
  1028. HDRVPHONE hdPhone,
  1029. LPPHONESTATUS lpPhoneStatus
  1030. );
  1031. LONG
  1032. TSPIAPI
  1033. TSPI_phoneGetVolume(
  1034. HDRVPHONE hdPhone,
  1035. DWORD dwHookSwitchDev,
  1036. LPDWORD lpdwVolume
  1037. );
  1038. LONG
  1039. TSPIAPI
  1040. TSPI_phoneNegotiateExtVersion(
  1041. DWORD dwDeviceID,
  1042. DWORD dwTSPIVersion,
  1043. DWORD dwLowVersion,
  1044. DWORD dwHighVersion,
  1045. LPDWORD lpdwExtVersion
  1046. );
  1047. LONG
  1048. TSPIAPI
  1049. TSPI_phoneNegotiateTSPIVersion(
  1050. DWORD dwDeviceID,
  1051. DWORD dwLowVersion,
  1052. DWORD dwHighVersion,
  1053. LPDWORD lpdwTSPIVersion
  1054. );
  1055. LONG
  1056. TSPIAPI
  1057. TSPI_phoneOpen(
  1058. DWORD dwDeviceID,
  1059. HTAPIPHONE htPhone,
  1060. LPHDRVPHONE lphdPhone,
  1061. DWORD dwTSPIVersion,
  1062. PHONEEVENT lpfnEventProc
  1063. );
  1064. LONG
  1065. TSPIAPI
  1066. TSPI_phoneSelectExtVersion(
  1067. HDRVPHONE hdPhone,
  1068. DWORD dwExtVersion
  1069. );
  1070. LONG
  1071. TSPIAPI
  1072. TSPI_phoneSetButtonInfo(
  1073. DRV_REQUESTID dwRequestID,
  1074. HDRVPHONE hdPhone,
  1075. DWORD dwButtonLampID,
  1076. LPPHONEBUTTONINFO const lpButtonInfo
  1077. );
  1078. LONG
  1079. TSPIAPI
  1080. TSPI_phoneSetData(
  1081. DRV_REQUESTID dwRequestID,
  1082. HDRVPHONE hdPhone,
  1083. DWORD dwDataID,
  1084. LPVOID const lpData,
  1085. DWORD dwSize
  1086. );
  1087. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1088. LONG
  1089. TSPIAPI
  1090. TSPI_phoneSetDisplay(
  1091. DRV_REQUESTID dwRequestID,
  1092. HDRVPHONE hdPhone,
  1093. DWORD dwRow,
  1094. DWORD dwColumn,
  1095. LPCWSTR lpsDisplay,
  1096. DWORD dwSize
  1097. );
  1098. #else
  1099. LONG
  1100. TSPIAPI
  1101. TSPI_phoneSetDisplay(
  1102. DRV_REQUESTID dwRequestID,
  1103. HDRVPHONE hdPhone,
  1104. DWORD dwRow,
  1105. DWORD dwColumn,
  1106. LPCSTR lpsDisplay,
  1107. DWORD dwSize
  1108. );
  1109. #endif
  1110. LONG
  1111. TSPIAPI
  1112. TSPI_phoneSetGain(
  1113. DRV_REQUESTID dwRequestID,
  1114. HDRVPHONE hdPhone,
  1115. DWORD dwHookSwitchDev,
  1116. DWORD dwGain
  1117. );
  1118. LONG
  1119. TSPIAPI
  1120. TSPI_phoneSetHookSwitch(
  1121. DRV_REQUESTID dwRequestID,
  1122. HDRVPHONE hdPhone,
  1123. DWORD dwHookSwitchDevs,
  1124. DWORD dwHookSwitchMode
  1125. );
  1126. LONG
  1127. TSPIAPI
  1128. TSPI_phoneSetLamp(
  1129. DRV_REQUESTID dwRequestID,
  1130. HDRVPHONE hdPhone,
  1131. DWORD dwButtonLampID,
  1132. DWORD dwLampMode
  1133. );
  1134. LONG
  1135. TSPIAPI
  1136. TSPI_phoneSetRing(
  1137. DRV_REQUESTID dwRequestID,
  1138. HDRVPHONE hdPhone,
  1139. DWORD dwRingMode,
  1140. DWORD dwVolume
  1141. );
  1142. LONG
  1143. TSPIAPI
  1144. TSPI_phoneSetStatusMessages(
  1145. HDRVPHONE hdPhone,
  1146. DWORD dwPhoneStates,
  1147. DWORD dwButtonModes,
  1148. DWORD dwButtonStates
  1149. );
  1150. LONG
  1151. TSPIAPI
  1152. TSPI_phoneSetVolume(
  1153. DRV_REQUESTID dwRequestID,
  1154. HDRVPHONE hdPhone,
  1155. DWORD dwHookSwitchDev,
  1156. DWORD dwVolume
  1157. );
  1158. LONG
  1159. TSPIAPI
  1160. TSPI_providerConfig(
  1161. HWND hwndOwner,
  1162. DWORD dwPermanentProviderID
  1163. );
  1164. LONG
  1165. TSPIAPI
  1166. TSPI_providerCreateLineDevice( // TSPI v1.4
  1167. DWORD_PTR dwTempID,
  1168. DWORD dwDeviceID
  1169. );
  1170. LONG
  1171. TSPIAPI
  1172. TSPI_providerCreatePhoneDevice( // TSPI v1.4
  1173. DWORD_PTR dwTempID,
  1174. DWORD dwDeviceID
  1175. );
  1176. LONG
  1177. TSPIAPI
  1178. TSPI_providerEnumDevices( // TSPI v1.4
  1179. DWORD dwPermanentProviderID,
  1180. LPDWORD lpdwNumLines,
  1181. LPDWORD lpdwNumPhones,
  1182. HPROVIDER hProvider,
  1183. LINEEVENT lpfnLineCreateProc,
  1184. PHONEEVENT lpfnPhoneCreateProc
  1185. );
  1186. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1187. LONG
  1188. TSPIAPI
  1189. TSPI_providerFreeDialogInstance( // TSPI v2.0
  1190. HDRVDIALOGINSTANCE hdDlgInst
  1191. );
  1192. LONG
  1193. TSPIAPI
  1194. TSPI_providerGenericDialogData( // TSPI v2.0
  1195. DWORD_PTR dwObjectID,
  1196. DWORD dwObjectType,
  1197. LPVOID lpParams,
  1198. DWORD dwSize
  1199. );
  1200. #endif
  1201. LONG
  1202. TSPIAPI
  1203. TSPI_providerInit(
  1204. DWORD dwTSPIVersion,
  1205. DWORD dwPermanentProviderID,
  1206. DWORD dwLineDeviceIDBase,
  1207. DWORD dwPhoneDeviceIDBase,
  1208. DWORD_PTR dwNumLines,
  1209. DWORD_PTR dwNumPhones,
  1210. ASYNC_COMPLETION lpfnCompletionProc
  1211. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1212. ,
  1213. LPDWORD lpdwTSPIOptions // TSPI v2.0
  1214. #endif
  1215. );
  1216. LONG
  1217. TSPIAPI
  1218. TSPI_providerInstall(
  1219. HWND hwndOwner,
  1220. DWORD dwPermanentProviderID
  1221. );
  1222. LONG
  1223. TSPIAPI
  1224. TSPI_providerRemove(
  1225. HWND hwndOwner,
  1226. DWORD dwPermanentProviderID
  1227. );
  1228. LONG
  1229. TSPIAPI
  1230. TSPI_providerShutdown(
  1231. DWORD dwTSPIVersion
  1232. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1233. ,
  1234. DWORD dwPermanentProviderID // TSPI v2.0
  1235. #endif
  1236. );
  1237. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1238. LONG
  1239. TSPIAPI
  1240. TSPI_providerUIIdentify( // TSPI v2.0
  1241. LPWSTR lpszUIDLLName
  1242. );
  1243. #endif
  1244. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  1245. LONG
  1246. TSPIAPI
  1247. TSPI_lineMSPIdentify(
  1248. DWORD dwDeviceID,
  1249. GUID * pCLSID
  1250. );
  1251. #endif
  1252. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  1253. LONG
  1254. TSPIAPI
  1255. TSPI_lineCreateMSPInstance(
  1256. HDRVLINE hdLine,
  1257. DWORD dwAddressID,
  1258. HTAPIMSPLINE htMSPLine,
  1259. LPHDRVMSPLINE lphdMSPLine
  1260. );
  1261. LONG
  1262. TSPIAPI
  1263. TSPI_lineCloseMSPInstance(
  1264. HDRVMSPLINE hdMSPLine
  1265. );
  1266. LONG
  1267. TSPIAPI
  1268. TSPI_lineReceiveMSPData(
  1269. HDRVLINE hdLine,
  1270. HDRVCALL hdCall,
  1271. HDRVMSPLINE hdMSPLine,
  1272. LPVOID pBuffer,
  1273. DWORD dwSize
  1274. );
  1275. #endif
  1276. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1277. //
  1278. // The following function prototypes pertain
  1279. // to a service provider's UI module
  1280. //
  1281. LONG
  1282. TSPIAPI
  1283. TUISPI_lineConfigDialog( // TSPI v2.0
  1284. TUISPIDLLCALLBACK lpfnUIDLLCallback,
  1285. DWORD dwDeviceID,
  1286. HWND hwndOwner,
  1287. LPCWSTR lpszDeviceClass
  1288. );
  1289. LONG
  1290. TSPIAPI
  1291. TUISPI_lineConfigDialogEdit( // TSPI v2.0
  1292. TUISPIDLLCALLBACK lpfnUIDLLCallback,
  1293. DWORD dwDeviceID,
  1294. HWND hwndOwner,
  1295. LPCWSTR lpszDeviceClass,
  1296. LPVOID const lpDeviceConfigIn,
  1297. DWORD dwSize,
  1298. LPVARSTRING lpDeviceConfigOut
  1299. );
  1300. LONG
  1301. TSPIAPI
  1302. TUISPI_phoneConfigDialog( // TSPI v2.0
  1303. TUISPIDLLCALLBACK lpfnUIDLLCallback,
  1304. DWORD dwDeviceID,
  1305. HWND hwndOwner,
  1306. LPCWSTR lpszDeviceClass
  1307. );
  1308. LONG
  1309. TSPIAPI
  1310. TUISPI_providerConfig( // TSPI v2.0
  1311. TUISPIDLLCALLBACK lpfnUIDLLCallback,
  1312. HWND hwndOwner,
  1313. DWORD dwPermanentProviderID
  1314. );
  1315. LONG
  1316. TSPIAPI
  1317. TUISPI_providerGenericDialog( // TSPI v2.0
  1318. TUISPIDLLCALLBACK lpfnUIDLLCallback,
  1319. HTAPIDIALOGINSTANCE htDlgInst,
  1320. LPVOID lpParams,
  1321. DWORD dwSize,
  1322. HANDLE hEvent
  1323. );
  1324. LONG
  1325. TSPIAPI
  1326. TUISPI_providerGenericDialogData( // TSPI v2.0
  1327. HTAPIDIALOGINSTANCE htDlgInst,
  1328. LPVOID lpParams,
  1329. DWORD dwSize
  1330. );
  1331. LONG
  1332. TSPIAPI
  1333. TUISPI_providerInstall( // TSPI v2.0
  1334. TUISPIDLLCALLBACK lpfnUIDLLCallback,
  1335. HWND hwndOwner,
  1336. DWORD dwPermanentProviderID
  1337. );
  1338. LONG
  1339. TSPIAPI
  1340. TUISPI_providerRemove( // TSPI v2.0
  1341. TUISPIDLLCALLBACK lpfnUIDLLCallback,
  1342. HWND hwndOwner,
  1343. DWORD dwPermanentProviderID
  1344. );
  1345. #else
  1346. //
  1347. // The following were obsoleted by the above (but are needed to build 1.4 SPs)
  1348. //
  1349. LONG
  1350. TSPIAPI
  1351. TSPI_lineConfigDialog(
  1352. DWORD dwDeviceID,
  1353. HWND hwndOwner,
  1354. LPCSTR lpszDeviceClass
  1355. );
  1356. LONG
  1357. TSPIAPI
  1358. TSPI_lineConfigDialogEdit(
  1359. DWORD dwDeviceID,
  1360. HWND hwndOwner,
  1361. LPCSTR lpszDeviceClass,
  1362. LPVOID const lpDeviceConfigIn,
  1363. DWORD dwSize,
  1364. LPVARSTRING lpDeviceConfigOut
  1365. );
  1366. LONG
  1367. TSPIAPI
  1368. TSPI_phoneConfigDialog(
  1369. DWORD dwDeviceID,
  1370. HWND hwndOwner,
  1371. LPCSTR lpszDeviceClass
  1372. );
  1373. #endif
  1374. #if (TAPI_CURRENT_VERSION < 0x00020000)
  1375. //
  1376. // The following macros are the ordinal numbers of the exported tspi functions
  1377. //
  1378. #define TSPI_PROC_BASE 500
  1379. #define TSPI_LINEACCEPT (TSPI_PROC_BASE + 0)
  1380. #define TSPI_LINEADDTOCONFERENCE (TSPI_PROC_BASE + 1)
  1381. #define TSPI_LINEANSWER (TSPI_PROC_BASE + 2)
  1382. #define TSPI_LINEBLINDTRANSFER (TSPI_PROC_BASE + 3)
  1383. #define TSPI_LINECLOSE (TSPI_PROC_BASE + 4)
  1384. #define TSPI_LINECLOSECALL (TSPI_PROC_BASE + 5)
  1385. #define TSPI_LINECOMPLETECALL (TSPI_PROC_BASE + 6)
  1386. #define TSPI_LINECOMPLETETRANSFER (TSPI_PROC_BASE + 7)
  1387. #define TSPI_LINECONDITIONALMEDIADETECTION (TSPI_PROC_BASE + 8)
  1388. #define TSPI_LINECONFIGDIALOG (TSPI_PROC_BASE + 9)
  1389. #define TSPI_LINEDEVSPECIFIC (TSPI_PROC_BASE + 10)
  1390. #define TSPI_LINEDEVSPECIFICFEATURE (TSPI_PROC_BASE + 11)
  1391. #define TSPI_LINEDIAL (TSPI_PROC_BASE + 12)
  1392. #define TSPI_LINEDROP (TSPI_PROC_BASE + 13)
  1393. #define TSPI_LINEFORWARD (TSPI_PROC_BASE + 14)
  1394. #define TSPI_LINEGATHERDIGITS (TSPI_PROC_BASE + 15)
  1395. #define TSPI_LINEGENERATEDIGITS (TSPI_PROC_BASE + 16)
  1396. #define TSPI_LINEGENERATETONE (TSPI_PROC_BASE + 17)
  1397. #define TSPI_LINEGETADDRESSCAPS (TSPI_PROC_BASE + 18)
  1398. #define TSPI_LINEGETADDRESSID (TSPI_PROC_BASE + 19)
  1399. #define TSPI_LINEGETADDRESSSTATUS (TSPI_PROC_BASE + 20)
  1400. #define TSPI_LINEGETCALLADDRESSID (TSPI_PROC_BASE + 21)
  1401. #define TSPI_LINEGETCALLINFO (TSPI_PROC_BASE + 22)
  1402. #define TSPI_LINEGETCALLSTATUS (TSPI_PROC_BASE + 23)
  1403. #define TSPI_LINEGETDEVCAPS (TSPI_PROC_BASE + 24)
  1404. #define TSPI_LINEGETDEVCONFIG (TSPI_PROC_BASE + 25)
  1405. #define TSPI_LINEGETEXTENSIONID (TSPI_PROC_BASE + 26)
  1406. #define TSPI_LINEGETICON (TSPI_PROC_BASE + 27)
  1407. #define TSPI_LINEGETID (TSPI_PROC_BASE + 28)
  1408. #define TSPI_LINEGETLINEDEVSTATUS (TSPI_PROC_BASE + 29)
  1409. #define TSPI_LINEGETNUMADDRESSIDS (TSPI_PROC_BASE + 30)
  1410. #define TSPI_LINEHOLD (TSPI_PROC_BASE + 31)
  1411. #define TSPI_LINEMAKECALL (TSPI_PROC_BASE + 32)
  1412. #define TSPI_LINEMONITORDIGITS (TSPI_PROC_BASE + 33)
  1413. #define TSPI_LINEMONITORMEDIA (TSPI_PROC_BASE + 34)
  1414. #define TSPI_LINEMONITORTONES (TSPI_PROC_BASE + 35)
  1415. #define TSPI_LINENEGOTIATEEXTVERSION (TSPI_PROC_BASE + 36)
  1416. #define TSPI_LINENEGOTIATETSPIVERSION (TSPI_PROC_BASE + 37)
  1417. #define TSPI_LINEOPEN (TSPI_PROC_BASE + 38)
  1418. #define TSPI_LINEPARK (TSPI_PROC_BASE + 39)
  1419. #define TSPI_LINEPICKUP (TSPI_PROC_BASE + 40)
  1420. #define TSPI_LINEPREPAREADDTOCONFERENCE (TSPI_PROC_BASE + 41)
  1421. #define TSPI_LINEREDIRECT (TSPI_PROC_BASE + 42)
  1422. #define TSPI_LINEREMOVEFROMCONFERENCE (TSPI_PROC_BASE + 43)
  1423. #define TSPI_LINESECURECALL (TSPI_PROC_BASE + 44)
  1424. #define TSPI_LINESELECTEXTVERSION (TSPI_PROC_BASE + 45)
  1425. #define TSPI_LINESENDUSERUSERINFO (TSPI_PROC_BASE + 46)
  1426. #define TSPI_LINESETAPPSPECIFIC (TSPI_PROC_BASE + 47)
  1427. #define TSPI_LINESETCALLPARAMS (TSPI_PROC_BASE + 48)
  1428. #define TSPI_LINESETDEFAULTMEDIADETECTION (TSPI_PROC_BASE + 49)
  1429. #define TSPI_LINESETDEVCONFIG (TSPI_PROC_BASE + 50)
  1430. #define TSPI_LINESETMEDIACONTROL (TSPI_PROC_BASE + 51)
  1431. #define TSPI_LINESETMEDIAMODE (TSPI_PROC_BASE + 52)
  1432. #define TSPI_LINESETSTATUSMESSAGES (TSPI_PROC_BASE + 53)
  1433. #define TSPI_LINESETTERMINAL (TSPI_PROC_BASE + 54)
  1434. #define TSPI_LINESETUPCONFERENCE (TSPI_PROC_BASE + 55)
  1435. #define TSPI_LINESETUPTRANSFER (TSPI_PROC_BASE + 56)
  1436. #define TSPI_LINESWAPHOLD (TSPI_PROC_BASE + 57)
  1437. #define TSPI_LINEUNCOMPLETECALL (TSPI_PROC_BASE + 58)
  1438. #define TSPI_LINEUNHOLD (TSPI_PROC_BASE + 59)
  1439. #define TSPI_LINEUNPARK (TSPI_PROC_BASE + 60)
  1440. #define TSPI_PHONECLOSE (TSPI_PROC_BASE + 61)
  1441. #define TSPI_PHONECONFIGDIALOG (TSPI_PROC_BASE + 62)
  1442. #define TSPI_PHONEDEVSPECIFIC (TSPI_PROC_BASE + 63)
  1443. #define TSPI_PHONEGETBUTTONINFO (TSPI_PROC_BASE + 64)
  1444. #define TSPI_PHONEGETDATA (TSPI_PROC_BASE + 65)
  1445. #define TSPI_PHONEGETDEVCAPS (TSPI_PROC_BASE + 66)
  1446. #define TSPI_PHONEGETDISPLAY (TSPI_PROC_BASE + 67)
  1447. #define TSPI_PHONEGETEXTENSIONID (TSPI_PROC_BASE + 68)
  1448. #define TSPI_PHONEGETGAIN (TSPI_PROC_BASE + 69)
  1449. #define TSPI_PHONEGETHOOKSWITCH (TSPI_PROC_BASE + 70)
  1450. #define TSPI_PHONEGETICON (TSPI_PROC_BASE + 71)
  1451. #define TSPI_PHONEGETID (TSPI_PROC_BASE + 72)
  1452. #define TSPI_PHONEGETLAMP (TSPI_PROC_BASE + 73)
  1453. #define TSPI_PHONEGETRING (TSPI_PROC_BASE + 74)
  1454. #define TSPI_PHONEGETSTATUS (TSPI_PROC_BASE + 75)
  1455. #define TSPI_PHONEGETVOLUME (TSPI_PROC_BASE + 76)
  1456. #define TSPI_PHONENEGOTIATEEXTVERSION (TSPI_PROC_BASE + 77)
  1457. #define TSPI_PHONENEGOTIATETSPIVERSION (TSPI_PROC_BASE + 78)
  1458. #define TSPI_PHONEOPEN (TSPI_PROC_BASE + 79)
  1459. #define TSPI_PHONESELECTEXTVERSION (TSPI_PROC_BASE + 80)
  1460. #define TSPI_PHONESETBUTTONINFO (TSPI_PROC_BASE + 81)
  1461. #define TSPI_PHONESETDATA (TSPI_PROC_BASE + 82)
  1462. #define TSPI_PHONESETDISPLAY (TSPI_PROC_BASE + 83)
  1463. #define TSPI_PHONESETGAIN (TSPI_PROC_BASE + 84)
  1464. #define TSPI_PHONESETHOOKSWITCH (TSPI_PROC_BASE + 85)
  1465. #define TSPI_PHONESETLAMP (TSPI_PROC_BASE + 86)
  1466. #define TSPI_PHONESETRING (TSPI_PROC_BASE + 87)
  1467. #define TSPI_PHONESETSTATUSMESSAGES (TSPI_PROC_BASE + 88)
  1468. #define TSPI_PHONESETVOLUME (TSPI_PROC_BASE + 89)
  1469. #define TSPI_PROVIDERCONFIG (TSPI_PROC_BASE + 90)
  1470. #define TSPI_PROVIDERINIT (TSPI_PROC_BASE + 91)
  1471. #define TSPI_PROVIDERINSTALL (TSPI_PROC_BASE + 92)
  1472. #define TSPI_PROVIDERREMOVE (TSPI_PROC_BASE + 93)
  1473. #define TSPI_PROVIDERSHUTDOWN (TSPI_PROC_BASE + 94)
  1474. #define TSPI_PROVIDERENUMDEVICES (TSPI_PROC_BASE + 95) // TSPI v1.4
  1475. #define TSPI_LINEDROPONCLOSE (TSPI_PROC_BASE + 96) // TSPI v1.4
  1476. #define TSPI_LINEDROPNOOWNER (TSPI_PROC_BASE + 97) // TSPI v1.4
  1477. #define TSPI_PROVIDERCREATELINEDEVICE (TSPI_PROC_BASE + 98) // TSPI v1.4
  1478. #define TSPI_PROVIDERCREATEPHONEDEVICE (TSPI_PROC_BASE + 99) // TSPI v1.4
  1479. #define TSPI_LINESETCURRENTLOCATION (TSPI_PROC_BASE + 100) // TSPI v1.4
  1480. #define TSPI_LINECONFIGDIALOGEDIT (TSPI_PROC_BASE + 101) // TSPI v1.4
  1481. #define TSPI_LINERELEASEUSERUSERINFO (TSPI_PROC_BASE + 102) // TSPI v1.4
  1482. #define TSPI_LINEGETCALLID (TSPI_PROC_BASE + 103) // TSPI v3.0
  1483. #define TSPI_LINEGETCALLHUBTRACKING (TSPI_PROC_BASE + 104) // TSPI v3.0
  1484. #define TSPI_LINESETCALLHUBTRACKING (TSPI_PROC_BASE + 105) // TSPI v3.0
  1485. #define TSPI_LINERECEIVEMSPDATA (TSPI_PROC_BASE + 106) // TSPI v3.0
  1486. #define TSPI_LINEMSPIDENTIFY (TSPI_PROC_BASE + 107) // TSPI v3.0
  1487. #define TSPI_LINECREATEMSPINSTANCE (TSPI_PROC_BASE + 108) // TSPI v3.0
  1488. #define TSPI_LINECLOSEMSPINSTANCE (TSPI_PROC_BASE + 109) // TSPI v3.0
  1489. #endif
  1490. #ifdef __cplusplus
  1491. } /* End of extern "C" { */
  1492. #endif /* __cplusplus */
  1493. #endif // TSPI_H