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