TSPI.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:45k
源码类别:

模拟服务器

开发平台:

C/C++

  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