home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / bc45 / msinc.pak / TSPI.H < prev    next >
C/C++ Source or Header  |  1997-07-23  |  27KB  |  822 lines

  1. // The  Telephony  API  is jointly copyrighted by Intel and Microsoft.  You are
  2. // granted  a royalty free worldwide, unlimited license to make copies, and use
  3. // the   API/SPI  for  making  applications/drivers  that  interface  with  the
  4. // specification provided that this paragraph and the Intel/Microsoft copyright
  5. // statement is maintained as is in the text and source code files.
  6. //
  7. // Copyright 1995 Microsoft, all rights reserved.
  8. // Portions copyright 1992, 1993 Intel/Microsoft, all rights reserved.
  9.  
  10. #ifndef TSPI_H
  11. #define TSPI_H
  12.  
  13.  
  14. #include <windows.h>
  15.  
  16. #include <tapi.h>
  17.  
  18. // tspi.h  is  only  of  use  in  conjunction  with tapi.h.  Very few types are
  19. // defined  in  tspi.h.   Most  types of procedure formal parameters are simply
  20. // passed through from corresponding procedures in tapi.h.  A working knowledge
  21. // of the TAPI interface is required for an understanding of this interface.
  22.  
  23. #ifdef __BORLANDC__
  24.   #include <pshpack8.h>
  25. #endif
  26.  
  27. #ifdef __cplusplus
  28. extern "C" {            /* Assume C declarations for C++ */
  29. #endif  /* __cplusplus */
  30.  
  31. #ifndef DECLARE_OPAQUE32
  32. #define DECLARE_OPAQUE32(name)  struct name##__ { int unused; }; \
  33.                 typedef const struct name##__ FAR* name
  34. #endif  // DECLARE_OPAQUE32
  35.  
  36. #ifndef TSPIAPI
  37. #define TSPIAPI __export __far __pascal
  38. #endif
  39.  
  40. DECLARE_OPAQUE32(HDRVCALL);
  41. DECLARE_OPAQUE32(HDRVLINE);
  42. DECLARE_OPAQUE32(HDRVPHONE);
  43.  
  44. typedef HDRVCALL FAR * LPHDRVCALL;
  45. typedef HDRVLINE FAR * LPHDRVLINE;
  46. typedef HDRVPHONE FAR * LPHDRVPHONE;
  47.  
  48. DECLARE_OPAQUE32(HTAPICALL);
  49. DECLARE_OPAQUE32(HTAPILINE);
  50. DECLARE_OPAQUE32(HTAPIPHONE);
  51.  
  52. typedef HTAPICALL FAR * LPHTAPICALL;
  53. typedef HTAPILINE FAR * LPHTAPILINE;
  54. typedef HTAPIPHONE FAR * LPHTAPIPHONE;
  55.  
  56.  
  57. DECLARE_OPAQUE32(HPROVIDER);
  58. typedef HPROVIDER FAR * LPHPROVIDER;
  59.  
  60.  
  61.  
  62. typedef void (CALLBACK * LINEEVENT) (
  63.     HTAPILINE   htLine,
  64.     HTAPICALL   htCall,
  65.     DWORD       dwMsg,
  66.     DWORD       dwParam1,
  67.     DWORD       dwParam2,
  68.     DWORD       dwParam3);
  69.  
  70. typedef void (CALLBACK * PHONEEVENT) (
  71.     HTAPIPHONE  htPhone,
  72.     DWORD       dwMsg,
  73.     DWORD       dwParam1,
  74.     DWORD       dwParam2,
  75.     DWORD       dwParam3);
  76.  
  77.  
  78. #define TSPI_MESSAGE_BASE 500
  79.     // The lowest-numbered TSPI-specific message ID number
  80.  
  81. #define LINE_NEWCALL                                            ((long) TSPI_MESSAGE_BASE + 0)
  82. #define LINE_CALLDEVSPECIFIC                    ((long) TSPI_MESSAGE_BASE + 1)
  83. #define LINE_CALLDEVSPECIFICFEATURE     ((long) TSPI_MESSAGE_BASE + 2)
  84.  
  85. #define INITIALIZE_NEGOTIATION 0xFFFFFFFFL
  86.  
  87.  
  88. typedef DWORD DRV_REQUESTID;
  89.  
  90. typedef void (CALLBACK * ASYNC_COMPLETION) (
  91.     DRV_REQUESTID  dwRequestID,
  92.     LONG           lResult);
  93.  
  94.  
  95.  
  96. // TSPIAPI TSPI_line functions
  97. // ----------------------------------------------------------------------------
  98.     
  99. LONG TSPIAPI TSPI_lineAccept(
  100.     DRV_REQUESTID  dwRequestID,
  101.     HDRVCALL       hdCall,
  102.     LPCSTR         lpsUserUserInfo,
  103.     DWORD          dwSize);
  104.  
  105. LONG TSPIAPI TSPI_lineAddToConference(
  106.     DRV_REQUESTID  dwRequestID,
  107.     HDRVCALL       hdConfCall,
  108.     HDRVCALL       hdConsultCall);
  109.  
  110. LONG TSPIAPI TSPI_lineAnswer(
  111.     DRV_REQUESTID  dwRequestID,
  112.     HDRVCALL       hdCall,
  113.     LPCSTR         lpsUserUserInfo,
  114.     DWORD          dwSize);
  115.  
  116. LONG TSPIAPI TSPI_lineBlindTransfer(
  117.     DRV_REQUESTID  dwRequestID,
  118.     HDRVCALL       hdCall,
  119.     LPCSTR         lpszDestAddress,
  120.     DWORD          dwCountryCode);
  121.  
  122. LONG TSPIAPI TSPI_lineClose(
  123.     HDRVLINE  hdLine);
  124.  
  125. LONG TSPIAPI TSPI_lineCloseCall(
  126.     HDRVCALL  hdCall);
  127.  
  128. LONG TSPIAPI TSPI_lineCompleteCall(
  129.     DRV_REQUESTID  dwRequestID,
  130.     HDRVCALL       hdCall,
  131.     LPDWORD        lpdwCompletionID,
  132.     DWORD          dwCompletionMode,
  133.     DWORD          dwMessageID);
  134.  
  135. LONG TSPIAPI TSPI_lineCompleteTransfer(
  136.     DRV_REQUESTID  dwRequestID,
  137.     HDRVCALL       hdCall,
  138.     HDRVCALL       hdConsultCall,
  139.     HTAPICALL      htConfCall,
  140.     LPHDRVCALL     lphdConfCall,
  141.     DWORD          dwTransferMode);
  142.  
  143. LONG TSPIAPI TSPI_lineConditionalMediaDetection(
  144.     HDRVLINE          hdLine,
  145.     DWORD             dwMediaModes,
  146.     LPLINECALLPARAMS  const lpCallParams);
  147.  
  148. LONG TSPIAPI TSPI_lineConfigDialog(
  149.     DWORD   dwDeviceID,
  150.     HWND    hwndOwner,
  151.     LPCSTR  lpszDeviceClass);
  152.  
  153. LONG TSPIAPI TSPI_lineConfigDialogEdit(
  154.     DWORD   dwDeviceID,
  155.     HWND    hwndOwner,
  156.     LPCSTR  lpszDeviceClass,
  157.     LPVOID  const lpDeviceConfigIn,
  158.     DWORD   dwSize,
  159.     LPVARSTRING lpDeviceConfigOut);
  160.  
  161. LONG TSPIAPI TSPI_lineDevSpecific(
  162.     DRV_REQUESTID  dwRequestID,
  163.     HDRVLINE       hdLine,
  164.     DWORD          dwAddressID,
  165.     HDRVCALL       hdCall,
  166.     LPVOID         lpParams,
  167.     DWORD          dwSize);
  168.  
  169. LONG TSPIAPI TSPI_lineDevSpecificFeature(
  170.     DRV_REQUESTID  dwRequestID,
  171.     HDRVLINE       hdLine,
  172.     DWORD          dwFeature,
  173.     LPVOID         lpParams,
  174.     DWORD          dwSize);
  175.  
  176. LONG TSPIAPI TSPI_lineDial(
  177.     DRV_REQUESTID  dwRequestID,
  178.     HDRVCALL       hdCall,
  179.     LPCSTR         lpszDestAddress,
  180.     DWORD          dwCountryCode);
  181.  
  182. LONG TSPIAPI TSPI_lineDrop(
  183.     DRV_REQUESTID  dwRequestID,
  184.     HDRVCALL       hdCall,
  185.     LPCSTR         lpsUserUserInfo,
  186.     DWORD          dwSize);
  187.  
  188. LONG TSPIAPI TSPI_lineDropOnClose(
  189.     HDRVCALL       hdCall);
  190.  
  191. LONG TSPIAPI TSPI_lineDropNoOwner(
  192.     HDRVCALL       hdCall);
  193.  
  194. LONG TSPIAPI TSPI_lineForward(
  195.     DRV_REQUESTID     dwRequestID,
  196.     HDRVLINE          hdLine,
  197.     DWORD             bAllAddresses,
  198.     DWORD             dwAddressID,
  199.     LPLINEFORWARDLIST const lpForwardList,
  200.     DWORD             dwNumRingsNoAnswer,
  201.     HTAPICALL         htConsultCall,
  202.     LPHDRVCALL        lphdConsultCall,
  203.     LPLINECALLPARAMS  const lpCallParams);
  204.  
  205. LONG TSPIAPI TSPI_lineGatherDigits(
  206.     HDRVCALL       hdCall,
  207.     DWORD          dwEndToEndID,
  208.     DWORD          dwDigitModes,
  209.     LPSTR          lpsDigits,
  210.     DWORD          dwNumDigits,
  211.     LPCSTR         lpszTerminationDigits,
  212.     DWORD          dwFirstDigitTimeout,
  213.     DWORD          dwInterDigitTimeout);
  214.  
  215. LONG TSPIAPI TSPI_lineGenerateDigits(
  216.     HDRVCALL       hdCall,
  217.     DWORD          dwEndToEndID,
  218.     DWORD          dwDigitMode,
  219.     LPCSTR         lpszDigits,
  220.     DWORD          dwDuration);
  221.  
  222. LONG TSPIAPI TSPI_lineGenerateTone(
  223.     HDRVCALL            hdCall,
  224.     DWORD               dwEndToEndID,
  225.     DWORD               dwToneMode,
  226.     DWORD               dwDuration,
  227.     DWORD               dwNumTones,
  228.     LPLINEGENERATETONE  const lpTones);
  229.  
  230. LONG TSPIAPI TSPI_lineGetAddressCaps(
  231.     DWORD              dwDeviceID,
  232.     DWORD              dwAddressID,
  233.     DWORD              dwTSPIVersion,
  234.     DWORD              dwExtVersion,
  235.     LPLINEADDRESSCAPS  lpAddressCaps);
  236.  
  237. LONG TSPIAPI TSPI_lineGetAddressID(
  238.     HDRVLINE       hdLine,
  239.     LPDWORD        lpdwAddressID,
  240.     DWORD          dwAddressMode,
  241.     LPCSTR         lpsAddress,
  242.     DWORD          dwSize);
  243.  
  244. LONG TSPIAPI TSPI_lineGetAddressStatus(
  245.     HDRVLINE             hdLine,
  246.     DWORD                dwAddressID,
  247.     LPLINEADDRESSSTATUS  lpAddressStatus);
  248.  
  249. LONG TSPIAPI TSPI_lineGetCallAddressID(
  250.     HDRVCALL  hdCall,
  251.     LPDWORD   lpdwAddressID);
  252.  
  253. LONG TSPIAPI TSPI_lineGetCallInfo(
  254.     HDRVCALL        hdCall,
  255.     LPLINECALLINFO  lpCallInfo);
  256.  
  257. LONG TSPIAPI TSPI_lineGetCallStatus(
  258.     HDRVCALL          hdCall,
  259.     LPLINECALLSTATUS  lpCallStatus);
  260.  
  261. LONG TSPIAPI TSPI_lineGetDevCaps(
  262.     DWORD          dwDeviceID,
  263.     DWORD          dwTSPIVersion,
  264.     DWORD          dwExtVersion,
  265.     LPLINEDEVCAPS  lpLineDevCaps);
  266.  
  267. LONG TSPIAPI TSPI_lineGetDevConfig(
  268.     DWORD dwDeviceID,
  269.     LPVARSTRING lpDeviceConfig,
  270.     LPCSTR lpszDeviceClass);
  271.  
  272. LONG TSPIAPI TSPI_lineGetExtensionID(
  273.     DWORD              dwDeviceID,
  274.     DWORD              dwTSPIVersion,
  275.     LPLINEEXTENSIONID  lpExtensionID);
  276.  
  277. LONG TSPIAPI TSPI_lineGetIcon(
  278.     DWORD    dwDeviceID,
  279.     LPCSTR   lpszDeviceClass,
  280.     LPHICON  lphIcon);
  281.  
  282. LONG TSPIAPI TSPI_lineGetID(
  283.     HDRVLINE       hdLine,
  284.     DWORD          dwAddressID,
  285.     HDRVCALL       hdCall,
  286.     DWORD          dwSelect,
  287.     LPVARSTRING    lpDeviceID,
  288.     LPCSTR         lpszDeviceClass);
  289.  
  290. LONG TSPIAPI TSPI_lineGetLineDevStatus(
  291.     HDRVLINE         hdLine,
  292.     LPLINEDEVSTATUS  lpLineDevStatus);
  293.  
  294. LONG TSPIAPI TSPI_lineGetNumAddressIDs(
  295.     HDRVLINE    hdLine,
  296.     LPDWORD     lpdwNumAddressIDs);
  297.  
  298. LONG TSPIAPI TSPI_lineHold(
  299.     DRV_REQUESTID  dwRequestID,
  300.     HDRVCALL       hdCall);
  301.  
  302. LONG TSPIAPI TSPI_lineMakeCall(
  303.     DRV_REQUESTID     dwRequestID,
  304.     HDRVLINE          hdLine,
  305.     HTAPICALL         htCall,
  306.     LPHDRVCALL        lphdCall,
  307.     LPCSTR            lpszDestAddress,
  308.     DWORD             dwCountryCode,
  309.     LPLINECALLPARAMS  const lpCallParams);
  310.  
  311. LONG TSPIAPI TSPI_lineMonitorDigits(
  312.     HDRVCALL       hdCall,
  313.     DWORD          dwDigitModes);
  314.  
  315. LONG TSPIAPI TSPI_lineMonitorMedia(
  316.     HDRVCALL       hdCall,
  317.     DWORD          dwMediaModes);
  318.  
  319. LONG TSPIAPI TSPI_lineMonitorTones(
  320.     HDRVCALL           hdCall,
  321.     DWORD              dwToneListID,
  322.     LPLINEMONITORTONE  const lpToneList,
  323.     DWORD              dwNumEntries);
  324.  
  325. LONG TSPIAPI TSPI_lineNegotiateExtVersion(
  326.     DWORD    dwDeviceID,
  327.     DWORD    dwTSPIVersion,
  328.     DWORD    dwLowVersion,
  329.     DWORD    dwHighVersion,
  330.     LPDWORD  lpdwExtVersion);
  331.  
  332. LONG TSPIAPI TSPI_lineNegotiateTSPIVersion(
  333.     DWORD    dwDeviceID,
  334.     DWORD    dwLowVersion,
  335.     DWORD    dwHighVersion,
  336.     LPDWORD  lpdwTSPIVersion);
  337.  
  338. LONG TSPIAPI TSPI_lineOpen(
  339.     DWORD       dwDeviceID,
  340.     HTAPILINE   htLine,
  341.     LPHDRVLINE  lphdLine,
  342.     DWORD       dwTSPIVersion,
  343.     LINEEVENT   lpfnEventProc);
  344.  
  345. LONG TSPIAPI TSPI_linePark(
  346.     DRV_REQUESTID  dwRequestID,
  347.     HDRVCALL       hdCall,
  348.     DWORD          dwParkMode,
  349.     LPCSTR         lpszDirAddress,
  350.     LPVARSTRING    lpNonDirAddress);
  351.  
  352. LONG TSPIAPI TSPI_linePickup(
  353.     DRV_REQUESTID  dwRequestID,
  354.     HDRVLINE       hdLine,
  355.     DWORD          dwAddressID,
  356.     HTAPICALL      htCall,
  357.     LPHDRVCALL     lphdCall,
  358.     LPCSTR         lpszDestAddress,
  359.     LPCSTR         lpszGroupID);
  360.  
  361. LONG TSPIAPI TSPI_linePrepareAddToConference(
  362.     DRV_REQUESTID     dwRequestID,
  363.     HDRVCALL          hdConfCall,
  364.     HTAPICALL         htConsultCall,
  365.     LPHDRVCALL        lphdConsultCall,
  366.     LPLINECALLPARAMS  const lpCallParams);
  367.  
  368. LONG TSPIAPI TSPI_lineRedirect(
  369.     DRV_REQUESTID  dwRequestID,
  370.     HDRVCALL       hdCall,
  371.     LPCSTR         lpszDestAddress,
  372.     DWORD          dwCountryCode);
  373.  
  374. LONG TSPIAPI TSPI_lineRemoveFromConference(
  375.     DRV_REQUESTID  dwRequestID,
  376.     HDRVCALL       hdCall);
  377.  
  378. LONG TSPIAPI TSPI_lineSecureCall(
  379.     DRV_REQUESTID  dwRequestID,
  380.     HDRVCALL       hdCall);
  381.  
  382. LONG TSPIAPI TSPI_lineSelectExtVersion(
  383.     HDRVLINE  hdLine,
  384.     DWORD     dwExtVersion);
  385.  
  386. LONG TSPIAPI TSPI_lineSendUserUserInfo(
  387.     DRV_REQUESTID  dwRequestID,
  388.     HDRVCALL       hdCall,
  389.     LPCSTR         lpsUserUserInfo,
  390.     DWORD          dwSize);
  391.  
  392. LONG TSPIAPI TSPI_lineSetAppSpecific(
  393.     HDRVCALL       hdCall,
  394.     DWORD          dwAppSpecific);
  395.  
  396. LONG TSPIAPI TSPI_lineSetCallParams(
  397.     DRV_REQUESTID     dwRequestID,
  398.     HDRVCALL          hdCall,
  399.     DWORD             dwBearerMode,
  400.     DWORD             dwMinRate,
  401.     DWORD             dwMaxRate,
  402.     LPLINEDIALPARAMS  const lpDialParams);
  403.  
  404. LONG TSPIAPI TSPI_lineSetCurrentLocation(
  405.     DWORD    dwLocation);
  406.  
  407. LONG TSPIAPI TSPI_lineSetDefaultMediaDetection(
  408.     HDRVLINE       hdLine,
  409.     DWORD          dwMediaModes);
  410.  
  411. LONG TSPIAPI TSPI_lineSetDevConfig(
  412.     DWORD                       dwDeviceID,
  413.     LPVOID                      const lpDeviceConfig,
  414.     DWORD                       dwSize,
  415.     LPCSTR                      lpszDeviceClass);
  416.  
  417. LONG TSPIAPI TSPI_lineSetMediaControl(
  418.     HDRVLINE                     hdLine,
  419.     DWORD                        dwAddressID,
  420.     HDRVCALL                     hdCall,
  421.     DWORD                        dwSelect,
  422.     LPLINEMEDIACONTROLDIGIT      const lpDigitList,
  423.     DWORD                        dwDigitNumEntries,
  424.     LPLINEMEDIACONTROLMEDIA      const lpMediaList,
  425.     DWORD                        dwMediaNumEntries,
  426.     LPLINEMEDIACONTROLTONE       const lpToneList,
  427.     DWORD                        dwToneNumEntries,
  428.     LPLINEMEDIACONTROLCALLSTATE  const lpCallStateList,
  429.     DWORD                        dwCallStateNumEntries);
  430.  
  431. LONG TSPIAPI TSPI_lineSetMediaMode(
  432.     HDRVCALL       hdCall,
  433.     DWORD          dwMediaMode);
  434.  
  435. LONG TSPIAPI TSPI_lineSetStatusMessages(
  436.     HDRVLINE       hdLine,
  437.     DWORD          dwLineStates,
  438.     DWORD          dwAddressStates);
  439.  
  440. LONG TSPIAPI TSPI_lineSetTerminal(
  441.     DRV_REQUESTID  dwRequestID,
  442.     HDRVLINE       hdLine,
  443.     DWORD          dwAddressID,
  444.     HDRVCALL       hdCall,
  445.     DWORD          dwSelect,
  446.     DWORD          dwTerminalModes,
  447.     DWORD          dwTerminalID,
  448.     DWORD           bEnable);
  449.  
  450. LONG TSPIAPI TSPI_lineSetupConference(
  451.     DRV_REQUESTID     dwRequestID,
  452.     HDRVCALL          hdCall,
  453.     HDRVLINE          hdLine,
  454.     HTAPICALL         htConfCall,
  455.     LPHDRVCALL        lphdConfCall,
  456.     HTAPICALL         htConsultCall,
  457.     LPHDRVCALL        lphdConsultCall,
  458.     DWORD             dwNumParties,
  459.     LPLINECALLPARAMS  const lpCallParams);
  460.  
  461. LONG TSPIAPI TSPI_lineSetupTransfer(
  462.     DRV_REQUESTID     dwRequestID,
  463.     HDRVCALL          hdCall,
  464.     HTAPICALL         htConsultCall,
  465.     LPHDRVCALL        lphdConsultCall,
  466.     LPLINECALLPARAMS  const lpCallParams);
  467.  
  468. LONG TSPIAPI TSPI_lineSwapHold(
  469.     DRV_REQUESTID  dwRequestID,
  470.     HDRVCALL       hdActiveCall,
  471.     HDRVCALL       hdHeldCall);
  472.  
  473. LONG TSPIAPI TSPI_lineUncompleteCall(
  474.     DRV_REQUESTID  dwRequestID,
  475.     HDRVLINE       hdLine,
  476.     DWORD          dwCompletionID);
  477.  
  478. LONG TSPIAPI TSPI_lineUnhold(
  479.     DRV_REQUESTID  dwRequestID,
  480.     HDRVCALL       hdCall);
  481.  
  482. LONG TSPIAPI TSPI_lineUnpark(
  483.     DRV_REQUESTID  dwRequestID,
  484.     HDRVLINE       hdLine,
  485.     DWORD          dwAddressID,
  486.     HTAPICALL      htCall,
  487.     LPHDRVCALL     lphdCall,
  488.     LPCSTR         lpszDestAddress);
  489.  
  490. LONG TSPIAPI TSPI_lineReleaseUserUserInfo(
  491.     DRV_REQUESTID  dwRequestID,
  492.     HDRVCALL       hdCall);
  493.     
  494.  
  495.  
  496. // TSPIAPI TSPI_phone functions
  497. // ----------------------------------------------------------------------------
  498.  
  499. LONG TSPIAPI TSPI_phoneClose(
  500.     HDRVPHONE  hdPhone);
  501.  
  502. LONG TSPIAPI TSPI_phoneConfigDialog(
  503.     DWORD   dwDeviceID,
  504.     HWND    hwndOwner,
  505.     LPCSTR  lpszDeviceClass);
  506.  
  507. LONG TSPIAPI TSPI_phoneDevSpecific(
  508.     DRV_REQUESTID  dwRequestID,
  509.     HDRVPHONE      hdPhone,
  510.     LPVOID         lpParams,
  511.     DWORD          dwSize);
  512.  
  513. LONG TSPIAPI TSPI_phoneGetButtonInfo(
  514.     HDRVPHONE          hdPhone,
  515.     DWORD              dwButtonLampID,
  516.     LPPHONEBUTTONINFO  lpButtonInfo);
  517.  
  518. LONG TSPIAPI TSPI_phoneGetData(
  519.     HDRVPHONE      hdPhone,
  520.     DWORD          dwDataID,
  521.     LPVOID         lpData,
  522.     DWORD          dwSize);
  523.  
  524. LONG TSPIAPI TSPI_phoneGetDevCaps(
  525.     DWORD          dwDeviceID,
  526.     DWORD          dwTSPIVersion,
  527.     DWORD          dwExtVersion,
  528.     LPPHONECAPS    lpPhoneCaps);
  529.  
  530. LONG TSPIAPI TSPI_phoneGetDisplay(
  531.     HDRVPHONE      hdPhone,
  532.     LPVARSTRING    lpDisplay);
  533.  
  534. LONG TSPIAPI TSPI_phoneGetExtensionID(
  535.     DWORD               dwDeviceID,
  536.     DWORD               dwTSPIVersion,
  537.     LPPHONEEXTENSIONID  lpExtensionID);
  538.  
  539. LONG TSPIAPI TSPI_phoneGetGain(
  540.     HDRVPHONE      hdPhone,
  541.     DWORD          dwHookSwitchDev,
  542.     LPDWORD        lpdwGain);
  543.  
  544. LONG TSPIAPI TSPI_phoneGetHookSwitch(
  545.     HDRVPHONE      hdPhone,
  546.     LPDWORD        lpdwHookSwitchDevs);
  547.  
  548. LONG TSPIAPI TSPI_phoneGetIcon(
  549.     DWORD    dwDeviceID,
  550.     LPCSTR   lpszDeviceClass,
  551.     LPHICON  lphIcon);
  552.  
  553. LONG TSPIAPI TSPI_phoneGetID(
  554.     HDRVPHONE      hdPhone,
  555.     LPVARSTRING    lpDeviceID,
  556.     LPCSTR         lpszDeviceClass);
  557.  
  558. LONG TSPIAPI TSPI_phoneGetLamp(
  559.     HDRVPHONE      hdPhone,
  560.     DWORD          dwButtonLampID,
  561.     LPDWORD        lpdwLampMode);
  562.  
  563. LONG TSPIAPI TSPI_phoneGetRing(
  564.     HDRVPHONE      hdPhone,
  565.     LPDWORD        lpdwRingMode,
  566.     LPDWORD        lpdwVolume);
  567.  
  568. LONG TSPIAPI TSPI_phoneGetStatus(
  569.     HDRVPHONE      hdPhone,
  570.     LPPHONESTATUS  lpPhoneStatus);
  571.  
  572. LONG TSPIAPI TSPI_phoneGetVolume(
  573.     HDRVPHONE      hdPhone,
  574.     DWORD          dwHookSwitchDev,
  575.     LPDWORD        lpdwVolume);
  576.  
  577. LONG TSPIAPI TSPI_phoneNegotiateExtVersion(
  578.     DWORD    dwDeviceID,
  579.     DWORD    dwTSPIVersion,
  580.     DWORD    dwLowVersion,
  581.     DWORD    dwHighVersion,
  582.     LPDWORD  lpdwExtVersion);
  583.  
  584. LONG TSPIAPI TSPI_phoneNegotiateTSPIVersion(
  585.     DWORD    dwDeviceID,
  586.     DWORD    dwLowVersion,
  587.     DWORD    dwHighVersion,
  588.     LPDWORD  lpdwTSPIVersion);
  589.  
  590. LONG TSPIAPI TSPI_phoneOpen(
  591.     DWORD        dwDeviceID,
  592.     HTAPIPHONE   htPhone,
  593.     LPHDRVPHONE  lphdPhone,
  594.     DWORD        dwTSPIVersion,
  595.     PHONEEVENT   lpfnEventProc);
  596.  
  597. LONG TSPIAPI TSPI_phoneSelectExtVersion(
  598.     HDRVPHONE  hdPhone,
  599.     DWORD      dwExtVersion);
  600.  
  601. LONG TSPIAPI TSPI_phoneSetButtonInfo(
  602.     DRV_REQUESTID            dwRequestID,
  603.     HDRVPHONE                hdPhone,
  604.     DWORD                    dwButtonLampID,
  605.     LPPHONEBUTTONINFO  const lpButtonInfo);
  606.  
  607. LONG TSPIAPI TSPI_phoneSetData(
  608.     DRV_REQUESTID  dwRequestID,
  609.     HDRVPHONE      hdPhone,
  610.     DWORD          dwDataID,
  611.     LPVOID         const lpData,
  612.     DWORD          dwSize);
  613.  
  614. LONG TSPIAPI TSPI_phoneSetDisplay(
  615.     DRV_REQUESTID  dwRequestID,
  616.     HDRVPHONE      hdPhone,
  617.     DWORD          dwRow,
  618.     DWORD          dwColumn,
  619.     LPCSTR         lpsDisplay,
  620.     DWORD          dwSize);
  621.  
  622. LONG TSPIAPI TSPI_phoneSetGain(
  623.     DRV_REQUESTID  dwRequestID,
  624.     HDRVPHONE      hdPhone,
  625.     DWORD          dwHookSwitchDev,
  626.     DWORD          dwGain);
  627.  
  628. LONG TSPIAPI TSPI_phoneSetHookSwitch(
  629.     DRV_REQUESTID  dwRequestID,
  630.     HDRVPHONE      hdPhone,
  631.     DWORD          dwHookSwitchDevs,
  632.     DWORD          dwHookSwitchMode);
  633.  
  634. LONG TSPIAPI TSPI_phoneSetLamp(
  635.     DRV_REQUESTID  dwRequestID,
  636.     HDRVPHONE      hdPhone,
  637.     DWORD          dwButtonLampID,
  638.     DWORD          dwLampMode);
  639.  
  640. LONG TSPIAPI TSPI_phoneSetRing(
  641.     DRV_REQUESTID  dwRequestID,
  642.     HDRVPHONE      hdPhone,
  643.     DWORD          dwRingMode,
  644.     DWORD          dwVolume);
  645.  
  646. LONG TSPIAPI TSPI_phoneSetStatusMessages(
  647.     HDRVPHONE      hdPhone,
  648.     DWORD          dwPhoneStates,
  649.     DWORD          dwButtonModes,
  650.     DWORD          dwButtonStates);
  651.  
  652. LONG TSPIAPI TSPI_phoneSetVolume(
  653.     DRV_REQUESTID  dwRequestID,
  654.     HDRVPHONE      hdPhone,
  655.     DWORD          dwHookSwitchDev,
  656.     DWORD          dwVolume);
  657.  
  658.  
  659.  
  660. // TSPIAPI TSPI_provider functions
  661. // ----------------------------------------------------------------------------
  662.  
  663. LONG TSPIAPI TSPI_providerConfig(
  664.     HWND   hwndOwner,
  665.     DWORD  dwPermanentProviderID);
  666.  
  667. LONG TSPIAPI TSPI_providerInit(
  668.     DWORD             dwTSPIVersion,
  669.     DWORD             dwPermanentProviderID,
  670.     DWORD             dwLineDeviceIDBase,
  671.     DWORD             dwPhoneDeviceIDBase,
  672.     DWORD             dwNumLines,
  673.     DWORD             dwNumPhones,
  674.     ASYNC_COMPLETION  lpfnCompletionProc);
  675.  
  676. LONG TSPIAPI TSPI_providerInstall(
  677.     HWND   hwndOwner,
  678.     DWORD  dwPermanentProviderID);
  679.  
  680. LONG TSPIAPI TSPI_providerRemove(
  681.     HWND   hwndOwner,
  682.     DWORD  dwPermanentProviderID);
  683.  
  684. LONG TSPIAPI TSPI_providerShutdown(
  685.     DWORD    dwTSPIVersion);
  686.  
  687. LONG TSPIAPI TSPI_providerEnumDevices(
  688.     DWORD    dwPermanentProviderID,
  689.     LPDWORD  lpdwNumLines,
  690.     LPDWORD  lpdwNumPhones,
  691.     HPROVIDER   hProvider,
  692.     LINEEVENT   lpfnLineCreateProc,
  693.     PHONEEVENT  lpfnPhoneCreateProc);
  694.  
  695. LONG TSPIAPI TSPI_providerCreateLineDevice(
  696.     DWORD    dwTempID,
  697.     DWORD    dwDeviceID);
  698.  
  699. LONG TSPIAPI TSPI_providerCreatePhoneDevice(
  700.     DWORD    dwTempID,
  701.     DWORD    dwDeviceID);
  702.  
  703.  
  704. // The following macros are the ordinal numbers of the exported tspi functions
  705.  
  706. #define TSPI_PROC_BASE            500
  707.  
  708. #define TSPI_LINEACCEPT                    (TSPI_PROC_BASE + 0)
  709. #define TSPI_LINEADDTOCONFERENCE           (TSPI_PROC_BASE + 1)
  710. #define TSPI_LINEANSWER                    (TSPI_PROC_BASE + 2)
  711. #define TSPI_LINEBLINDTRANSFER             (TSPI_PROC_BASE + 3)
  712. #define TSPI_LINECLOSE                     (TSPI_PROC_BASE + 4)
  713. #define TSPI_LINECLOSECALL                 (TSPI_PROC_BASE + 5)
  714. #define TSPI_LINECOMPLETECALL              (TSPI_PROC_BASE + 6)
  715. #define TSPI_LINECOMPLETETRANSFER          (TSPI_PROC_BASE + 7)
  716. #define TSPI_LINECONDITIONALMEDIADETECTION (TSPI_PROC_BASE + 8)
  717. #define TSPI_LINECONFIGDIALOG              (TSPI_PROC_BASE + 9)
  718. #define TSPI_LINEDEVSPECIFIC               (TSPI_PROC_BASE + 10)
  719. #define TSPI_LINEDEVSPECIFICFEATURE        (TSPI_PROC_BASE + 11)
  720. #define TSPI_LINEDIAL                      (TSPI_PROC_BASE + 12)
  721. #define TSPI_LINEDROP                      (TSPI_PROC_BASE + 13)
  722. #define TSPI_LINEFORWARD                   (TSPI_PROC_BASE + 14)
  723. #define TSPI_LINEGATHERDIGITS              (TSPI_PROC_BASE + 15)
  724. #define TSPI_LINEGENERATEDIGITS            (TSPI_PROC_BASE + 16)
  725. #define TSPI_LINEGENERATETONE              (TSPI_PROC_BASE + 17)
  726. #define TSPI_LINEGETADDRESSCAPS            (TSPI_PROC_BASE + 18)
  727. #define TSPI_LINEGETADDRESSID              (TSPI_PROC_BASE + 19)
  728. #define TSPI_LINEGETADDRESSSTATUS          (TSPI_PROC_BASE + 20)
  729. #define TSPI_LINEGETCALLADDRESSID          (TSPI_PROC_BASE + 21)
  730. #define TSPI_LINEGETCALLINFO               (TSPI_PROC_BASE + 22)
  731. #define TSPI_LINEGETCALLSTATUS             (TSPI_PROC_BASE + 23)
  732. #define TSPI_LINEGETDEVCAPS                (TSPI_PROC_BASE + 24)
  733. #define TSPI_LINEGETDEVCONFIG              (TSPI_PROC_BASE + 25)
  734. #define TSPI_LINEGETEXTENSIONID            (TSPI_PROC_BASE + 26)
  735. #define TSPI_LINEGETICON                   (TSPI_PROC_BASE + 27)
  736. #define TSPI_LINEGETID                     (TSPI_PROC_BASE + 28)
  737. #define TSPI_LINEGETLINEDEVSTATUS          (TSPI_PROC_BASE + 29)
  738. #define TSPI_LINEGETNUMADDRESSIDS          (TSPI_PROC_BASE + 30)
  739. #define TSPI_LINEHOLD                      (TSPI_PROC_BASE + 31)
  740. #define TSPI_LINEMAKECALL                  (TSPI_PROC_BASE + 32)
  741. #define TSPI_LINEMONITORDIGITS             (TSPI_PROC_BASE + 33)
  742. #define TSPI_LINEMONITORMEDIA              (TSPI_PROC_BASE + 34)
  743. #define TSPI_LINEMONITORTONES              (TSPI_PROC_BASE + 35)
  744. #define TSPI_LINENEGOTIATEEXTVERSION       (TSPI_PROC_BASE + 36)
  745. #define TSPI_LINENEGOTIATETSPIVERSION      (TSPI_PROC_BASE + 37)
  746. #define TSPI_LINEOPEN                      (TSPI_PROC_BASE + 38)
  747. #define TSPI_LINEPARK                      (TSPI_PROC_BASE + 39)
  748. #define TSPI_LINEPICKUP                    (TSPI_PROC_BASE + 40)
  749. #define TSPI_LINEPREPAREADDTOCONFERENCE    (TSPI_PROC_BASE + 41)
  750. #define TSPI_LINEREDIRECT                  (TSPI_PROC_BASE + 42)
  751. #define TSPI_LINEREMOVEFROMCONFERENCE      (TSPI_PROC_BASE + 43)
  752. #define TSPI_LINESECURECALL                (TSPI_PROC_BASE + 44)
  753. #define TSPI_LINESELECTEXTVERSION          (TSPI_PROC_BASE + 45)
  754. #define TSPI_LINESENDUSERUSERINFO          (TSPI_PROC_BASE + 46)
  755. #define TSPI_LINESETAPPSPECIFIC            (TSPI_PROC_BASE + 47)
  756. #define TSPI_LINESETCALLPARAMS             (TSPI_PROC_BASE + 48)
  757. #define TSPI_LINESETDEFAULTMEDIADETECTION  (TSPI_PROC_BASE + 49)
  758. #define TSPI_LINESETDEVCONFIG              (TSPI_PROC_BASE + 50)
  759. #define TSPI_LINESETMEDIACONTROL           (TSPI_PROC_BASE + 51)
  760. #define TSPI_LINESETMEDIAMODE              (TSPI_PROC_BASE + 52)
  761. #define TSPI_LINESETSTATUSMESSAGES         (TSPI_PROC_BASE + 53)
  762. #define TSPI_LINESETTERMINAL               (TSPI_PROC_BASE + 54)
  763. #define TSPI_LINESETUPCONFERENCE           (TSPI_PROC_BASE + 55)
  764. #define TSPI_LINESETUPTRANSFER             (TSPI_PROC_BASE + 56)
  765. #define TSPI_LINESWAPHOLD                  (TSPI_PROC_BASE + 57)
  766. #define TSPI_LINEUNCOMPLETECALL            (TSPI_PROC_BASE + 58)
  767. #define TSPI_LINEUNHOLD                    (TSPI_PROC_BASE + 59)
  768. #define TSPI_LINEUNPARK                    (TSPI_PROC_BASE + 60)
  769. #define TSPI_PHONECLOSE                    (TSPI_PROC_BASE + 61)
  770. #define TSPI_PHONECONFIGDIALOG             (TSPI_PROC_BASE + 62)
  771. #define TSPI_PHONEDEVSPECIFIC              (TSPI_PROC_BASE + 63)
  772. #define TSPI_PHONEGETBUTTONINFO            (TSPI_PROC_BASE + 64)
  773. #define TSPI_PHONEGETDATA                  (TSPI_PROC_BASE + 65)
  774. #define TSPI_PHONEGETDEVCAPS               (TSPI_PROC_BASE + 66)
  775. #define TSPI_PHONEGETDISPLAY               (TSPI_PROC_BASE + 67)
  776. #define TSPI_PHONEGETEXTENSIONID           (TSPI_PROC_BASE + 68)
  777. #define TSPI_PHONEGETGAIN                  (TSPI_PROC_BASE + 69)
  778. #define TSPI_PHONEGETHOOKSWITCH            (TSPI_PROC_BASE + 70)
  779. #define TSPI_PHONEGETICON                  (TSPI_PROC_BASE + 71)
  780. #define TSPI_PHONEGETID                    (TSPI_PROC_BASE + 72)
  781. #define TSPI_PHONEGETLAMP                  (TSPI_PROC_BASE + 73)
  782. #define TSPI_PHONEGETRING                  (TSPI_PROC_BASE + 74)
  783. #define TSPI_PHONEGETSTATUS                (TSPI_PROC_BASE + 75)
  784. #define TSPI_PHONEGETVOLUME                (TSPI_PROC_BASE + 76)
  785. #define TSPI_PHONENEGOTIATEEXTVERSION      (TSPI_PROC_BASE + 77)
  786. #define TSPI_PHONENEGOTIATETSPIVERSION     (TSPI_PROC_BASE + 78)
  787. #define TSPI_PHONEOPEN                     (TSPI_PROC_BASE + 79)
  788. #define TSPI_PHONESELECTEXTVERSION         (TSPI_PROC_BASE + 80)
  789. #define TSPI_PHONESETBUTTONINFO            (TSPI_PROC_BASE + 81)
  790. #define TSPI_PHONESETDATA                  (TSPI_PROC_BASE + 82)
  791. #define TSPI_PHONESETDISPLAY               (TSPI_PROC_BASE + 83)
  792. #define TSPI_PHONESETGAIN                  (TSPI_PROC_BASE + 84)
  793. #define TSPI_PHONESETHOOKSWITCH            (TSPI_PROC_BASE + 85)
  794. #define TSPI_PHONESETLAMP                  (TSPI_PROC_BASE + 86)
  795. #define TSPI_PHONESETRING                  (TSPI_PROC_BASE + 87)
  796. #define TSPI_PHONESETSTATUSMESSAGES        (TSPI_PROC_BASE + 88)
  797. #define TSPI_PHONESETVOLUME                (TSPI_PROC_BASE + 89)
  798. #define TSPI_PROVIDERCONFIG                (TSPI_PROC_BASE + 90)
  799. #define TSPI_PROVIDERINIT                  (TSPI_PROC_BASE + 91)
  800. #define TSPI_PROVIDERINSTALL               (TSPI_PROC_BASE + 92)
  801. #define TSPI_PROVIDERREMOVE                (TSPI_PROC_BASE + 93)
  802. #define TSPI_PROVIDERSHUTDOWN              (TSPI_PROC_BASE + 94)
  803. #define TSPI_PROVIDERENUMDEVICES           (TSPI_PROC_BASE + 95)
  804. #define TSPI_LINEDROPONCLOSE               (TSPI_PROC_BASE + 96)
  805. #define TSPI_LINEDROPNOOWNER               (TSPI_PROC_BASE + 97)
  806. #define TSPI_PROVIDERCREATELINEDEVICE      (TSPI_PROC_BASE + 98)
  807. #define TSPI_PROVIDERCREATEPHONEDEVICE     (TSPI_PROC_BASE + 99)
  808. #define TSPI_LINESETCURRENTLOCATION        (TSPI_PROC_BASE + 100)
  809. #define TSPI_LINECONFIGDIALOGEDIT          (TSPI_PROC_BASE + 101)
  810. #define TSPI_LINERELEASEUSERUSERINFO       (TSPI_PROC_BASE + 102)
  811.  
  812.  
  813. #ifdef __cplusplus
  814. }                       /* End of extern "C" { */
  815. #endif  /* __cplusplus */
  816.  
  817. #ifdef __BORLANDC__
  818.   #include <poppack.h>
  819. #endif
  820.  
  821. #endif  // TSPI_H
  822.