TLTapi.pas
Upload User: adalike
Upload Date: 2013-06-24
Package Size: 1381k
Code Size: 144k
Development Platform:

Delphi

  1.       dwPhoneFeatures,                                // TAPI v2.0
  2.       dwSettableHandsetHookSwitchModes,               // TAPI v2.0
  3.       dwSettableSpeakerHookSwitchModes,               // TAPI v2.0
  4.       dwSettableHeadsetHookSwitchModes,               // TAPI v2.0
  5.       dwMonitoredHandsetHookSwitchModes,              // TAPI v2.0
  6.       dwMonitoredSpeakerHookSwitchModes,              // TAPI v2.0
  7.       dwMonitoredHeadsetHookSwitchModes : DWORD;      // TAPI v2.0
  8. {$ENDIF}
  9.     end;
  10.   LPPHONEEXTENSIONID = ^TPHONEEXTENSIONID;
  11.   PPHONEEXTENSIONID = ^TPHONEEXTENSIONID;
  12.   TPHONEEXTENSIONID =
  13.     record
  14.       dwExtensionID0,
  15.       dwExtensionID1,
  16.       dwExtensionID2,
  17.       dwExtensionID3 : DWORD;
  18.     end;
  19. {$IFDEF Tapi_Ver20}
  20.   LPPHONEINITIALIZEEXPARAMS = ^TPHONEINITIALIZEEXPARAMS;
  21.   PPHONEINITIALIZEEXPARAMS = ^TPHONEINITIALIZEEXPARAMS;
  22.   TPHONEINITIALIZEEXPARAMS =
  23.     record
  24.       dwTotalSize,                                    // TAPI v2.0
  25.       dwNeededSize,                                   // TAPI v2.0
  26.       dwUsedSize,                                     // TAPI v2.0
  27.       dwOptions : DWORD;                              // TAPI v2.0
  28.       Handles : THandleUnion; //!! Union converted to THandleUnion
  29.       dwCompletionKey : DWORD;                        // TAPI v2.0
  30.     end;
  31.   LPPHONEMESSAGE = ^TPHONEMESSAGE;
  32.   PPHONEMESSAGE = ^TPHONEMESSAGE;
  33.   TPHONEMESSAGE =
  34.     record
  35.       hDevice,                                        // TAPI v2.0
  36.       dwMessageID,                                    // TAPI v2.0
  37.       dwCallbackInstance,                             // TAPI v2.0
  38.       dwParam1,                                       // TAPI v2.0
  39.       dwParam2,                                       // TAPI v2.0
  40.       dwParam3 : DWORD;                               // TAPI v2.0
  41.     end;
  42. {$ENDIF}
  43.   LPPHONESTATUS = ^TPHONESTATUS;
  44.   PPHONESTATUS = ^TPHONESTATUS;
  45.   TPHONESTATUS =
  46.     record
  47.       dwTotalSize,
  48.       dwNeededSize,
  49.       dwUsedSize,
  50.       dwStatusFlags,
  51.       dwNumOwners,
  52.       dwNumMonitors,
  53.       dwRingMode,
  54.       dwRingVolume,
  55.       dwHandsetHookSwitchMode,
  56.       dwHandsetVolume,
  57.       dwHandsetGain,
  58.       dwSpeakerHookSwitchMode,
  59.       dwSpeakerVolume,
  60.       dwSpeakerGain,
  61.       dwHeadsetHookSwitchMode,
  62.       dwHeadsetVolume,
  63.       dwHeadsetGain,
  64.       dwDisplaySize,
  65.       dwDisplayOffset,
  66.       dwLampModesSize,
  67.       dwLampModesOffset,
  68.       dwOwnerNameSize,
  69.       dwOwnerNameOffset,
  70.       dwDevSpecificSize,
  71.       dwDevSpecificOffset : DWORD;
  72. {$IFDEF Tapi_Ver20}
  73.       dwPhoneFeatures : DWORD;                        // TAPI v2.0
  74. {$ENDIF}
  75.     end;
  76.   LPVARSTRING = ^TVARSTRING;
  77.   PVARSTRING = ^TVARSTRING;
  78.   TVARSTRING =
  79.     record
  80.       dwTotalSize,
  81.       dwNeededSize,
  82.       dwUsedSize,
  83.       dwStringFormat,
  84.       dwStringSize,
  85.       dwStringOffset : DWORD;
  86.     end;
  87. function lineAccept(
  88.     hCall : HCALL;
  89.     lpsUserUserInfo : LPCSTR;
  90.     dwSize : DWORD) : LONG; stdcall;
  91. function lineAddProvider(                                                // TAPI v1.4
  92.     lpszProviderFilename : LPCSTR;
  93.     hwndOwner : HWND;
  94.     lpdwPermanentProviderID : LPDWORD) : LONG; stdcall;
  95. {$IFDEF Win32}
  96. function lineAddProviderA(                                               // TAPI v1.4
  97.     lpszProviderFilename : LPCSTR;
  98.     hwndOwner : HWND;
  99.     lpdwPermanentProviderID : LPDWORD) : LONG; stdcall;
  100. function lineAddProviderW(
  101.     lpszProviderFilename : LPCWSTR;
  102.     hwndOwner : HWND;
  103.     lpdwPermanentProviderID : LPDWORD) : LONG; stdcall;
  104. {$ENDIF}
  105. function lineAddToConference(
  106.     hConfCall : HCALL;
  107.     hConsultCall : HCALL) : LONG; stdcall;
  108. {$IFDEF Tapi_Ver20}
  109. function lineAgentSpecific(                                              // TAPI v2.0
  110.     hLine : HLINE;
  111.     dwAddressID : DWORD;
  112.     dwAgentExtensionIDIndex : DWORD;
  113.     lpParams : LPVOID;
  114.     dwSize : DWORD) : LONG; stdcall;
  115. {$ENDIF}
  116. function lineAnswer(
  117.     hCall : HCALL;
  118.     lpsUserUserInfo : LPCSTR;
  119.     dwSize : DWORD) : LONG; stdcall;
  120. function lineBlindTransfer(
  121.     hCall : HCALL;
  122.     lpszDestAddress : LPCSTR;
  123.     dwCountryCode : DWORD) : LONG; stdcall;
  124. {$IFDEF Win32}
  125. function lineBlindTransferA(
  126.     hCall : HCALL;
  127.     lpszDestAddress : LPCSTR;
  128.     dwCountryCode : DWORD) : LONG; stdcall;
  129. function lineBlindTransferW(
  130.     hCall : HCALL;
  131.     lpszDestAddressW : LPCWSTR;
  132.     dwCountryCode : DWORD) : LONG; stdcall;
  133. {$ENDIF}
  134. function lineClose(
  135.     hLine : HLINE) : LONG; stdcall;
  136. function lineCompleteCall(
  137.     hCall : HCALL;
  138.     lpdwCompletionID : LPDWORD;
  139.     dwCompletionMode : DWORD;
  140.     dwMessageID : DWORD) : LONG; stdcall;
  141. function lineCompleteTransfer(
  142.     hCall : HCALL;
  143.     hConsultCall : HCALL;
  144.     lphConfCall : LPHCALL;
  145.     dwTransferMode : DWORD) : LONG; stdcall;
  146. function lineConfigDialog(
  147.     dwDeviceID : DWORD;
  148.     hwndOwner : HWND;
  149.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  150. {$IFDEF Win32}
  151. function lineConfigDialogA(
  152.     dwDeviceID : DWORD;
  153.     hwndOwner : HWND;
  154.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  155. function lineConfigDialogW(
  156.     dwDeviceID : DWORD;
  157.     hwndOwner : HWND;
  158.     lpszDeviceClass : LPCWSTR) : LONG; stdcall;
  159. {$ENDIF}
  160. function lineConfigDialogEdit(                                           // TAPI v1.4
  161.     dwDeviceID : DWORD;
  162.     hwndOwner : HWND;
  163.     lpszDeviceClass : LPCSTR;
  164.     const lpDeviceConfigIn : LPVOID;
  165.     dwSize : DWORD;
  166.     lpDeviceConfigOut : LPVARSTRING) : LONG; stdcall;
  167. {$IFDEF Win32}
  168. function lineConfigDialogEditA(                                          // TAPI v1.4
  169.     dwDeviceID : DWORD;
  170.     hwndOwner : HWND;
  171.     lpszDeviceClass : LPCSTR;
  172.     const lpDeviceConfigIn : LPVOID;
  173.     dwSize : DWORD;
  174.     lpDeviceConfigOut : LPVARSTRING) : LONG; stdcall;
  175. function lineConfigDialogEditW(
  176.     dwDeviceID : DWORD;
  177.     hwndOwner : HWND;
  178.     lpszDeviceClass : LPCWSTR;
  179.     const lpDeviceConfigIn : LPVOID;
  180.     dwSize : DWORD;
  181.     lpDeviceConfigOut : LPVARSTRING) : LONG; stdcall;
  182. {$ENDIF}
  183. function lineConfigProvider(                                             // TAPI v1.4
  184.     hwndOwner : HWND;
  185.     dwPermanentProviderID : DWORD) : LONG; stdcall;
  186. function lineDeallocateCall(
  187.     hCall : HCALL) : LONG; stdcall;
  188. function lineDevSpecific(
  189.     hLine : HLINE;
  190.     dwAddressID : DWORD;
  191.     hCall : HCALL;
  192.     lpParams : LPVOID;
  193.     dwSize : DWORD) : LONG; stdcall;
  194. function lineDevSpecificFeature(
  195.     hLine : HLINE;
  196.     dwFeature : DWORD;
  197.     lpParams : LPVOID;
  198.     dwSize : DWORD) : LONG; stdcall;
  199. function lineDial(
  200.     hCall : HCALL;
  201.     lpszDestAddress : LPCSTR;
  202.     dwCountryCode : DWORD) : LONG; stdcall;
  203. {$IFDEF Win32}
  204. function lineDialA(
  205.     hCall : HCALL;
  206.     lpszDestAddress : LPCSTR;
  207.     dwCountryCode : DWORD) : LONG; stdcall;
  208. function lineDialW(
  209.     hCall : HCALL;
  210.     lpszDestAddress : LPCWSTR;
  211.     dwCountryCode : DWORD) : LONG; stdcall;
  212. {$ENDIF}
  213. function lineDrop(
  214.     hCall : HCALL;
  215.     lpsUserUserInfo : LPCSTR;
  216.     dwSize : DWORD) : LONG; stdcall;
  217. function lineForward(
  218.     hLine : HLINE;
  219.     bAllAddresses : DWORD;
  220.     dwAddressID : DWORD;
  221.     const lpForwardList : LPLINEFORWARDLIST;
  222.     dwNumRingsNoAnswer : DWORD;
  223.     lphConsultCall : LPHCALL;
  224.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  225. {$IFDEF Win32}
  226. function lineForwardA(
  227.     hLine : HLINE;
  228.     bAllAddresses : DWORD;
  229.     dwAddressID : DWORD;
  230.     const lpForwardList : LPLINEFORWARDLIST;
  231.     dwNumRingsNoAnswer : DWORD;
  232.     lphConsultCall : LPHCALL;
  233.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  234. function lineForwardW(
  235.     hLine : HLINE;
  236.     bAllAddresses : DWORD;
  237.     dwAddressID : DWORD;
  238.     const lpForwardList : LPLINEFORWARDLIST;
  239.     dwNumRingsNoAnswer : DWORD;
  240.     lphConsultCall : LPHCALL;
  241.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  242. {$ENDIF}
  243. function lineGatherDigits(
  244.     hCall : HCALL;
  245.     dwDigitModes : DWORD;
  246.     lpsDigits : LPSTR;
  247.     dwNumDigits : DWORD;
  248.     lpszTerminationDigits : LPCSTR;
  249.     dwFirstDigitTimeout : DWORD;
  250.     dwInterDigitTimeout : DWORD) : LONG; stdcall;
  251. {$IFDEF Win32}
  252. function lineGatherDigitsA(
  253.     hCall : HCALL;
  254.     dwDigitModes : DWORD;
  255.     lpsDigits : LPSTR;
  256.     dwNumDigits : DWORD;
  257.     lpszTerminationDigits : LPCSTR;
  258.     dwFirstDigitTimeout : DWORD;
  259.     dwInterDigitTimeout : DWORD) : LONG; stdcall;
  260. function lineGatherDigitsW(
  261.     hCall : HCALL;
  262.     dwDigitModes : DWORD;
  263.     lpsDigits : LPWSTR;
  264.     dwNumDigits : DWORD;
  265.     lpszTerminationDigits : LPCWSTR;
  266.     dwFirstDigitTimeout : DWORD;
  267.     dwInterDigitTimeout : DWORD) : LONG; stdcall;
  268. {$ENDIF}
  269. function lineGenerateDigits(
  270.     hCall : HCALL;
  271.     dwDigitMode : DWORD;
  272.     lpszDigits : LPCSTR;
  273.     dwDuration : DWORD) : LONG; stdcall;
  274. {$IFDEF Win32}
  275. function lineGenerateDigitsA(
  276.     hCall : HCALL;
  277.     dwDigitMode : DWORD;
  278.     lpszDigits : LPCSTR;
  279.     dwDuration : DWORD) : LONG; stdcall;
  280. function lineGenerateDigitsW(
  281.     hCall : HCALL;
  282.     dwDigitMode : DWORD;
  283.     lpszDigits : LPCWSTR;
  284.     dwDuration : DWORD) : LONG; stdcall;
  285. {$ENDIF}
  286. function lineGenerateTone(
  287.     hCall : HCALL;
  288.     dwToneMode : DWORD;
  289.     dwDuration : DWORD;
  290.     dwNumTones : DWORD;
  291.     const lpTones : LPLINEGENERATETONE) : LONG; stdcall;
  292. function lineGetAddressCaps(
  293.     hLineApp : HLINEAPP;
  294.     dwDeviceID : DWORD;
  295.     dwAddressID : DWORD;
  296.     dwAPIVersion : DWORD;
  297.     dwExtVersion : DWORD;
  298.     lpAddressCaps : LPLINEADDRESSCAPS) : LONG; stdcall;
  299. {$IFDEF Win32}
  300. function lineGetAddressCapsA(
  301.     hLineApp : HLINEAPP;
  302.     dwDeviceID : DWORD;
  303.     dwAddressID : DWORD;
  304.     dwAPIVersion : DWORD;
  305.     dwExtVersion : DWORD;
  306.     lpAddressCaps : LPLINEADDRESSCAPS) : LONG; stdcall;
  307. function lineGetAddressCapsW(
  308.     hLineApp : HLINEAPP;
  309.     dwDeviceID : DWORD;
  310.     dwAddressID : DWORD;
  311.     dwAPIVersion : DWORD;
  312.     dwExtVersion : DWORD;
  313.     lpAddressCaps : LPLINEADDRESSCAPS) : LONG; stdcall;
  314. {$ENDIF}
  315. function lineGetAddressID(
  316.     hLine : HLINE;
  317.     lpdwAddressID : LPDWORD;
  318.     dwAddressMode : DWORD;
  319.     lpsAddress : LPCSTR;
  320.     dwSize : DWORD) : LONG; stdcall;
  321. {$IFDEF Win32}
  322. function lineGetAddressIDA(
  323.     hLine : HLINE;
  324.     lpdwAddressID : LPDWORD;
  325.     dwAddressMode : DWORD;
  326.     lpsAddress : LPCSTR;
  327.     dwSize : DWORD) : LONG; stdcall;
  328. function lineGetAddressIDW(
  329.     hLine : HLINE;
  330.     lpdwAddressID : LPDWORD;
  331.     dwAddressMode : DWORD;
  332.     lpsAddress : LPCWSTR;
  333.     dwSize : DWORD) : LONG; stdcall;
  334. {$ENDIF}
  335. function lineGetAddressStatus(
  336.     hLine : HLINE;
  337.     dwAddressID : DWORD;
  338.     lpAddressStatus : LPLINEADDRESSSTATUS) : LONG; stdcall;
  339. {$IFDEF Win32}
  340. function lineGetAddressStatusA(
  341.     hLine : HLINE;
  342.     dwAddressID : DWORD;
  343.     lpAddressStatus : LPLINEADDRESSSTATUS) : LONG; stdcall;
  344. function lineGetAddressStatusW(
  345.     hLine : HLINE;
  346.     dwAddressID : DWORD;
  347.     lpAddressStatus : LPLINEADDRESSSTATUS) : LONG; stdcall;
  348. {$ENDIF}
  349. {$IFDEF Tapi_Ver20}
  350. {$IFDEF Win32}
  351. function lineGetAgentActivityListA(                                       // TAPI v2.0
  352.     hLine : HLINE;
  353.     dwAddressID : DWORD;
  354.     lpAgentActivityList : LPLINEAGENTACTIVITYLIST) : LONG; stdcall;
  355. {$ENDIF}
  356. function lineGetAgentActivityList(                                       // TAPI v2.0
  357.     hLine : HLINE;
  358.     dwAddressID : DWORD;
  359.     lpAgentActivityList : LPLINEAGENTACTIVITYLIST) : LONG; stdcall;
  360. {$IFDEF Win32}
  361. function lineGetAgentActivityListW(                                       // TAPI v2.0
  362.     hLine : HLINE;
  363.     dwAddressID : DWORD;
  364.     lpAgentActivityList : LPLINEAGENTACTIVITYLIST) : LONG; stdcall;
  365. function lineGetAgentCapsA(                                               // TAPI v2.0
  366.     hLineApp : HLINEAPP;
  367.     dwDeviceID : DWORD;
  368.     dwAddressID : DWORD;
  369.     dwAppAPIVersion : DWORD;
  370.     lpAgentCaps : LPLINEAGENTCAPS) : LONG; stdcall;
  371. {$ENDIF}
  372. function lineGetAgentCaps(                                               // TAPI v2.0
  373.     hLineApp : HLINEAPP;
  374.     dwDeviceID : DWORD;
  375.     dwAddressID : DWORD;
  376.     dwAppAPIVersion : DWORD;
  377.     lpAgentCaps : LPLINEAGENTCAPS) : LONG; stdcall;
  378. {$IFDEF Win32}
  379. function lineGetAgentCapsW(                                               // TAPI v2.0
  380.     hLineApp : HLINEAPP;
  381.     dwDeviceID : DWORD;
  382.     dwAddressID : DWORD;
  383.     dwAppAPIVersion : DWORD;
  384.     lpAgentCaps : LPLINEAGENTCAPS) : LONG; stdcall;
  385. function lineGetAgentGroupListA(                                          // TAPI v2.0
  386.     hLine : HLINE;
  387.     dwAddressID : DWORD;
  388.     lpAgentGroupList : LPLINEAGENTGROUPLIST) : LONG; stdcall;
  389. {$ENDIF}
  390. function lineGetAgentGroupList(                                          // TAPI v2.0
  391.     hLine : HLINE;
  392.     dwAddressID : DWORD;
  393.     lpAgentGroupList : LPLINEAGENTGROUPLIST) : LONG; stdcall;
  394. {$IFDEF Win32}
  395. function lineGetAgentGroupListW(                                          // TAPI v2.0
  396.     hLine : HLINE;
  397.     dwAddressID : DWORD;
  398.     lpAgentGroupList : LPLINEAGENTGROUPLIST) : LONG; stdcall;
  399. function lineGetAgentStatusA(                                             // TAPI v2.0
  400.     hLine : HLINE;
  401.     dwAddressID : DWORD;
  402.     lpAgentStatus : LPLINEAGENTSTATUS) : LONG; stdcall;
  403. {$ENDIF}
  404. function lineGetAgentStatus(                                             // TAPI v2.0
  405.     hLine : HLINE;
  406.     dwAddressID : DWORD;
  407.     lpAgentStatus : LPLINEAGENTSTATUS) : LONG; stdcall;
  408. {$IFDEF Win32}
  409. function lineGetAgentStatusW(                                             // TAPI v2.0
  410.     hLine : HLINE;
  411.     dwAddressID : DWORD;
  412.     lpAgentStatus : LPLINEAGENTSTATUS) : LONG; stdcall;
  413. {$ENDIF}
  414. {$ENDIF}
  415. function lineGetAppPriority(                                             // TAPI v1.4 :
  416.     lpszAppFilename : LPCSTR;
  417.     dwMediaMode : DWORD;
  418.     lpExtensionID : LPLINEEXTENSIONID;
  419.     dwRequestMode : DWORD;
  420.     lpExtensionName : LPVARSTRING;
  421.     lpdwPriority : LPDWORD) : LONG; stdcall;
  422. {$IFDEF Win32}
  423. function lineGetAppPriorityA(                                            // TAPI v1.4
  424.     lpszAppFilename : LPCSTR;
  425.     dwMediaMode : DWORD;
  426.     lpExtensionID : LPLINEEXTENSIONID;
  427.     dwRequestMode : DWORD;
  428.     lpExtensionName : LPVARSTRING;
  429.     lpdwPriority : LPDWORD) : LONG; stdcall;
  430. function lineGetAppPriorityW(                                             // TAPI v1.4
  431.     lpszAppFilename : LPCWSTR;
  432.     dwMediaMode : DWORD;
  433.     lpExtensionID : LPLINEEXTENSIONID;
  434.     dwRequestMode : DWORD;
  435.     lpExtensionName : LPVARSTRING;
  436.     lpdwPriority : LPDWORD) : LONG; stdcall;
  437. {$ENDIF}
  438. function lineGetCallInfo(
  439.     hCall : HCALL;
  440.     lpCallInfo : LPLINECALLINFO) : LONG; stdcall;
  441. {$IFDEF Win32}
  442. function lineGetCallInfoA(
  443.     hCall : HCALL;
  444.     lpCallInfo : LPLINECALLINFO) : LONG; stdcall;
  445. function lineGetCallInfoW(
  446.     hCall : HCALL;
  447.     lpCallInfo : LPLINECALLINFO) : LONG; stdcall;
  448. {$ENDIF}
  449. function lineGetCallStatus(
  450.     hCall : HCALL;
  451.     lpCallStatus : LPLINECALLSTATUS) : LONG; stdcall;
  452. function lineGetConfRelatedCalls(
  453.     hCall : HCALL;
  454.     lpCallList : LPLINECALLLIST) : LONG; stdcall;
  455. function lineGetCountry(                                                 // TAPI v1.4
  456.     dwCountryID : DWORD;
  457.     dwAPIVersion : DWORD;
  458.     lpLineCountryList : LPLINECOUNTRYLIST) : LONG; stdcall;
  459. {$IFDEF Win32}
  460. function lineGetCountryA(                                                 // TAPI v1.4
  461.     dwCountryID : DWORD;
  462.     dwAPIVersion : DWORD;
  463.     lpLineCountryList : LPLINECOUNTRYLIST) : LONG; stdcall;
  464. function lineGetCountryW(                                                // TAPI v1.4
  465.     dwCountryID : DWORD;
  466.     dwAPIVersion : DWORD;
  467.     lpLineCountryList : LPLINECOUNTRYLIST) : LONG; stdcall;
  468. {$ENDIF}
  469. function lineGetDevCaps(
  470.     hLineApp : HLINEAPP;
  471.     dwDeviceID : DWORD;
  472.     dwAPIVersion : DWORD;
  473.     dwExtVersion : DWORD;
  474.     lpLineDevCaps : LPLINEDEVCAPS) : LONG; stdcall;
  475. {$IFDEF Win32}
  476. function lineGetDevCapsA(
  477.     hLineApp : HLINEAPP;
  478.     dwDeviceID : DWORD;
  479.     dwAPIVersion : DWORD;
  480.     dwExtVersion : DWORD;
  481.     lpLineDevCaps : LPLINEDEVCAPS) : LONG; stdcall;
  482. function lineGetDevCapsW(
  483.     hLineApp : HLINEAPP;
  484.     dwDeviceID : DWORD;
  485.     dwAPIVersion : DWORD;
  486.     dwExtVersion : DWORD;
  487.     lpLineDevCaps : LPLINEDEVCAPS) : LONG; stdcall;
  488. {$ENDIF}
  489. function lineGetDevConfig(
  490.     dwDeviceID : DWORD;
  491.     lpDeviceConfig : LPVARSTRING;
  492.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  493. {$IFDEF Win32}
  494. function lineGetDevConfigA(
  495.     dwDeviceID : DWORD;
  496.     lpDeviceConfig : LPVARSTRING;
  497.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  498. function lineGetDevConfigW(
  499.     dwDeviceID : DWORD;
  500.     lpDeviceConfig : LPVARSTRING;
  501.     lpszDeviceClass : LPCWSTR) : LONG; stdcall;
  502. {$ENDIF}
  503. function lineGetNewCalls(
  504.     hLine : HLINE;
  505.     dwAddressID : DWORD;
  506.     dwSelect : DWORD;
  507.     lpCallList : LPLINECALLLIST) : LONG; stdcall;
  508. function lineGetIcon(
  509.     dwDeviceID : DWORD;
  510.     lpszDeviceClass : LPCSTR;
  511.     var hIcon : HICON) : LONG; stdcall;
  512. {$IFDEF Win32}
  513. function lineGetIconA(
  514.     dwDeviceID : DWORD;
  515.     lpszDeviceClass : LPCSTR;
  516.     var hIcon : HICON) : LONG; stdcall;
  517. function lineGetIconW(
  518.     dwDeviceID : DWORD;
  519.     lpszDeviceClass : LPCWSTR;
  520.     var hIcon : HICON) : LONG; stdcall;
  521. {$ENDIF}
  522. function lineGetID(
  523.     hLine : HLINE;
  524.     dwAddressID : DWORD;
  525.     hCall : HCALL;
  526.     dwSelect : DWORD;
  527.     lpDeviceID : LPVARSTRING;
  528.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  529. {$IFDEF Win32}
  530. function lineGetIDA(
  531.     hLine : HLINE;
  532.     dwAddressID : DWORD;
  533.     hCall : HCALL;
  534.     dwSelect : DWORD;
  535.     lpDeviceID : LPVARSTRING;
  536.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  537. function lineGetIDW(
  538.     hLine : HLINE;
  539.     dwAddressID : DWORD;
  540.     hCall : HCALL;
  541.     dwSelect : DWORD;
  542.     lpDeviceID : LPVARSTRING;
  543.     lpszDeviceClass : LPCWSTR) : LONG; stdcall;
  544. {$ENDIF}
  545. function lineGetLineDevStatus(
  546.     hLine : HLINE;
  547.     lpLineDevStatus : LPLINEDEVSTATUS) : LONG; stdcall;
  548. {$IFDEF Win32}
  549. function lineGetLineDevStatusA(
  550.     hLine : HLINE;
  551.     lpLineDevStatus : LPLINEDEVSTATUS) : LONG; stdcall;
  552. function lineGetLineDevStatusW(
  553.     hLine : HLINE;
  554.     lpLineDevStatus : LPLINEDEVSTATUS) : LONG; stdcall;
  555. {$ENDIF}
  556. {$IFDEF Tapi_Ver20}
  557. function lineGetMessage(                                                 // TAPI v2.0
  558.     hLineApp : HLINEAPP;
  559.     lpMessage : LPLINEMESSAGE;
  560.     dwTimeout : DWORD) : LONG; stdcall;
  561. {$ENDIF}
  562. function lineGetNumRings(
  563.     hLine : HLINE;
  564.     dwAddressID : DWORD;
  565.     var lpdwNumRings : DWORD) : LONG; stdcall;
  566. function lineGetProviderList(                                            // TAPI v1.4
  567.     dwAPIVersion : DWORD;
  568.     lpProviderList : LPLINEPROVIDERLIST) : LONG; stdcall;
  569. {$IFDEF Win32}
  570. function lineGetProviderListA(
  571.     dwAPIVersion : DWORD;
  572.     lpProviderList : LPLINEPROVIDERLIST) : LONG; stdcall;
  573. function lineGetProviderListW(
  574.     dwAPIVersion : DWORD;
  575.     lpProviderList : LPLINEPROVIDERLIST) : LONG; stdcall;
  576. {$ENDIF}
  577. function lineGetRequest(
  578.     hLineApp : HLINEAPP;
  579.     dwRequestMode : DWORD;
  580.     lpRequestBuffer : LPVOID) : LONG; stdcall;
  581. {$IFDEF Win32}
  582. function lineGetRequestA(
  583.     hLineApp : HLINEAPP;
  584.     dwRequestMode : DWORD;
  585.     lpRequestBuffer : LPVOID) : LONG; stdcall;
  586. function lineGetRequestW(
  587.     hLineApp : HLINEAPP;
  588.     dwRequestMode : DWORD;
  589.     lpRequestBuffer : LPVOID) : LONG; stdcall;
  590. {$ENDIF}
  591. function lineGetStatusMessages(
  592.     hLine : HLINE;
  593.     lpdwLineStates : LPDWORD;
  594.     lpdwAddressStates : LPDWORD) : LONG; stdcall;
  595. function lineGetTranslateCaps(
  596.     hLineApp : HLINEAPP;
  597.     dwAPIVersion : DWORD;
  598.     lpTranslateCaps : LPLINETRANSLATECAPS) : LONG; stdcall;
  599. {$IFDEF Win32}
  600. function lineGetTranslateCapsA(
  601.     hLineApp : HLINEAPP;
  602.     dwAPIVersion : DWORD;
  603.     lpTranslateCaps : LPLINETRANSLATECAPS) : LONG; stdcall;
  604. function lineGetTranslateCapsW(
  605.     hLineApp : HLINEAPP;
  606.     dwAPIVersion : DWORD;
  607.     lpTranslateCaps : LPLINETRANSLATECAPS) : LONG; stdcall;
  608. {$ENDIF}
  609. function lineHandoff(
  610.     hCall : HCALL;
  611.     lpszFileName : LPCSTR;
  612.     dwMediaMode : DWORD) : LONG; stdcall;
  613. {$IFDEF Win32}
  614. function lineHandoffA(
  615.     hCall : HCALL;
  616.     lpszFileName : LPCSTR;
  617.     dwMediaMode : DWORD) : LONG; stdcall;
  618. function lineHandoffW(
  619.     hCall : HCALL;
  620.     lpszFileName : LPCWSTR;
  621.     dwMediaMode : DWORD) : LONG; stdcall;
  622. {$ENDIF}
  623. function lineHold(
  624.     hCall : HCALL) : LONG; stdcall;
  625. function lineInitialize(
  626.     lphLineApp : LPHLINEAPP;
  627.     hInstance : HINSTANCE;
  628.     lpfnCallback : TLINECALLBACK;
  629.     lpszAppName : LPCSTR;
  630.     lpdwNumDevs : LPDWORD) : LONG; stdcall;
  631. {$IFDEF Tapi_Ver20}
  632. {$IFDEF Win32}
  633. function lineInitializeExA(                                               // TAPI v2.0
  634.     lphLineApp : LPHLINEAPP;
  635.     hInstance : HINSTANCE;
  636.     lpfnCallback : TLINECALLBACK;
  637.     lpszFriendlyAppName : LPCSTR;
  638.     lpdwNumDevs : LPDWORD;
  639.     lpdwAPIVersion : LPDWORD;
  640.     lpLineInitializeExParams : LPLINEINITIALIZEEXPARAMS) : LONG; stdcall;
  641. {$ENDIF}
  642. function lineInitializeEx(                                               // TAPI v2.0
  643.     lphLineApp : LPHLINEAPP;
  644.     hInstance : HINSTANCE;
  645.     lpfnCallback : TLINECALLBACK;
  646.     lpszFriendlyAppName : LPCSTR;
  647.     lpdwNumDevs : LPDWORD;
  648.     lpdwAPIVersion : LPDWORD;
  649.     lpLineInitializeExParams : LPLINEINITIALIZEEXPARAMS) : LONG; stdcall;
  650. {$IFDEF Win32}
  651. function lineInitializeExW(                                               // TAPI v2.0
  652.     lphLineApp : LPHLINEAPP;
  653.     hInstance : HINSTANCE;
  654.     lpfnCallback : TLINECALLBACK;
  655.     lpszFriendlyAppName : LPCWSTR;
  656.     lpdwNumDevs : LPDWORD;
  657.     lpdwAPIVersion : LPDWORD;
  658.     lpLineInitializeExParams : LPLINEINITIALIZEEXPARAMS) : LONG; stdcall;
  659. {$ENDIF}
  660. {$ENDIF}
  661. function lineMakeCall(
  662.     hLine : HLINE;
  663.     lphCall : LPHCALL;
  664.     lpszDestAddress : LPCSTR;
  665.     dwCountryCode : DWORD;
  666.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  667. {$IFDEF Win32}
  668. function lineMakeCallA(
  669.     hLine : HLINE;
  670.     lphCall : LPHCALL;
  671.     lpszDestAddress : LPCSTR;
  672.     dwCountryCode : DWORD;
  673.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  674. function lineMakeCallW(
  675.     hLine : HLINE;
  676.     lphCall : LPHCALL;
  677.     lpszDestAddress : LPCWSTR;
  678.     dwCountryCode : DWORD;
  679.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  680. {$ENDIF}
  681. function lineMonitorDigits(
  682.     hCall : HCALL;
  683.     dwDigitModes : DWORD) : LONG; stdcall;
  684. function lineMonitorMedia(
  685.     hCall : HCALL;
  686.     dwMediaModes : DWORD) : LONG; stdcall;
  687. function lineMonitorTones(
  688.     hCall : HCALL;
  689.     const lpToneList : LPLINEMONITORTONE;
  690.     dwNumEntries : DWORD) : LONG; stdcall;
  691. function lineNegotiateAPIVersion(
  692.     hLineApp : HLINEAPP;
  693.     dwDeviceID : DWORD;
  694.     dwAPILowVersion : DWORD;
  695.     dwAPIHighVersion : DWORD;
  696.     lpdwAPIVersion : LPDWORD;
  697.     lpExtensionID : LPLINEEXTENSIONID) : LONG; stdcall;
  698. function lineNegotiateExtVersion(
  699.     hLineApp : HLINEAPP;
  700.     dwDeviceID : DWORD;
  701.     dwAPIVersion : DWORD;
  702.     dwExtLowVersion : DWORD;
  703.     dwExtHighVersion : DWORD;
  704.     lpdwExtVersion : LPDWORD) : LONG; stdcall;
  705. function lineOpen(
  706.     hLineApp : HLINEAPP;
  707.     dwDeviceID : DWORD;
  708.     lphLine : LPHLINE;
  709.     dwAPIVersion : DWORD;
  710.     dwExtVersion : DWORD;
  711.     dwCallbackInstance : DWORD;
  712.     dwPrivileges : DWORD;
  713.     dwMediaModes : DWORD;
  714.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  715. {$IFDEF Win32}
  716. function lineOpenA(
  717.     hLineApp : HLINEAPP;
  718.     dwDeviceID : DWORD;
  719.     lphLine : LPHLINE;
  720.     dwAPIVersion : DWORD;
  721.     dwExtVersion : DWORD;
  722.     dwCallbackInstance : DWORD;
  723.     dwPrivileges : DWORD;
  724.     dwMediaModes : DWORD;
  725.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  726. function lineOpenW(
  727.     hLineApp : HLINEAPP;
  728.     dwDeviceID : DWORD;
  729.     lphLine : LPHLINE;
  730.     dwAPIVersion : DWORD;
  731.     dwExtVersion : DWORD;
  732.     dwCallbackInstance : DWORD;
  733.     dwPrivileges : DWORD;
  734.     dwMediaModes : DWORD;
  735.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  736. {$ENDIF}
  737. function linePark(
  738.     hCall : HCALL;
  739.     dwParkMode : DWORD;
  740.     lpszDirAddress : LPCSTR;
  741.     lpNonDirAddress : LPVARSTRING) : LONG; stdcall;
  742. {$IFDEF Win32}
  743. function lineParkA(
  744.     hCall : HCALL;
  745.     dwParkMode : DWORD;
  746.     lpszDirAddress : LPCSTR;
  747.     lpNonDirAddress : LPVARSTRING) : LONG; stdcall;
  748. function lineParkW(
  749.     hCall : HCALL;
  750.     dwParkMode : DWORD;
  751.     lpszDirAddress : LPCWSTR;
  752.     lpNonDirAddress : LPVARSTRING) : LONG; stdcall;
  753. {$ENDIF}
  754. function linePickup(
  755.     hLine : HLINE;
  756.     dwAddressID : DWORD;
  757.     lphCall : LPHCALL;
  758.     lpszDestAddress : LPCSTR;
  759.     lpszGroupID : LPCSTR) : LONG; stdcall;
  760. {$IFDEF Win32}
  761. function linePickupA(
  762.     hLine : HLINE;
  763.     dwAddressID : DWORD;
  764.     lphCall : LPHCALL;
  765.     lpszDestAddress : LPCSTR;
  766.     lpszGroupID : LPCSTR) : LONG; stdcall;
  767. function linePickupW(
  768.     hLine : HLINE;
  769.     dwAddressID : DWORD;
  770.     lphCall : LPHCALL;
  771.     lpszDestAddress : LPCWSTR;
  772.     lpszGroupID : LPCWSTR) : LONG; stdcall;
  773. {$ENDIF}
  774. function linePrepareAddToConference(
  775.     hConfCall : HCALL;
  776.     lphConsultCall : LPHCALL;
  777.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  778. {$IFDEF Win32}
  779. function linePrepareAddToConferenceA(
  780.     hConfCall : HCALL;
  781.     lphConsultCall : LPHCALL;
  782.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  783. function linePrepareAddToConferenceW(
  784.     hConfCall : HCALL;
  785.     lphConsultCall : LPHCALL;
  786.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  787. {$ENDIF}
  788. {$IFDEF Tapi_Ver20}
  789. function lineProxyMessage(                                               // TAPI v2.0
  790.     hLine : HLINE;
  791.     hCall : HCALL;
  792.     dwMsg : DWORD;
  793.     dwParam1 : DWORD;
  794.     dwParam2 : DWORD;
  795.     dwParam3 : DWORD) : LONG; stdcall;
  796. function lineProxyResponse(                                              // TAPI v2.0
  797.     hLine : HLINE;
  798.     lpProxyRequest : LPLINEPROXYREQUEST;
  799.     dwResult : DWORD) : LONG; stdcall;
  800. {$ENDIF}
  801. function lineRedirect(
  802.     hCall : HCALL;
  803.     lpszDestAddress : LPCSTR;
  804.     dwCountryCode : DWORD) : LONG; stdcall;
  805. {$IFDEF Win32}
  806. function lineRedirectA(
  807.     hCall : HCALL;
  808.     lpszDestAddress : LPCSTR;
  809.     dwCountryCode : DWORD) : LONG; stdcall;
  810. function lineRedirectW(
  811.     hCall : HCALL;
  812.     lpszDestAddress : LPCWSTR;
  813.     dwCountryCode : DWORD) : LONG; stdcall;
  814. {$ENDIF}
  815. function lineRegisterRequestRecipient(
  816.     hLineApp : HLINEAPP;
  817.     dwRegistrationInstance : DWORD;
  818.     dwRequestMode : DWORD;
  819.     bEnable : DWORD) : LONG; stdcall;
  820. function lineReleaseUserUserInfo(                                        // TAPI v1.4
  821.     hCall : HCALL) : LONG; stdcall;
  822. function lineRemoveFromConference(
  823.     hCall : HCALL) : LONG; stdcall;
  824. function lineRemoveProvider(                                             // TAPI v1.4
  825.     dwPermanentProviderID : DWORD;
  826.     hwndOwner : HWND) : LONG; stdcall;
  827. function lineSecureCall(
  828.     hCall : HCALL) : LONG; stdcall;
  829. function lineSendUserUserInfo(
  830.     hCall : HCALL;
  831.     lpsUserUserInfo : LPCSTR;
  832.     dwSize : DWORD) : LONG; stdcall;
  833. {$IFDEF Tapi_Ver20}
  834. function lineSetAgentActivity(                                           // TAPI v2.0
  835.     hLine : HLINE;
  836.     dwAddressID : DWORD;
  837.     dwActivityID : DWORD) : LONG; stdcall;
  838. function lineSetAgentGroup(                                              // TAPI v2.0
  839.     hLine : HLINE;
  840.     dwAddressID : DWORD;
  841.     lpAgentGroupList : LPLINEAGENTGROUPLIST) : LONG; stdcall;
  842. function lineSetAgentState(                                              // TAPI v2.0
  843.     hLine : HLINE;
  844.     dwAddressID : DWORD;
  845.     dwAgentState : DWORD;
  846.     dwNextAgentState : DWORD) : LONG; stdcall;
  847. {$ENDIF}
  848. function lineSetAppPriority(                                             // TAPI v1.4
  849.     lpszAppFilename : LPCSTR;
  850.     dwMediaMode : DWORD;
  851.     lpExtensionID : LPLINEEXTENSIONID;
  852.     dwRequestMode : DWORD;
  853.     lpszExtensionName : LPCSTR;
  854.     dwPriority : DWORD) : LONG; stdcall;
  855. {$IFDEF Win32}
  856. function lineSetAppPriorityA(                                             // TAPI v1.4
  857.     lpszAppFilename : LPCSTR;
  858.     dwMediaMode : DWORD;
  859.     lpExtensionID : LPLINEEXTENSIONID;
  860.     dwRequestMode : DWORD;
  861.     lpszExtensionName : LPCSTR;
  862.     dwPriority : DWORD) : LONG; stdcall;
  863. function lineSetAppPriorityW(                                             // TAPI v1.4
  864.     lpszAppFilename : LPCWSTR;
  865.     dwMediaMode : DWORD;
  866.     lpExtensionID : LPLINEEXTENSIONID;
  867.     dwRequestMode : DWORD;
  868.     lpszExtensionName : LPCWSTR;
  869.     dwPriority : DWORD) : LONG; stdcall;
  870. {$ENDIF}
  871. function lineSetAppSpecific(
  872.     hCall : HCALL;
  873.     dwAppSpecific : DWORD) : LONG; stdcall;
  874. {$IFDEF Tapi_Ver20}
  875. function lineSetCallData(                                                // TAPI v2.0
  876.     hCall : HCALL;
  877.     lpCallData : LPVOID;
  878.     dwSize : DWORD) : LONG; stdcall;
  879. {$ENDIF}
  880. function lineSetCallParams(
  881.     hCall : HCALL;
  882.     dwBearerMode : DWORD;
  883.     dwMinRate : DWORD;
  884.     dwMaxRate : DWORD;
  885.     const lpDialParams : LPLINEDIALPARAMS) : LONG; stdcall;
  886. function lineSetCallPrivilege(
  887.     hCall : HCALL;
  888.     dwCallPrivilege : DWORD) : LONG; stdcall;
  889. {$IFDEF Tapi_Ver20}
  890. function lineSetCallQualityOfService(                                    // TAPI v2.0
  891.     hCall : HCALL;
  892.     lpSendingFlowspec : LPVOID;
  893.     dwSendingFlowspecSize : DWORD;
  894.     lpReceivingFlowspec : LPVOID;
  895.     dwReceivingFlowspecSize : DWORD) : LONG; stdcall;
  896. function lineSetCallTreatment(                                           // TAPI v2.0
  897.     hCall : HCALL;
  898.     dwTreatment : DWORD) : LONG; stdcall;
  899. {$ENDIF}
  900. function lineSetCurrentLocation(
  901.     hLineApp : HLINEAPP;
  902.     dwLocation : DWORD) : LONG; stdcall;
  903. function lineSetDevConfig(
  904.     dwDeviceID : DWORD;
  905.     const lpDeviceConfig : LPVOID;
  906.     dwSize : DWORD;
  907.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  908. {$IFDEF Win32}
  909. function lineSetDevConfigA(
  910.     dwDeviceID : DWORD;
  911.     const lpDeviceConfig : LPVOID;
  912.     dwSize : DWORD;
  913.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  914. function lineSetDevConfigW(
  915.     dwDeviceID : DWORD;
  916.     const lpDeviceConfig : LPVOID;
  917.     dwSize : DWORD;
  918.     lpszDeviceClass : LPCWSTR) : LONG; stdcall;
  919. {$ENDIF}
  920. {$IFDEF Tapi_Ver20}
  921. function lineSetLineDevStatus(                                           // TAPI v2.0
  922.     hLine : HLINE;
  923.     dwStatusToChange : DWORD;
  924.     fStatus : DWORD) : LONG; stdcall;
  925. {$ENDIF}
  926. function lineSetMediaControl(
  927.     hLine : HLINE;
  928.     dwAddressID : DWORD;
  929.     hCall : HCALL;
  930.     dwSelect : DWORD;
  931.     const lpDigitList : LPLINEMEDIACONTROLDIGIT;
  932.     dwDigitNumEntries : DWORD;
  933.     const lpMediaList : LPLINEMEDIACONTROLMEDIA;
  934.     dwMediaNumEntries : DWORD;
  935.     const lpToneList : LPLINEMEDIACONTROLTONE;
  936.     dwToneNumEntries : DWORD;
  937.     const lpCallStateList : LPLINEMEDIACONTROLCALLSTATE;
  938.     dwCallStateNumEntries : DWORD) : LONG; stdcall;
  939. function lineSetMediaMode(
  940.     hCall : HCALL;
  941.     dwMediaModes : DWORD) : LONG; stdcall;
  942. function lineSetNumRings(
  943.     hLine : HLINE;
  944.     dwAddressID : DWORD;
  945.     dwNumRings : DWORD) : LONG; stdcall;
  946. function lineSetStatusMessages(
  947.     hLine : HLINE;
  948.     dwLineStates : DWORD;
  949.     dwAddressStates : DWORD) : LONG; stdcall;
  950. function lineSetTerminal(
  951.     hLine : HLINE;
  952.     dwAddressID : DWORD;
  953.     hCall : HCALL;
  954.     dwSelect : DWORD;
  955.     dwTerminalModes : DWORD;
  956.     dwTerminalID : DWORD;
  957.     bEnable : DWORD) : LONG; stdcall;
  958. function lineSetTollList(
  959.     hLineApp : HLINEAPP;
  960.     dwDeviceID : DWORD;
  961.     lpszAddressIn : LPCSTR;
  962.     dwTollListOption : DWORD) : LONG; stdcall;
  963. {$IFDEF Win32}
  964. function lineSetTollListA(
  965.     hLineApp : HLINEAPP;
  966.     dwDeviceID : DWORD;
  967.     lpszAddressIn : LPCSTR;
  968.     dwTollListOption : DWORD) : LONG; stdcall;
  969. function lineSetTollListW(
  970.     hLineApp : HLINEAPP;
  971.     dwDeviceID : DWORD;
  972.     lpszAddressInW : LPCWSTR;
  973.     dwTollListOption : DWORD) : LONG; stdcall;
  974. {$ENDIF}
  975. function lineSetupConference(
  976.     hCall : HCALL;
  977.     hLine : HLINE;
  978.     lphConfCall : LPHCALL;
  979.     lphConsultCall : LPHCALL;
  980.     dwNumParties : DWORD;
  981.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  982. {$IFDEF Win32}
  983. function lineSetupConferenceA(
  984.     hCall : HCALL;
  985.     hLine : HLINE;
  986.     lphConfCall : LPHCALL;
  987.     lphConsultCall : LPHCALL;
  988.     dwNumParties : DWORD;
  989.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  990. function lineSetupConferenceW(
  991.     hCall : HCALL;
  992.     hLine : HLINE;
  993.     lphConfCall : LPHCALL;
  994.     lphConsultCall : LPHCALL;
  995.     dwNumParties : DWORD;
  996.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  997. {$ENDIF}
  998. function lineSetupTransfer(
  999.     hCall : HCALL;
  1000.     lphConsultCall : LPHCALL;
  1001.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  1002. {$IFDEF Win32}
  1003. function lineSetupTransferA(
  1004.     hCall : HCALL;
  1005.     lphConsultCall : LPHCALL;
  1006.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  1007. function lineSetupTransferW(
  1008.     hCall : HCALL;
  1009.     lphConsultCall : LPHCALL;
  1010.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  1011. {$ENDIF}
  1012. function lineShutdown(
  1013.     hLineApp : HLINEAPP) : LONG; stdcall;
  1014. function lineSwapHold(
  1015.     hActiveCall : HCALL;
  1016.     hHeldCall : HCALL) : LONG; stdcall;
  1017. function lineTranslateAddress(
  1018.     hLineApp : HLINEAPP;
  1019.     dwDeviceID : DWORD;
  1020.     dwAPIVersion : DWORD;
  1021.     lpszAddressIn : LPCSTR;
  1022.     dwCard : DWORD;
  1023.     dwTranslateOptions : DWORD;
  1024.     lpTranslateOutput : LPLINETRANSLATEOUTPUT) : LONG; stdcall;
  1025. {$IFDEF Win32}
  1026. function lineTranslateAddressA(
  1027.     hLineApp : HLINEAPP;
  1028.     dwDeviceID : DWORD;
  1029.     dwAPIVersion : DWORD;
  1030.     lpszAddressIn : LPCSTR;
  1031.     dwCard : DWORD;
  1032.     dwTranslateOptions : DWORD;
  1033.     lpTranslateOutput : LPLINETRANSLATEOUTPUT) : LONG; stdcall;
  1034. function lineTranslateAddressW(
  1035.     hLineApp : HLINEAPP;
  1036.     dwDeviceID : DWORD;
  1037.     dwAPIVersion : DWORD;
  1038.     lpszAddressIn : LPCWSTR;
  1039.     dwCard : DWORD;
  1040.     dwTranslateOptions : DWORD;
  1041.     lpTranslateOutput : LPLINETRANSLATEOUTPUT) : LONG; stdcall;
  1042. {$ENDIF}
  1043. function lineTranslateDialog(                                            // TAPI v1.4
  1044.     hLineApp : HLINEAPP;
  1045.     dwDeviceID : DWORD;
  1046.     dwAPIVersion : DWORD;
  1047.     hwndOwner : HWND;
  1048.     lpszAddressIn : LPCSTR) : LONG; stdcall;
  1049. {$IFDEF Win32}
  1050. function lineTranslateDialogA(                                            // TAPI v1.4
  1051.     hLineApp : HLINEAPP;
  1052.     dwDeviceID : DWORD;
  1053.     dwAPIVersion : DWORD;
  1054.     hwndOwner : HWND;
  1055.     lpszAddressIn : LPCSTR) : LONG; stdcall;
  1056. function lineTranslateDialogW(
  1057.     hLineApp : HLINEAPP;
  1058.     dwDeviceID : DWORD;
  1059.     dwAPIVersion : DWORD;
  1060.     hwndOwner : HWND;
  1061.     lpszAddressIn : LPCWSTR) : LONG; stdcall;
  1062. {$ENDIF}
  1063. function lineUncompleteCall(
  1064.     hLine : HLINE;
  1065.     dwCompletionID : DWORD) : LONG; stdcall;
  1066. function lineUnhold(
  1067.     hCall : HCALL) : LONG; stdcall;
  1068. function lineUnpark(
  1069.     hLine : HLINE;
  1070.     dwAddressID : DWORD;
  1071.     lphCall : LPHCALL;
  1072.     lpszDestAddress : LPCSTR) : LONG; stdcall;
  1073. {$IFDEF Win32}
  1074. function lineUnparkA(
  1075.     hLine : HLINE;
  1076.     dwAddressID : DWORD;
  1077.     lphCall : LPHCALL;
  1078.     lpszDestAddress : LPCSTR) : LONG; stdcall;
  1079. function lineUnparkW(
  1080.     hLine : HLINE;
  1081.     dwAddressID : DWORD;
  1082.     lphCall : LPHCALL;
  1083.     lpszDestAddress : LPCWSTR) : LONG; stdcall;
  1084. {$ENDIF}
  1085. function phoneClose(
  1086.     hPhone : HPHONE) : LONG; stdcall;
  1087. function phoneConfigDialog(
  1088.     dwDeviceID : DWORD;
  1089.     hwndOwner : HWND;
  1090.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  1091. {$IFDEF Win32}
  1092. function phoneConfigDialogA(
  1093.     dwDeviceID : DWORD;
  1094.     hwndOwner : HWND;
  1095.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  1096. function phoneConfigDialogW(
  1097.     dwDeviceID : DWORD;
  1098.     hwndOwner : HWND;
  1099.     lpszDeviceClass : LPCWSTR) : LONG; stdcall;
  1100. {$ENDIF}
  1101. function phoneDevSpecific(
  1102.     hPhone : HPHONE;
  1103.     lpParams : LPVOID;
  1104.     dwSize : DWORD) : LONG; stdcall;
  1105. function phoneGetButtonInfo(
  1106.     hPhone : HPHONE;
  1107.     dwButtonLampID : DWORD;
  1108.     lpButtonInfo : LPPHONEBUTTONINFO) : LONG; stdcall;
  1109. {$IFDEF Win32}
  1110. function phoneGetButtonInfoA(
  1111.     hPhone : HPHONE;
  1112.     dwButtonLampID : DWORD;
  1113.     lpButtonInfo : LPPHONEBUTTONINFO) : LONG; stdcall;
  1114. function phoneGetButtonInfoW(
  1115.     hPhone : HPHONE;
  1116.     dwButtonLampID : DWORD;
  1117.     lpButtonInfo : LPPHONEBUTTONINFO) : LONG; stdcall;
  1118. {$ENDIF}
  1119. function phoneGetData(
  1120.     hPhone : HPHONE;
  1121.     dwDataID : DWORD;
  1122.     lpData : LPVOID;
  1123.     dwSize : DWORD) : LONG; stdcall;
  1124. function phoneGetDevCaps(
  1125.     hPhoneApp : HPHONEAPP;
  1126.     dwDeviceID : DWORD;
  1127.     dwAPIVersion : DWORD;
  1128.     dwExtVersion : DWORD;
  1129.     lpPhoneCaps : LPPHONECAPS) : LONG; stdcall;
  1130. {$IFDEF Win32}
  1131. function phoneGetDevCapsA(
  1132.     hPhoneApp : HPHONEAPP;
  1133.     dwDeviceID : DWORD;
  1134.     dwAPIVersion : DWORD;
  1135.     dwExtVersion : DWORD;
  1136.     lpPhoneCaps : LPPHONECAPS) : LONG; stdcall;
  1137. function phoneGetDevCapsW(
  1138.     hPhoneApp : HPHONEAPP;
  1139.     dwDeviceID : DWORD;
  1140.     dwAPIVersion : DWORD;
  1141.     dwExtVersion : DWORD;
  1142.     lpPhoneCaps : LPPHONECAPS) : LONG; stdcall;
  1143. {$ENDIF}
  1144. function phoneGetDisplay(
  1145.     hPhone : HPHONE;
  1146.     lpDisplay : LPVARSTRING) : LONG; stdcall;
  1147. function phoneGetGain(
  1148.     hPhone : HPHONE;
  1149.     dwHookSwitchDev : DWORD;
  1150.     lpdwGain : LPDWORD) : LONG; stdcall;
  1151. function phoneGetHookSwitch(
  1152.     hPhone : HPHONE;
  1153.     lpdwHookSwitchDevs : LPDWORD) : LONG; stdcall;
  1154. function phoneGetIcon(
  1155.     dwDeviceID : DWORD;
  1156.     lpszDeviceClass : LPCSTR;
  1157.     lphIcon : LPHICON) : LONG; stdcall;
  1158. {$IFDEF Win32}
  1159. function phoneGetIconA(
  1160.     dwDeviceID : DWORD;
  1161.     lpszDeviceClass : LPCSTR;
  1162.     lphIcon : LPHICON) : LONG; stdcall;
  1163. function phoneGetIconW(
  1164.     dwDeviceID : DWORD;
  1165.     lpszDeviceClass : LPCWSTR;
  1166.     lphIcon : LPHICON) : LONG; stdcall;
  1167. {$ENDIF}
  1168. function phoneGetID(
  1169.     hPhone : HPHONE;
  1170.     lpDeviceID : LPVARSTRING;
  1171.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  1172. {$IFDEF Win32}
  1173. function phoneGetIDA(
  1174.     hPhone : HPHONE;
  1175.     lpDeviceID : LPVARSTRING;
  1176.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  1177. function phoneGetIDW(
  1178.     hPhone : HPHONE;
  1179.     lpDeviceID : LPVARSTRING;
  1180.     lpszDeviceClass : LPCWSTR) : LONG; stdcall;
  1181. {$ENDIF}
  1182. function phoneGetLamp(
  1183.     hPhone : HPHONE;
  1184.     dwButtonLampID : DWORD;
  1185.     lpdwLampMode : LPDWORD) : LONG; stdcall;
  1186. {$IFDEF Tapi_Ver20}
  1187. function phoneGetMessage(                                                // TAPI v2.0
  1188.     hPhoneApp : HPHONEAPP;
  1189.     lpMessage : LPPHONEMESSAGE;
  1190.     dwTimeout : DWORD) : LONG; stdcall;
  1191. {$ENDIF}
  1192. function phoneGetRing(
  1193.     hPhone : HPHONE;
  1194.     lpdwRingMode : LPDWORD;
  1195.     lpdwVolume : LPDWORD) : LONG; stdcall;
  1196. function phoneGetStatus(
  1197.     hPhone : HPHONE;
  1198.     lpPhoneStatus : LPPHONESTATUS) : LONG; stdcall;
  1199. {$IFDEF Win32}
  1200. function phoneGetStatusA(
  1201.     hPhone : HPHONE;
  1202.     lpPhoneStatus : LPPHONESTATUS) : LONG; stdcall;
  1203. function phoneGetStatusW(
  1204.     hPhone : HPHONE;
  1205.     lpPhoneStatus : LPPHONESTATUS) : LONG; stdcall;
  1206. {$ENDIF}
  1207. function phoneGetStatusMessages(
  1208.     hPhone : HPHONE;
  1209.     lpdwPhoneStates : LPDWORD;
  1210.     lpdwButtonModes : LPDWORD;
  1211.     lpdwButtonStates : LPDWORD) : LONG; stdcall;
  1212. function phoneGetVolume(
  1213.     hPhone : HPHONE;
  1214.     dwHookSwitchDev : DWORD;
  1215.     lpdwVolume : LPDWORD) : LONG; stdcall;
  1216. function phoneInitialize(
  1217.     lphPhoneApp : LPHPHONEAPP;
  1218.     hInstance : HINSTANCE;
  1219.     lpfnCallback : TPHONECALLBACK;
  1220.     lpszAppName : LPCSTR;
  1221.     lpdwNumDevs : LPDWORD) : LONG; stdcall;
  1222. {$IFDEF Tapi_Ver20}
  1223. {$IFDEF Win32}
  1224. function phoneInitializeExA(                                              // TAPI v2.0
  1225.     lphPhoneApp : LPHPHONEAPP;
  1226.     hInstance : HINSTANCE;
  1227.     lpfnCallback : TPHONECALLBACK;
  1228.     lpszFriendlyAppName : LPCSTR;
  1229.     lpdwNumDevs : LPDWORD;
  1230.     lpdwAPIVersion : LPDWORD;
  1231.     lpPhoneInitializeExParams : LPPHONEINITIALIZEEXPARAMS) : LONG; stdcall;
  1232. {$ENDIF}
  1233. function phoneInitializeEx(                                              // TAPI v2.0
  1234.     lphPhoneApp : LPHPHONEAPP;
  1235.     hInstance : HINSTANCE;
  1236.     lpfnCallback : TPHONECALLBACK;
  1237.     lpszFriendlyAppName : LPCSTR;
  1238.     lpdwNumDevs : LPDWORD;
  1239.     lpdwAPIVersion : LPDWORD;
  1240.     lpPhoneInitializeExParams : LPPHONEINITIALIZEEXPARAMS) : LONG; stdcall;
  1241. {$IFDEF Win32}
  1242. function phoneInitializeExW(                                              // TAPI v2.0
  1243.     lphPhoneApp : LPHPHONEAPP;
  1244.     hInstance : HINSTANCE;
  1245.     lpfnCallback : TPHONECALLBACK;
  1246.     lpszFriendlyAppName : LPCWSTR;
  1247.     lpdwNumDevs : LPDWORD;
  1248.     lpdwAPIVersion : LPDWORD;
  1249.     lpPhoneInitializeExParams : LPPHONEINITIALIZEEXPARAMS) : LONG; stdcall;
  1250. {$ENDIF}
  1251. {$ENDIF}
  1252. function phoneNegotiateAPIVersion(
  1253.     hPhoneApp : HPHONEAPP;
  1254.     dwDeviceID : DWORD;
  1255.     dwAPILowVersion : DWORD;
  1256.     dwAPIHighVersion : DWORD;
  1257.     lpdwAPIVersion : LPDWORD;
  1258.     lpExtensionID : LPPHONEEXTENSIONID) : LONG; stdcall;
  1259. function phoneNegotiateExtVersion(
  1260.     hPhoneApp : HPHONEAPP;
  1261.     dwDeviceID : DWORD;
  1262.     dwAPIVersion : DWORD;
  1263.     dwExtLowVersion : DWORD;
  1264.     dwExtHighVersion : DWORD;
  1265.     lpdwExtVersion : LPDWORD) : LONG; stdcall;
  1266. function phoneOpen(
  1267.     hPhoneApp : HPHONEAPP;
  1268.     dwDeviceID : DWORD;
  1269.     lphPhone : LPHPHONE;
  1270.     dwAPIVersion : DWORD;
  1271.     dwExtVersion : DWORD;
  1272.     dwCallbackInstance : DWORD;
  1273.     dwPrivilege : DWORD) : LONG; stdcall;
  1274. function phoneSetButtonInfo(
  1275.     hPhone : HPHONE;
  1276.     dwButtonLampID : DWORD;
  1277.     const lpButtonInfo : LPPHONEBUTTONINFO) : LONG; stdcall;
  1278. {$IFDEF Win32}
  1279. function phoneSetButtonInfoA(
  1280.     hPhone : HPHONE;
  1281.     dwButtonLampID : DWORD;
  1282.     const lpButtonInfo : LPPHONEBUTTONINFO) : LONG; stdcall;
  1283. function phoneSetButtonInfoW(
  1284.     hPhone : HPHONE;
  1285.     dwButtonLampID : DWORD;
  1286.     const lpButtonInfo : LPPHONEBUTTONINFO) : LONG; stdcall;
  1287. {$ENDIF}
  1288. function phoneSetData(
  1289.     hPhone : HPHONE;
  1290.     dwDataID : DWORD;
  1291.     const lpData : LPVOID;
  1292.     dwSize : DWORD) : LONG; stdcall;
  1293. function phoneSetDisplay(
  1294.     hPhone : HPHONE;
  1295.     dwRow : DWORD;
  1296.     dwColumn : DWORD;
  1297.     lpsDisplay : LPCSTR;
  1298.     dwSize : DWORD) : LONG; stdcall;
  1299. function phoneSetGain(
  1300.     hPhone : HPHONE;
  1301.     dwHookSwitchDev : DWORD;
  1302.     dwGain : DWORD) : LONG; stdcall;
  1303. function phoneSetHookSwitch(
  1304.     hPhone : HPHONE;
  1305.     dwHookSwitchDevs : DWORD;
  1306.     dwHookSwitchMode : DWORD) : LONG; stdcall;
  1307. function phoneSetLamp(
  1308.     hPhone : HPHONE;
  1309.     dwButtonLampID : DWORD;
  1310.     dwLampMode : DWORD) : LONG; stdcall;
  1311. function phoneSetRing(
  1312.     hPhone : HPHONE;
  1313.     dwRingMode : DWORD;
  1314.     dwVolume : DWORD) : LONG; stdcall;
  1315. function phoneSetStatusMessages(
  1316.     hPhone : HPHONE;
  1317.     dwPhoneStates : DWORD;
  1318.     dwButtonModes : DWORD;
  1319.     dwButtonStates : DWORD) : LONG; stdcall;
  1320. function phoneSetVolume(
  1321.     hPhone : HPHONE;
  1322.     dwHookSwitchDev : DWORD;
  1323.     dwVolume : DWORD) : LONG; stdcall;
  1324. function phoneShutdown(
  1325.     hPhoneApp : HPHONEAPP) : LONG; stdcall;
  1326. function tapiGetLocationInfo(
  1327.     lpszCountryCode : LPSTR;
  1328.     lpszCityCode : LPSTR) : LONG; stdcall;
  1329. {$IFDEF Win32}
  1330. function tapiGetLocationInfoA(
  1331.     lpszCountryCode : LPSTR;
  1332.     lpszCityCode : LPSTR) : LONG; stdcall;
  1333. function tapiGetLocationInfoW(
  1334.     lpszCountryCodeW : LPWSTR;
  1335.     lpszCityCodeW : LPWSTR) : LONG; stdcall;
  1336. {$ENDIF}
  1337.     
  1338. function tapiRequestDrop(
  1339.     hwnd : HWND;
  1340.     wRequestID : WPARAM) : LONG; stdcall;
  1341. function tapiRequestMakeCall(
  1342.     lpszDestAddress : LPCSTR;
  1343.     lpszAppName : LPCSTR;
  1344.     lpszCalledParty : LPCSTR;
  1345.     lpszComment : LPCSTR) : LONG; stdcall;
  1346. {$IFDEF Win32}
  1347. function tapiRequestMakeCallA(
  1348.     lpszDestAddress : LPCSTR;
  1349.     lpszAppName : LPCSTR;
  1350.     lpszCalledParty : LPCSTR;
  1351.     lpszComment : LPCSTR) : LONG; stdcall;
  1352. function tapiRequestMakeCallW(
  1353.     lpszDestAddress : LPCWSTR;
  1354.     lpszAppName : LPCWSTR;
  1355.     lpszCalledParty : LPCWSTR;
  1356.     lpszComment : LPCWSTR) : LONG; stdcall;
  1357. {$ENDIF}
  1358.     
  1359. function tapiRequestMediaCall(
  1360.     hwnd : HWND;
  1361.     wRequestID : WPARAM;
  1362.     lpszDeviceClass : LPCSTR;
  1363.     lpDeviceID : LPCSTR;
  1364.     dwSize : DWORD;
  1365.     dwSecure : DWORD;
  1366.     lpszDestAddress : LPCSTR;
  1367.     lpszAppName : LPCSTR;
  1368.     lpszCalledParty : LPCSTR;
  1369.     lpszComment : LPCSTR) : LONG; stdcall;
  1370. {$IFDEF Win32}
  1371. function tapiRequestMediaCallA(
  1372.     hwnd : HWND;
  1373.     wRequestID : WPARAM;
  1374.     lpszDeviceClass : LPCSTR;
  1375.     lpDeviceID : LPCSTR;
  1376.     dwSize : DWORD;
  1377.     dwSecure : DWORD;
  1378.     lpszDestAddress : LPCSTR;
  1379.     lpszAppName : LPCSTR;
  1380.     lpszCalledParty : LPCSTR;
  1381.     lpszComment : LPCSTR) : LONG; stdcall;
  1382. function tapiRequestMediaCallW(
  1383.     hwnd : HWND;
  1384.     wRequestID : WPARAM;
  1385.     lpszDeviceClass : LPCWSTR;
  1386.     lpDeviceID : LPCWSTR;
  1387.     dwSize : DWORD;
  1388.     dwSecure : DWORD;
  1389.     lpszDestAddress : LPCWSTR;
  1390.     lpszAppName : LPCWSTR;
  1391.     lpszCalledParty : LPCWSTR) : LONG; stdcall;
  1392. {$ENDIF}
  1393. (*
  1394. TAPIERROR_FORMATMESSAGE - macro to convert a TAPI error constant
  1395.     into a constant that FormatMessage will accept
  1396.     
  1397.         TAPIERR : Negative numbers and 0
  1398.             Map to : strip off high WORD
  1399.             Example: 0xFFFFFFFF (-1) becomes 0x0000FFFF
  1400.         LINEERR : Start at 0x80000000
  1401.             Map to : strip off 0x80000000 and add 0xE000
  1402.             Example: 0x80000004 becomes 0x0000E004
  1403.         PHONEERR: Start at 0x90000000
  1404.             Map to : strip off 0x90000000 and add 0xF000
  1405.             Example: 0x9000000A becomes 0x0000F00A
  1406.         pseudocode:
  1407.         
  1408.         if (__ErrCode__ is a TAPIERR)
  1409.             strip off high word
  1410.             else if (__ErrCode__ is a PHONEERR)
  1411.                 strip off 0x90000000
  1412.                 add 0xE000
  1413.                 else
  1414.                     strip off 0x80000000
  1415.                     add 0xF000
  1416. *)
  1417. //function TAPIERROR_FORMATMESSAGE (ErrCode : INT) : INT;
  1418. {!! Convenience functions added for Delphi: }
  1419. //function TapiError (ResultCode : Integer) : Boolean;
  1420.   {-Returns True if ResultCode indicates an error; True if success }
  1421. {!!}
  1422. implementation
  1423. uses
  1424.   SysUtils, TAPILine;
  1425. const
  1426. {$IFDEF Win32}
  1427.   TapiDll = 'tapi32.dll';
  1428. {$ELSE}
  1429.   TapiDll = 'tapi.dll';
  1430. {$ENDIF}
  1431. function lineAccept; external TapiDll name 'lineAccept';
  1432. function lineAddProvider; external TapiDll name 'lineAddProvider';
  1433. function lineAddToConference; external TapiDll name 'lineAddToConference';
  1434. {$IFDEF Tapi_Ver20}
  1435. function lineAgentSpecific; external TapiDll name 'lineAgentSpecific';
  1436. {$ENDIF}
  1437. function lineAnswer; external TapiDll name 'lineAnswer';
  1438. function lineBlindTransfer; external TapiDll name 'lineBlindTransfer';
  1439. function lineClose; external TapiDll name 'lineClose';
  1440. function lineCompleteCall; external TapiDll name 'lineCompleteCall';
  1441. function lineCompleteTransfer; external TapiDll name 'lineCompleteTransfer';
  1442. function lineConfigDialog; external TapiDll name 'lineConfigDialog';
  1443. function lineConfigDialogEdit; external TapiDll name 'lineConfigDialogEdit';
  1444. function lineConfigProvider; external TapiDll name 'lineConfigProvider';
  1445. function lineDeallocateCall; external TapiDll name 'lineDeallocateCall';
  1446. function lineDevSpecific; external TapiDll name 'lineDevSpecific';
  1447. function lineDevSpecificFeature; external TapiDll name 'lineDevSpecificFeature';
  1448. function lineDial; external TapiDll name 'lineDial';
  1449. function lineDrop; external TapiDll name 'lineDrop';
  1450. function lineForward; external TapiDll name 'lineForward';
  1451. function lineGatherDigits; external TapiDll name 'lineGatherDigits';
  1452. function lineGenerateDigits; external TapiDll name 'lineGenerateDigits';
  1453. function lineGenerateTone; external TapiDll name 'lineGenerateTone';
  1454. function lineGetAddressCaps; external TapiDll name 'lineGetAddressCaps';
  1455. function lineGetAddressID; external TapiDll name 'lineGetAddressID';
  1456. function lineGetAddressStatus; external TapiDll name 'lineGetAddressStatus';
  1457. {$IFDEF Tapi_Ver20}
  1458. function lineGetAgentStatus; external TapiDll name 'lineGetAgentStatus';
  1459. function lineGetAgentGroupList; external TapiDll name 'lineGetAgentGroupList';
  1460. function lineGetAgentCaps; external TapiDll name 'lineGetAgentCaps';
  1461. function lineGetAgentActivityList; external TapiDll name 'lineGetAgentActivityList';
  1462. {$ENDIF}
  1463. function lineGetAppPriority; external TapiDll name 'lineGetAppPriority';
  1464. function lineGetCallInfo; external TapiDll name 'lineGetCallInfo';
  1465. function lineGetCallStatus; external TapiDll name 'lineGetCallStatus';
  1466. function lineGetConfRelatedCalls; external TapiDll name 'lineGetConfRelatedCalls';
  1467. function lineGetCountry; external TapiDll name 'lineGetCountry';
  1468. function lineGetDevCaps; external TapiDll name 'lineGetDevCaps';
  1469. function lineGetDevConfig; external TapiDll name 'lineGetDevConfig';
  1470. function lineGetNewCalls; external TapiDll name 'lineGetNewCalls';
  1471. function lineGetIcon; external TapiDll name 'lineGetIcon';
  1472. function lineGetID; external TapiDll name 'lineGetID';
  1473. function lineGetLineDevStatus; external TapiDll name 'lineGetLineDevStatus';
  1474. {$IFDEF Tapi_Ver20}
  1475. function lineGetMessage; external TapiDll name 'lineGetMessage';
  1476. {$ENDIF}
  1477. function lineGetNumRings; external TapiDll name 'lineGetNumRings';
  1478. function lineGetProviderList; external TapiDll name 'lineGetProviderList';
  1479. function lineGetRequest; external TapiDll name 'lineGetRequest';
  1480. function lineGetStatusMessages; external TapiDll name 'lineGetStatusMessages';
  1481. function lineGetTranslateCaps; external TapiDll name 'lineGetTranslateCaps';
  1482. function lineHandoff; external TapiDll name 'lineHandoff';
  1483. function lineHold; external TapiDll name 'lineHold';
  1484. function lineInitialize; external TapiDll name 'lineInitialize';
  1485. {$IFDEF Tapi_Ver20}
  1486. function lineInitializeEx; external TapiDll name 'lineInitializeEx';
  1487. {$ENDIF}
  1488. function lineMakeCall; external TapiDll name 'lineMakeCall';
  1489. function lineMonitorDigits; external TapiDll name 'lineMonitorDigits';
  1490. function lineMonitorMedia; external TapiDll name 'lineMonitorMedia';
  1491. function lineMonitorTones; external TapiDll name 'lineMonitorTones';
  1492. function lineNegotiateAPIVersion; external TapiDll name 'lineNegotiateAPIVersion';
  1493. function lineNegotiateExtVersion; external TapiDll name 'lineNegotiateExtVersion';
  1494. function lineOpen; external TapiDll name 'lineOpen';
  1495. function linePark; external TapiDll name 'linePark';
  1496. function linePickup; external TapiDll name 'linePickup';
  1497. function linePrepareAddToConference; external TapiDll name 'linePrepareAddToConference';
  1498. {$IFDEF Tapi_Ver20}
  1499. function lineProxyMessage; external TapiDll name 'lineProxyMessage';
  1500. function lineProxyResponse; external TapiDll name 'lineProxyResponse';
  1501. {$ENDIF}
  1502. function lineRedirect; external TapiDll name 'lineRedirect';
  1503. function lineRegisterRequestRecipient; external TapiDll name 'lineRegisterRequestRecipient';
  1504. function lineReleaseUserUserInfo; external TapiDll name 'lineReleaseUserUserInfo';
  1505. function lineRemoveFromConference; external TapiDll name 'lineRemoveFromConference';
  1506. function lineRemoveProvider; external TapiDll name 'lineRemoveProvider';
  1507. function lineSecureCall; external TapiDll name 'lineSecureCall';
  1508. function lineSendUserUserInfo; external TapiDll name 'lineSendUserUserInfo';
  1509. {$IFDEF Tapi_Ver20}
  1510. function lineSetAgentActivity; external TapiDll name 'lineSetAgentActivity';
  1511. function lineSetAgentGroup; external TapiDll name 'lineSetAgentGroup';
  1512. function lineSetAgentState; external TapiDll name 'lineSetAgentState';
  1513. {$ENDIF}
  1514. function lineSetAppPriority; external TapiDll name 'lineSetAppPriority';
  1515. function lineSetAppSpecific; external TapiDll name 'lineSetAppSpecific';
  1516. {$IFDEF Tapi_Ver20}
  1517. function lineSetCallData; external TapiDll name 'lineSetCallData';
  1518. {$ENDIF}
  1519. function lineSetCallParams; external TapiDll name 'lineSetCallParams';
  1520. function lineSetCallPrivilege; external TapiDll name 'lineSetCallPrivilege';
  1521. {$IFDEF Tapi_Ver20}
  1522. function lineSetCallQualityOfService; external TapiDll name 'lineSetCallQualityOfService';
  1523. function lineSetCallTreatment; external TapiDll name 'lineSetCallTreatment';
  1524. {$ENDIF}
  1525. function lineSetCurrentLocation; external TapiDll name 'lineSetCurrentLocation';
  1526. function lineSetDevConfig; external TapiDll name 'lineSetDevConfig';
  1527. {$IFDEF Tapi_Ver20}
  1528. function lineSetLineDevStatus; external TapiDll name 'lineSetLineDevStatus';
  1529. {$ENDIF}
  1530. function lineSetMediaControl; external TapiDll name 'lineSetMediaControl';
  1531. function lineSetMediaMode; external TapiDll name 'lineSetMediaMode';
  1532. function lineSetNumRings; external TapiDll name 'lineSetNumRings';
  1533. function lineSetStatusMessages; external TapiDll name 'lineSetStatusMessages';
  1534. function lineSetTerminal; external TapiDll name 'lineSetTerminal';
  1535. function lineSetTollList; external TapiDll name 'lineSetTollList';
  1536. function lineSetupConference; external TapiDll name 'lineSetupConference';
  1537. function lineSetupTransfer; external TapiDll name 'lineSetupTransfer';
  1538. function lineShutdown; external TapiDll name 'lineShutdown';
  1539. function lineSwapHold; external TapiDll name 'lineSwapHold';
  1540. function lineTranslateAddress; external TapiDll name 'lineTranslateAddress';
  1541. function lineTranslateDialog; external TapiDll name 'lineTranslateDialog';
  1542. function lineUncompleteCall; external TapiDll name 'lineUncompleteCall';
  1543. function lineUnhold; external TapiDll name 'lineUnhold';
  1544. function lineUnpark; external TapiDll name 'lineUnpark';
  1545. function phoneClose; external TapiDll name 'phoneClose';
  1546. function phoneConfigDialog; external TapiDll name 'phoneConfigDialog';
  1547. function phoneDevSpecific; external TapiDll name 'phoneDevSpecific';
  1548. function phoneGetButtonInfo; external TapiDll name 'phoneGetButtonInfo';
  1549. function phoneGetData; external TapiDll name 'phoneGetData';
  1550. function phoneGetDevCaps; external TapiDll name 'phoneGetDevCaps';
  1551. function phoneGetDisplay; external TapiDll name 'phoneGetDisplay';
  1552. function phoneGetGain; external TapiDll name 'phoneGetGain';
  1553. function phoneGetHookSwitch; external TapiDll name 'phoneGetHookSwitch';
  1554. function phoneGetIcon; external TapiDll name 'phoneGetIcon';
  1555. function phoneGetID; external TapiDll name 'phoneGetID';
  1556. function phoneGetLamp; external TapiDll name 'phoneGetLamp';
  1557. {$IFDEF Tapi_Ver20}
  1558. function phoneGetMessage; external TapiDll name 'phoneGetMessage';
  1559. {$ENDIF}
  1560. function phoneGetRing; external TapiDll name 'phoneGetRing';
  1561. function phoneGetStatus; external TapiDll name 'phoneGetStatus';
  1562. function phoneGetStatusMessages; external TapiDll name 'phoneGetStatusMessages';
  1563. function phoneGetVolume; external TapiDll name 'phoneGetVolume';
  1564. function phoneInitialize; external TapiDll name 'phoneInitialize';
  1565. {$IFDEF Tapi_Ver20}
  1566. function phoneInitializeEx; external TapiDll name 'phoneInitializeEx';
  1567. {$ENDIF}
  1568. function phoneNegotiateAPIVersion; external TapiDll name 'phoneNegotiateAPIVersion';
  1569. function phoneNegotiateExtVersion; external TapiDll name 'phoneNegotiateExtVersion';
  1570. function phoneOpen; external TapiDll name 'phoneOpen';
  1571. function phoneSetButtonInfo; external TapiDll name 'phoneSetButtonInfo';
  1572. function phoneSetData; external TapiDll name 'phoneSetData';
  1573. function phoneSetDisplay; external TapiDll name 'phoneSetDisplay';
  1574. function phoneSetGain; external TapiDll name 'phoneSetGain';
  1575. function phoneSetHookSwitch; external TapiDll name 'phoneSetHookSwitch';
  1576. function phoneSetLamp; external TapiDll name 'phoneSetLamp';
  1577. function phoneSetRing; external TapiDll name 'phoneSetRing';
  1578. function phoneSetStatusMessages; external TapiDll name 'phoneSetStatusMessages';
  1579. function phoneSetVolume; external TapiDll name 'phoneSetVolume';
  1580. function phoneShutdown; external TapiDll name 'phoneShutdown';
  1581. function tapiGetLocationInfo; external TapiDll name 'tapiGetLocationInfo';
  1582. function tapiRequestDrop; external TapiDll name 'tapiRequestDrop';
  1583. function tapiRequestMakeCall; external TapiDll name 'tapiRequestMakeCall';
  1584. function tapiRequestMediaCall; external TapiDll name 'tapiRequestMediaCall';
  1585. {$IFDEF Win32}
  1586. function lineAddProviderA; external TapiDll name 'lineAddProvider';
  1587. function lineAddProviderW; external TapiDll name 'lineAddProviderW';
  1588. function lineBlindTransferA; external TapiDll name 'lineBlindTransfer';
  1589. function lineBlindTransferW; external TapiDll name 'lineBlindTransferW';
  1590. function lineConfigDialogA; external TapiDll name 'lineConfigDialog';
  1591. function lineConfigDialogW; external TapiDll name 'lineConfigDialogW';
  1592. function lineConfigDialogEditA; external TapiDll name 'lineConfigDialogEdit';
  1593. function lineConfigDialogEditW; external TapiDll name 'lineConfigDialogEditW';
  1594. function lineDialA; external TapiDll name 'lineDial';
  1595. function lineDialW; external TapiDll name 'lineDialW';
  1596. function lineForwardA; external TapiDll name 'lineForward';
  1597. function lineForwardW; external TapiDll name 'lineForwardW';
  1598. function lineGatherDigitsA; external TapiDll name 'lineGatherDigits';
  1599. function lineGatherDigitsW; external TapiDll name 'lineGatherDigitsW';
  1600. function lineGenerateDigitsA; external TapiDll name 'lineGenerateDigits';
  1601. function lineGenerateDigitsW; external TapiDll name 'lineGenerateDigitsW';
  1602. function lineGetAddressCapsA; external TapiDll name 'lineGetAddressCaps';
  1603. function lineGetAddressCapsW; external TapiDll name 'lineGetAddressCapsW';
  1604. function lineGetAddressIDA; external TapiDll name 'lineGetAddressID';
  1605. function lineGetAddressIDW; external TapiDll name 'lineGetAddressIDW';
  1606. function lineGetAddressStatusA; external TapiDll name 'lineGetAddressStatus';
  1607. function lineGetAddressStatusW; external TapiDll name 'lineGetAddressStatusW';
  1608. function lineGetAgentActivityListA; external TapiDll name 'lineGetAgentActivityList';
  1609. function lineGetAgentActivityListW; external TapiDll name 'lineGetAgentActivityListW';
  1610. function lineGetAgentCapsA; external TapiDll name 'lineGetAgentCaps';
  1611. function lineGetAgentCapsW; external TapiDll name 'lineGetAgentCapsW';
  1612. function lineGetAgentGroupListA; external TapiDll name 'lineGetAgentGroupList';
  1613. function lineGetAgentGroupListW; external TapiDll name 'lineGetAgentGroupListW';
  1614. function lineGetAgentStatusA; external TapiDll name 'lineGetAgentStatus';
  1615. function lineGetAgentStatusW; external TapiDll name 'lineGetAgentStatusW';
  1616. function lineGetAppPriorityA; external TapiDll name 'lineGetAppPriority';
  1617. function lineGetAppPriorityW; external TapiDll name 'lineGetAppPriorityW';
  1618. function lineGetCallInfoA; external TapiDll name 'lineGetCallInfo';
  1619. function lineGetCallInfoW; external TapiDll name 'lineGetCallInfoW';
  1620. function lineGetCountryA; external TapiDll name 'lineGetCountry';
  1621. function lineGetCountryW; external TapiDll name 'lineGetCountryW';
  1622. function lineGetDevCapsA; external TapiDll name 'lineGetDevCaps';
  1623. function lineGetDevCapsW; external TapiDll name 'lineGetDevCapsW';
  1624. function lineGetDevConfigA; external TapiDll name 'lineGetDevConfig';
  1625. function lineGetDevConfigW; external TapiDll name 'lineGetDevConfigW';
  1626. function lineGetIconA; external TapiDll name 'lineGetIcon';
  1627. function lineGetIconW; external TapiDll name 'lineGetIconW';
  1628. function lineGetIDA; external TapiDll name 'lineGetID';
  1629. function lineGetIDW; external TapiDll name 'lineGetIDW';
  1630. function lineGetLineDevStatusA; external TapiDll name 'lineGetLineDevStatus';
  1631. function lineGetLineDevStatusW; external TapiDll name 'lineGetLineDevStatusW';
  1632. function lineGetProviderListA; external TapiDll name 'lineGetProviderList';
  1633. function lineGetProviderListW; external TapiDll name 'lineGetProviderListW';
  1634. function lineGetRequestA; external TapiDll name 'lineGetRequest';
  1635. function lineGetRequestW; external TapiDll name 'lineGetRequestW';
  1636. function lineGetTranslateCapsA; external TapiDll name 'lineGetTranslateCaps';
  1637. function lineGetTranslateCapsW; external TapiDll name 'lineGetTranslateCapsW';
  1638. function lineHandoffA; external TapiDll name 'lineHandoff';
  1639. function lineHandoffW; external TapiDll name 'lineHandoffW';
  1640. {$IFDEF Tapi_Ver20}
  1641. function lineInitializeExA; external TapiDll name 'lineInitializeEx';
  1642. function lineInitializeExW; external TapiDll name 'lineInitializeExW';
  1643. {$ENDIF}
  1644. function lineMakeCallA; external TapiDll name 'lineMakeCall';
  1645. function lineMakeCallW; external TapiDll name 'lineMakeCallW';
  1646. function lineOpenA; external TapiDll name 'lineOpen';
  1647. function lineOpenW; external TapiDll name 'lineOpenW';
  1648. function lineParkA; external TapiDll name 'linePark';
  1649. function lineParkW; external TapiDll name 'lineParkW';
  1650. function linePickupA; external TapiDll name 'linePickup';
  1651. function linePickupW; external TapiDll name 'linePickupW';
  1652. function linePrepareAddToConferenceA; external TapiDll name 'linePrepareAddToConference';
  1653. function linePrepareAddToConferenceW; external TapiDll name 'linePrepareAddToConferenceW';
  1654. function lineRedirectA; external TapiDll name 'lineRedirect';
  1655. function lineRedirectW; external TapiDll name 'lineRedirectW';
  1656. function lineSetAppPriorityA; external TapiDll name 'lineSetAppPriority';
  1657. function lineSetAppPriorityW; external TapiDll name 'lineSetAppPriorityW';
  1658. function lineSetDevConfigA; external TapiDll name 'lineSetDevConfig';
  1659. function lineSetDevConfigW; external TapiDll name 'lineSetDevConfigW';
  1660. function lineSetTollListA; external TapiDll name 'lineSetTollList';
  1661. function lineSetTollListW; external TapiDll name 'lineSetTollListW';
  1662. function lineSetupConferenceA; external TapiDll name 'lineSetupConference';
  1663. function lineSetupConferenceW; external TapiDll name 'lineSetupConferenceW';
  1664. function lineSetupTransferA; external TapiDll name 'lineSetupTransfer';
  1665. function lineSetupTransferW; external TapiDll name 'lineSetupTransferW';
  1666. function lineTranslateAddressA; external TapiDll name 'lineTranslateAddress';
  1667. function lineTranslateAddressW; external TapiDll name 'lineTranslateAddressW';
  1668. function lineTranslateDialogA; external TapiDll name 'lineTranslateDialog';
  1669. function lineTranslateDialogW; external TapiDll name 'lineTranslateDialogW';
  1670. function lineUnparkA; external TapiDll name 'lineUnpark';
  1671. function lineUnparkW; external TapiDll name 'lineUnparkW';
  1672. function phoneConfigDialogA; external TapiDll name 'phoneConfigDialog';
  1673. function phoneConfigDialogW; external TapiDll name 'phoneConfigDialogW';
  1674. function phoneGetButtonInfoA; external TapiDll name 'phoneGetButtonInfo';
  1675. function phoneGetButtonInfoW; external TapiDll name 'phoneGetButtonInfoW';
  1676. function phoneGetDevCapsA; external TapiDll name 'phoneGetDevCaps';
  1677. function phoneGetDevCapsW; external TapiDll name 'phoneGetDevCapsW';
  1678. function phoneGetIconA; external TapiDll name 'phoneGetIcon';
  1679. function phoneGetIconW; external TapiDll name 'phoneGetIconW';
  1680. function phoneGetIDA; external TapiDll name 'phoneGetID';
  1681. function phoneGetIDW; external TapiDll name 'phoneGetIDW';
  1682. function phoneGetStatusA; external TapiDll name 'phoneGetStatus';
  1683. function phoneGetStatusW; external TapiDll name 'phoneGetStatusW';
  1684. {$IFDEF Tapi_Ver20}
  1685. function phoneInitializeExA; external TapiDll name 'phoneInitializeEx';
  1686. function phoneInitializeExW; external TapiDll name 'phoneInitializeExW';
  1687. {$ENDIF}
  1688. function phoneSetButtonInfoA; external TapiDll name 'phoneSetButtonInfo';
  1689. function phoneSetButtonInfoW; external TapiDll name 'phoneSetButtonInfoW';
  1690. function tapiGetLocationInfoA; external TapiDll name 'tapiGetLocationInfo';
  1691. function tapiGetLocationInfoW; external TapiDll name 'tapiGetLocationInfoW';
  1692. function tapiRequestMakeCallA; external TapiDll name 'tapiRequestMakeCall';
  1693. function tapiRequestMakeCallW; external TapiDll name 'tapiRequestMakeCallW';
  1694. function tapiRequestMediaCallA; external TapiDll name 'tapiRequestMediaCall';
  1695. function tapiRequestMediaCallW; external TapiDll name 'tapiRequestMediaCallW';
  1696. {$ENDIF}
  1697. { For some strange reason this routine doesn't work.
  1698.   All Visual C++ samples do not use special macro to convert
  1699.   a TAPI error constant into a constant that FormatMessage will accept,
  1700.   I mean TAPIERROR_FORMATMESSAGE. }
  1701. {
  1702. function TAPIERROR_FORMATMESSAGE (ErrCode : INT) : INT;
  1703. begin
  1704.   if ErrCode > $FFFF0000 then
  1705.      Begin
  1706.      ErrCode := ErrCode shl sizeof (WORD);
  1707.      Result := ErrCode shr sizeof (WORD);
  1708. //    Result:=ErrCode and $FFFF
  1709.      End
  1710.   else if ErrCode > $10000000 then
  1711.     Result:=ErrCode - $90000000 + $F000
  1712.   else
  1713.     Result:=ErrCode - $80000000 + $E000
  1714. end;
  1715. function TapiError (ResultCode : Integer) : Boolean;
  1716. begin
  1717.   Result:=ResultCode < 0;
  1718. end;
  1719. procedure TapiCheck (ResultCode : Integer);
  1720. var
  1721.   S : string;
  1722.   p: PChar;
  1723. begin
  1724.   getmem (p, 10);
  1725.   if TapiError(ResultCode) then
  1726.     begin
  1727.     ResultCode:=TAPIERROR_FORMATMESSAGE(ResultCode);
  1728.     S:=SysErrorMessage(ResultCode);
  1729.       if S = '' then
  1730.         S:='Error ' + IntToStr(ResultCode);
  1731.       raise Exception.Create('TAPI error: ' + S);
  1732.     end;
  1733. end;
  1734. }
  1735. end.