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.

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