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