home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / tspi.h < prev    next >
C/C++ Source or Header  |  2000-02-01  |  47KB  |  1,715 lines

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