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