www.pudn.com > TAPI.zip > TSPI.pas
{******************************************************************}
{ }
{ Borland Delphi Runtime Library }
{ Telephony SPI interface unit }
{ }
{ Portions created by Microsoft are }
{ Copyright (C) 1995-1999 Microsoft Corporation. }
{ All Rights Reserved. }
{ }
{ The original file is: tspi.h, released March 1999. }
{ The original Pascal code is: TSPI.pas, released 28 Dec 1999. }
{ The initial developer of the Pascal code is Marcel van Brakel }
{ (brakelm@bart.nl). }
{ }
{ Portions created by Marcel van Brakel are }
{ Copyright (C) 1999-2000 Marcel van Brakel. }
{ }
{ Contributor(s): Alan C. Moore (ACMDOC@aol.com) }
{ Rudy Velthuis (rvelthuis@gmx.de) }
{ }
{ Obtained through: }
{ Joint Endeavour of Delphi Innovators (Project JEDI) }
{ }
{ You may retrieve the latest version of this file at the Project }
{ JEDI home page, located at http://delphi-jedi.org }
{ }
{ The contents of this file are used with permission, subject to }
{ the Mozilla Public License Version 1.1 (the "License"); you may }
{ not use this file except in compliance with the License. You may }
{ obtain a copy of the License at }
{ http://www.mozilla.org/NPL/NPL-1_1Final.html }
{ }
{ Software distributed under the License is distributed on an }
{ "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or }
{ implied. See the License for the specific language governing }
{ rights and limitations under the License. }
{ }
{******************************************************************}
unit TSPI;
{$WEAKPACKAGEUNIT}
interface
{$HPPEMIT '#include '}
{$HPPEMIT '#include "tapi.h"'}
{$HPPEMIT '#if WIN32'}
{$HPPEMIT '#if TAPI_CURRENT_VERSION < 0x00020000'}
{$HPPEMIT '#error Building a 32bit 1.3 or 1.4 service provider isn't supported'}
{$HPPEMIT '#endif'}
{$HPPEMIT '#endif'}
uses
Windows, Tapi;
// The Telephony API is jointly copyrighted by Intel and Microsoft. You are
// granted a royalty free worldwide, unlimited license to make copies, and use
// the API/SPI for making applications/drivers that interface with the
// specification provided that this paragraph and the Intel/Microsoft copyright
// statement is maintained as is in the text and source code files.
// Copyright (c) 1992-1998 Microsoft Corporation
// Portions copyright 1992, 1993 Intel/Microsoft, all rights reserved.
{$INCLUDE TAPI.INC}
{$IFDEF WIN32}
{$IFNDEF TAPI20}
#error Building a 32bit 1.3 or 1.4 service provider is not supported.
{$ENDIF}
{$ENDIF}
// tspi.h is only of use in conjunction with tapi.h. Very few types are
// defined in tspi.h. Most types of procedure formal parameters are simply
// passed through from corresponding procedures in tapi.h. A working knowledge
// of the TAPI interface is required for an understanding of this interface.
type
PHDRVCALL = ^HDRVCALL;
HDRVCALL__ = packed record
unused: Longint;
end;
{$EXTERNALSYM HDRVCALL__}
HDRVCALL = HDRVCALL__;
{$EXTERNALSYM HDRVCALL}
PHDRVLLINE= ^HDRVLINE;
HDRVLINE__ = packed record
unused: Longint;
end;
{$EXTERNALSYM HDRVLINE__}
HDRVLINE = HDRVLINE__;
{$EXTERNALSYM HDRVLINE}
PHDRVPHONE = ^HDRVPHONE;
HDRVPHONE__ = packed record
unused: Longint;
end;
{$EXTERNALSYM HDRVPHONE__}
HDRVPHONE = HDRVPHONE__;
{$EXTERNALSYM HDRVPHONE}
PHDRVDIALOGINSTANCE = ^HDRVDIALOGINSTANCE;
HDRVDIALOGINSTANCE__ = packed record
unused: Longint;
end;
{$EXTERNALSYM HDRVDIALOGINSTANCE__}
HDRVDIALOGINSTANCE = HDRVDIALOGINSTANCE__;
{$EXTERNALSYM HDRVDIALOGINSTANCE}
PHDRVMSPLINE = ^HDRVMSPLINE;
HDRVMSPLINE__ = packed record
unused: Longint;
end;
{$EXTERNALSYM HDRVMSPLINE__}
HDRVMSPLINE = HDRVMSPLINE__;
{$EXTERNALSYM HDRVMSPLINE}
PHTAPICALL = ^HTAPICALL;
HTAPICALL__ = packed record
unused: Longint;
end;
{$EXTERNALSYM HTAPICALL__}
HTAPICALL = HTAPICALL__;
{$EXTERNALSYM HTAPICALL}
PHTAPILINE = ^HTAPILINE;
HTAPILINE__ = packed record
unused: Longint;
end;
{$EXTERNALSYM HTAPILINE__}
HTAPILINE = HTAPILINE__;
{$EXTERNALSYM HTAPILINE}
PHTAPIPHONE = ^HTAPIPHONE;
HTAPIPHONE__ = packed record
unused: Longint;
end;
{$EXTERNALSYM HTAPIPHONE__}
HTAPIPHONE = HTAPIPHONE__;
{$EXTERNALSYM HTAPIPHONE}
PHTAPIDIALOGINSTANCE = ^HTAPIDIALOGINSTANCE;
HTAPIDIALOGINSTANCE__ = packed record
unused: Longint;
end;
{$EXTERNALSYM HTAPIDIALOGINSTANCE__}
HTAPIDIALOGINSTANCE = HTAPIDIALOGINSTANCE__;
{$EXTERNALSYM HTAPIDIALOGINSTANCE}
PHTAPIMSPLINE = ^HTAPIMSPLINE;
HTAPIMSPLINE__ = packed record
unused: Longint;
end;
{$EXTERNALSYM HTAPIMSPLINE__}
HTAPIMSPLINE = HTAPIMSPLINE__;
{$EXTERNALSYM HTAPIMSPLINE}
PHPROVIDER = ^HPROVIDER;
HPROVIDER__ = packed record
unused: Longint;
end;
{$EXTERNALSYM HPROVIDER__}
HPROVIDER = HPROVIDER__;
{$EXTERNALSYM HPROVIDER}
TDrvRequestID = DWORD;
DRV_REQUESTID = DWORD;
{$EXTERNALSYM DRV_REQUESTID}
ASYNC_COMPLETION = procedure(dwRequestID: TDrvRequestID;
lResult: Longint); stdcall;
{$EXTERNALSYM ASYNC_COMPLETION}
TASyncCompletion = ASYNC_COMPLETION;
LINEEVENT = procedure(htLine: HTAPILINE; htCall: HTAPICALL; dwMsg, dwParam1,
dwParam2, dwParam3: DWORD_PTR) stdcall;
{$EXTERNALSYM LINEEVENT}
TLineEvent = LINEEVENT;
PHONEEVENT = procedure(htPhone: HTAPIPHONE; dwMsg: DWORD; dwParam1, dwParam2,
dwParam3: DWORD_PTR) stdcall;
{$EXTERNALSYM PHONEEVENT}
TPhoneEvent = PHONEEVENT;
TUISPIDLLCALLBACK = function(dwObjectID, dwObjectType: DWORD;
lpParams: Pointer; dwSize: DWORD): Longint stdcall;
{$EXTERNALSYM TUISPIDLLCALLBACK}
TTUISpiDllCallback = TUISPIDLLCALLBACK;
{$IFDEF TAPI20}
PTUISpiCreateDialogInstanceParams = ^TTUISpiCreateDialogInstanceParams;
tuispicreatedialoginstanceparams_tag = packed record
dwRequestID: TDrvRequestID;
hdDlgInst: HDRVDIALOGINSTANCE;
htDlgInst: HTAPIDIALOGINSTANCE;
lpszUIDLLName: LPCWSTR;
lpParams: Pointer;
dwSize: DWORD;
end;
{$EXTERNALSYM tuispicreatedialoginstanceparams_tag}
TTUISpiCreateDialogInstanceParams = tuispicreatedialoginstanceparams_tag;
TUISPICREATEDIALOGINSTANCEPARAMS = tuispicreatedialoginstanceparams_tag;
{$EXTERNALSYM TUISPICREATEDIALOGINSTANCEPARAMS}
{$ENDIF}
{$IFDEF TAPI30}
const
LINEQOSSTRUCT_KEY = DWORD(1280398155); // DWORD('LQSK')
{$EXTERNALSYM LINEQOSSTRUCT_KEY}
type
PLineQosServiceLevel = ^TLineQosServiceLevel;
LINEQOSSERVICELEVEL_tag = packed record
dwMediaMode: DWORD;
dwQOSServiceLevel: DWORD;
end;
{$EXTERNALSYM LINEQOSSERVICELEVEL_tag}
TLineQosServiceLevel = LINEQOSSERVICELEVEL_tag;
PLineCallQosInfo = ^TLineCallQosInfo;
LINECALLQOSINFO_tag = packed record
dwKey: DWORD;
dwTotalSize: DWORD;
dwQOSRequestType: DWORD;
case Longint of
0: (SetQosServiceLevel: packed record
dwNumServiceLevelEntries: DWORD;
LineQOSServiceLevel: array[0..0] of TLineQosServiceLevel;
end;);
end;
{$EXTERNALSYM LINECALLQOSINFO_tag}
TLineCallQosInfo = LINECALLQOSINFO_tag;
// {831CE2D6-83B5-11d1-BB5C-00C04FB6809F}
// EXTERN_C const CLSID TAPIPROTOCOL_PSTN;
// {831CE2D7-83B5-11d1-BB5C-00C04FB6809F}
// EXTERN_C const CLSID TAPIPROTOCOL_H323;
// {831CE2D8-83B5-11d1-BB5C-00C04FB6809F}
// EXTERN_C const CLSID TAPIPROTOCOL_Multicast;
{$ENDIF}
const
TSPI_MESSAGE_BASE = 500; // Lowest-numbered TSPI-specific message ID number
{$EXTERNALSYM TSPI_MESSAGE_BASE}
LINE_NEWCALL = TSPI_MESSAGE_BASE + 0;
{$EXTERNALSYM LINE_NEWCALL}
LINE_CALLDEVSPECIFIC = TSPI_MESSAGE_BASE + 1;
{$EXTERNALSYM LINE_CALLDEVSPECIFIC}
LINE_CALLDEVSPECIFICFEATURE = TSPI_MESSAGE_BASE + 2;
{$EXTERNALSYM LINE_CALLDEVSPECIFICFEATURE}
{$IFDEF TAPI20}
LINE_CREATEDIALOGINSTANCE = TSPI_MESSAGE_BASE + 3; // TSPI v2.0
{$EXTERNALSYM LINE_CREATEDIALOGINSTANCE}
LINE_SENDDIALOGINSTANCEDATA = TSPI_MESSAGE_BASE + 4; // TSPI v2.0
{$EXTERNALSYM LINE_SENDDIALOGINSTANCEDATA}
{$ENDIF}
{$IFDEF TAPI30}
LINE_SENDMSPDATA = TSPI_MESSAGE_BASE + 5; // TSPI v3.0
{$EXTERNALSYM LINE_SENDMSPDATA}
LINE_QOSINFO = TSPI_MESSAGE_BASE + 6; // TSPI v3.0
{$EXTERNALSYM LINE_QOSINFO}
{$ENDIF}
{$IFDEF TAPI20}
LINETSPIOPTION_NONREENTRANT = $00000001; // TSPI v2.0
{$EXTERNALSYM LINETSPIOPTION_NONREENTRANT}
{$ENDIF}
{$IFDEF TAPI20}
TUISPIDLL_OBJECT_LINEID = 1; // TSPI v2.0
{$EXTERNALSYM TUISPIDLL_OBJECT_LINEID}
TUISPIDLL_OBJECT_PHONEID = 2; // TSPI v2.0
{$EXTERNALSYM TUISPIDLL_OBJECT_PHONEID}
TUISPIDLL_OBJECT_PROVIDERID = 3; // TSPI v2.0
{$EXTERNALSYM TUISPIDLL_OBJECT_PROVIDERID}
TUISPIDLL_OBJECT_DIALOGINSTANCE = 4; // TSPI v2.0
{$EXTERNALSYM TUISPIDLL_OBJECT_DIALOGINSTANCE}
{$ENDIF}
{$IFDEF TAPI30}
PRIVATEOBJECT_NONE = $00000001; // TSPI v3.0
{$EXTERNALSYM PRIVATEOBJECT_NONE}
PRIVATEOBJECT_CALLID = $00000002; // TSPI v3.0
{$EXTERNALSYM PRIVATEOBJECT_CALLID}
PRIVATEOBJECT_LINE = $00000003; // TSPI v3.0
{$EXTERNALSYM PRIVATEOBJECT_LINE}
PRIVATEOBJECT_CALL = $00000004; // TSPI v3.0
{$EXTERNALSYM PRIVATEOBJECT_CALL}
PRIVATEOBJECT_PHONE = $00000005; // TSPI v3.0
{$EXTERNALSYM PRIVATEOBJECT_PHONE}
PRIVATEOBJECT_ADDRESS = $00000006; // TSPI v3.0
{$EXTERNALSYM PRIVATEOBJECT_ADDRESS}
LINEQOSREQUESTTYPE_SERVICELEVEL = $00000001; // TSPI v3.0
{$EXTERNALSYM LINEQOSREQUESTTYPE_SERVICELEVEL}
LINEQOSSERVICELEVEL_NEEDED = $00000001; // TSPI v3.0
{$EXTERNALSYM LINEQOSSERVICELEVEL_NEEDED}
LINEQOSSERVICELEVEL_IFAVAILABLE = $00000002; // TSPI v3.0
{$EXTERNALSYM LINEQOSSERVICELEVEL_IFAVAILABLE}
LINEQOSSERVICELEVEL_BESTEFFORT = $00000003; // TSPI v3.0
{$EXTERNALSYM LINEQOSSERVICELEVEL_BESTEFFORT}
LINEEQOSINFO_NOQOS = $00000001; // TSPI v3.0
{$EXTERNALSYM LINEEQOSINFO_NOQOS}
LINEEQOSINFO_ADMISSIONFAILURE = $00000002; // TSPI v3.0
{$EXTERNALSYM LINEEQOSINFO_ADMISSIONFAILURE}
LINEEQOSINFO_POLICYFAILURE = $00000003; // TSPI v3.0
{$EXTERNALSYM LINEEQOSINFO_POLICYFAILURE}
LINEEQOSINFO_GENERICERROR = $00000004; // TSPI v3.0
{$EXTERNALSYM LINEEQOSINFO_GENERICERROR}
{$ENDIF}
//
// The following function prototypes pertain
// to a service provider's core module
//
function TSPI_lineAccept(dwRequestID: TDrvRequestID; hdCall: HDRVCALL;
lpsUserUserInfo: LPCSTR; dwSize: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineAccept}
function TSPI_lineAddToConference(dwRequestID: TDrvRequestID;
hdConfCall, hdConsultCall: HDRVCALL): Longint; stdcall;
{$EXTERNALSYM TSPI_lineAddToConference}
function TSPI_lineAnswer(dwRequestID: TDrvRequestID; hdCall: HDRVCALL;
lpsUserUserInfo: LPCSTR; dwSize: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineAnswer}
{$IFDEF TAPI20}
function TSPI_lineBlindTransfer(dwRequestID: TDrvRequestID; hdCall: HDRVCALL;
lpszDestAddress: LPCWSTR; dwCountryCode: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineBlindTransfer}
{$ELSE}
function TSPI_lineBlindTransfer(dwRequestID: TDrvRequestID; hdCall: HDRVCALL;
lpszDestAddress: LPCSTR; dwCountryCode: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineBlindTransfer}
{$ENDIF}
function TSPI_lineClose(hdLine: HDRVLINE): Longint; stdcall;
{$EXTERNALSYM TSPI_lineClose}
function TSPI_lineCloseCall(hdCall: HDRVCALL): Longint; stdcall;
{$EXTERNALSYM TSPI_lineCloseCall}
function TSPI_lineCompleteCall(dwRequestID: TDrvRequestID; hdCall: HDRVCALL;
var dwCompletionID: DWORD;
dwCompletionMode, dwMessageID: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineCompleteCall}
function TSPI_lineCompleteTransfer(dwRequestID: TDrvRequestID; hdCall,
hdConsultCall: HDRVCALL; htConfCall: HTAPICALL; lphdConfCall: PHDRVCALL;
dwTransferMode: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineCompleteTransfer}
function TSPI_lineConditionalMediaDetection(hdLine: HDRVLINE; dwMediaModes: DWORD;
lcpCallParams: PLineCallParams): Longint; stdcall;
{$EXTERNALSYM TSPI_lineConditionalMediaDetection}
function TSPI_lineDevSpecific(dwRequestID: TDrvRequestID; hdLine: HDRVLINE;
dwAddressID: DWORD; hdCall: HDRVCALL; lpParams: Pointer;
dwSize: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineDevSpecific}
function TSPI_lineDevSpecificFeature(dwRequestID: TDrvRequestID; hdLine: HDRVLINE;
dwFeature: DWORD; lpParams: Pointer; dwSize: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineDevSpecificFeature}
{$IFDEF TAPI20}
function TSPI_lineDial(dwRequestID: TDrvRequestID; hdCall: HDRVCALL;
lpszDestAddress: LPCWSTR; dwCountryCode: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineDial}
{$ELSE}
function TSPI_lineDial(dwRequestID: TDrvRequestID; hdCall: HDRVCALL;
lpszDestAddress: LPCSTR; dwCountryCode: DWORD): Longint; stdcall;
{$ENDIF}
function TSPI_lineDrop(dwRequestID: TDrvRequestID; hdCall: HDRVCALL;
lpsUserUserInfo: LPCSTR; dwSize: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineDrop}
function TSPI_lineDropOnClose(hdCall: HDRVCALL): Longint; stdcall; // TSPI v1.4
{$EXTERNALSYM TSPI_lineDropOnClose}
function TSPI_lineDropNoOwner(hdCall: HDRVCALL): LongInt; stdcall; //TSPI v1.4
{$EXTERNALSYM TSPI_lineDropNoOwner}
function TSPI_lineForward(dwRequestID: TDrvRequestID; hdLine: HDRVLINE;
bAllAddresses, dwAddressID: DWORD; lflForwardList: PLineForwardList;
dwNumRingsNoAnswer: DWORD; htConsultCall: HTAPICALL; var hdConsultCall: HDRVCALL;
lcpCallParams: PLineCallParams): Longint; stdcall;
{$EXTERNALSYM TSPI_lineForward}
{$IFDEF TAPI20}
function TSPI_lineGatherDigits(hdCall: HDRVCALL; dwEndToEndID, dwDigitModes: DWORD;
lpsDigits: LPWSTR; dwNumDigits: DWORD; lpszTerminationDigits: LPCWSTR;
dwFirstDigitTimeout, dwInterDigitTimeout: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGatherDigits}
{$ELSE}
function TSPI_lineGatherDigits(hdCall: HDRVCALL; dwEndToEndID, dwDigitModes: DWORD;
lpsDigits: LPSTR; dwNumDigits: DWORD; lpszTerminationDigits: LPCSTR;
dwFirstDigitTimeout, dwInterDigitTimeout: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGatherDigits}
{$ENDIF}
{$IFDEF TAPI20}
function TSPI_lineGenerateDigits(hdCall: HDRVCALL; dwEndToEndID, dwDigitMode: DWORD;
lpszDigits: LPCWSTR; dwDuration: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGenerateDigits}
{$ELSE}
function TSPI_lineGenerateDigits(hdCall: HDRVCALL; dwEndToEndID, dwDigitMode: DWORD;
lpszDigits: LPCSTR; dwDuration: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGenerateDigits}
{$ENDIF}
function TSPI_lineGenerateTone(hdCall: HDRVCALL; dwEndToEndID, dwToneMode,
dwDuration, dwNumTones: DWORD; lgtTones: PLineGenerateTone): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGenerateTone}
function TSPI_lineGetAddressCaps(dwDeviceID, dwAddressID, dwTSPIVersion,
dwExtVersion: DWORD; lpAddressCaps: PLineAddressCaps): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGetAddressCaps}
{$IFDEF TAPI20}
function TSPI_lineGetAddressID(hdLine: HDRVLINE; var dwAddressID: DWORD;
dwAddressMode: DWORD; lpsAddress: LPCWSTR; dwSize: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGetAddressID}
{$ELSE}
function TSPI_lineGetAddressID(hdLine: HDRVLINE; var dwAddressID: DWORD;
dwAddressMode: DWORD; lpsAddress: LPCSTR; dwSize: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGetAddressID}
{$ENDIF}
function TSPI_lineGetAddressStatus(hdLine: HDRVLINE; dwAddressID: DWORD;
lasAddressStatus: PLineAddressStatus): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGetAddressStatus}
function TSPI_lineGetCallAddressID(hdCall: HDRVCALL;
var dwAddressID: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGetCallAddressID}
{$IFDEF TAPI30}
function TSPI_lineGetCallHubTracking(hdLine: HDRVLINE;
pTrackingInfo: PLineCallHubTrackingInfo): Longint; stdcall; // TSPI v3.0
{$EXTERNALSYM TSPI_lineGetCallHubTracking}
{$ENDIF}
{$IFDEF TAPI30}
function TSPI_lineGetCallIDs(hdCall: HDRVCALL; lpdwAddressID, lpdwCallID,
lpdwRelatedCallID: LPDWORD): Longint; stdcall; // TSPI v3.0
{$EXTERNALSYM TSPI_lineGetCallIDs}
{$ENDIF}
function TSPI_lineGetCallInfo(hdCall: HDRVCALL;
lciCallInfo: PLineCallInfo): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGetCallInfo}
function TSPI_lineGetCallStatus(hdCall: HDRVCALL;
lcsCallStatus: PLineCallStatus): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGetCallStatus}
function TSPI_lineGetDevCaps(dwDeviceID, dwTSPIVersion, dwExtVersion: DWORD;
lpLineDevCaps: PLineDevCaps): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGetDevCaps}
{$IFDEF TAPI20}
function TSPI_lineGetDevConfig(dwDeviceID: DWORD; lpDeviceConfig: PVarString;
lpszDeviceClass: LPCWSTR): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGetDevConfig}
{$ELSE}
function TSPI_lineGetDevConfig(dwDeviceID: DWORD; lpDeviceConfig: PVarString;
lpszDeviceClass: LPCSTR): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGetDevConfig}
{$ENDIF}
function TSPI_lineGetExtensionID(dwDeviceID, dwTSPIVersion: DWORD;
var lpExtensionID: TLineExtensionID): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGetExtensionID}
{$IFDEF TAPI20}
function TSPI_lineGetIcon(dwDeviceID: DWORD; lpszDeviceClass: LPCWSTR;
var hIcon: HIcon): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGetIcon}
{$ELSE}
function TSPI_lineGetIcon(dwDeviceID: DWORD; lpszDeviceClass: LPCSTR;
var hIcon: HIcon): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGetIcon}
{$ENDIF}
{$IFDEF TAPI20}
function TSPI_lineGetID(hdLine: HDRVLINE; dwAddressID: DWORD; hdCall: HDRVCALL;
dwSelect: DWORD; lpDeviceID: PVarString; lpszDeviceClass: LPCWSTR;
hTargetProcess: THandle): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGetID}
{$ELSE}
function TSPI_lineGetID(hdLine: HDRVLINE; dwAddressID: DWORD; hdCall: HDRVCALL;
dwSelect: DWORD; lpDeviceID: PVarString; lpszDeviceClass: LPCSTR;
hTargetProcess: THandle): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGetID}
{$ENDIF}
function TSPI_lineGetLineDevStatus(hdLine: HDRVLINE;
ldsLineDevStatus: PLineDevStatus): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGetLineDevStatus}
function TSPI_lineGetNumAddressIDs(hdLine: HDRVLINE;
var dwNumAddressIDs: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineGetNumAddressIDs}
function TSPI_lineHold(dwRequestID: TDrvRequestID;
hdCall: HDRVCALL): Longint; stdcall;
{$EXTERNALSYM TSPI_lineHold}
{$IFDEF TAPI20}
function TSPI_lineMakeCall(dwRequestID: TDrvRequestID; hdLine: HDRVLINE;
htCall: HTAPICALL; lphdCall: PHDRVCALL; lpszDestAddress: LPCWSTR;
dwCountryCode: DWORD; lpcCallParams: PLineCallParams): Longint; stdcall;
{$EXTERNALSYM TSPI_lineMakeCall}
{$ELSE}
function TSPI_lineMakeCall(dwRequestID: TDrvRequestID; hdLine: HDRVLINE;
htCall: HTAPICALL; lphdCall: PHDRVCALL; lpszDestAddress: LPCSTR;
dwCountryCode: DWORD; lpcCallParams: PLineCallParams): Longint; stdcall;
{$EXTERNALSYM TSPI_lineMakeCall}
{$ENDIF}
function TSPI_lineMonitorDigits(hdCall: HDRVCALL;
dwDigitModes: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineMonitorDigits}
function TSPI_lineMonitorMedia(hdCall: HDRVCALL;
dwMediaModes: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineMonitorMedia}
function TSPI_lineMonitorTones(hdCall: HDRVCALL; dwToneListID: DWORD;
lmtToneList: PLineMonitorTone; dwNumEntries: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineMonitorTones}
function TSPI_lineNegotiateExtVersion(dwDeviceID, dwTSPIVersion, dwLowVersion,
dwHighVersion: DWORD; var dwExtVersion: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineNegotiateExtVersion}
function TSPI_lineNegotiateTSPIVersion(dwDeviceID, dwLowVersion,
dwHighVersion: DWORD; var dwTSPIVersion: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineNegotiateTSPIVersion}
function TSPI_lineOpen(dwDeviceID: DWORD; htLine: HTAPILINE; var hdLine: HDRVLINE;
dwTSPIVersion: DWORD; lpfnEventProc: TLineEvent): Longint; stdcall;
{$EXTERNALSYM TSPI_lineOpen}
{$IFDEF TAPI20}
function TSPI_linePark(dwRequestID: TDrvRequestID; hdCall: HDRVCALL;
dwParkMode: DWORD; lpszDirAddress: LPCWSTR;
lpNonDirAddress: PVarString): Longint; stdcall;
{$EXTERNALSYM TSPI_linePark}
{$ELSE}
function TSPI_linePark(dwRequestID: TDrvRequestID; hdCall: HDRVCALL;
dwParkMode: DWORD; lpszDirAddress: LPCSTR;
lpNonDirAddress: PVarString): Longint; stdcall;
{$EXTERNALSYM TSPI_linePark}
{$ENDIF}
{$IFDEF TAPI20}
function TSPI_linePickup(dwRequestID: TDrvRequestID; hdLine: HDRVLINE;
dwAddressID: DWORD; htCall: HTAPICALL; var hdCall: HDRVCALL;
lpszDestAddress, lpszGroupID: LPCWSTR): Longint; stdcall;
{$EXTERNALSYM TSPI_linePickup}
{$ELSE}
function TSPI_linePickup(dwRequestID: TDrvRequestID; hdLine: HDRVLINE;
dwAddressID: DWORD; htCall: HTAPICALL; var hdCall: HDRVCALL;
lpszDestAddress, lpszGroupID: LPCSTR): Longint; stdcall;
{$EXTERNALSYM TSPI_linePickup}
{$ENDIF}
function TSPI_linePrepareAddToConference(dwRequestID: TDrvRequestID;
hdConfCall: HDRVCALL; htConsultCall: HTAPICALL; lphdConsultCall: PHDRVCALL;
lpcCallParams: PLineCallParams): Longint; stdcall;
{$EXTERNALSYM TSPI_linePrepareAddToConference}
{$IFDEF TAPI20}
function TSPI_lineRedirect(dwRequestID: TDrvRequestID; hdCall: HDRVCALL;
lpszDestAddress: LPCWSTR; dwCountryCode: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineRedirect}
{$ELSE}
function TSPI_lineRedirect(dwRequestID: TDrvRequestID; hdCall: HDRVCALL;
lpszDestAddress: LPCSTR; dwCountryCode: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineRedirect}
{$ENDIF}
function TSPI_lineReleaseUserUserInfo(dwRequestID: TDrvRequestID;
hdCall: HDRVCALL): Longint; stdcall; //TSPI v1.4
{$EXTERNALSYM TSPI_lineReleaseUserUserInfo}
function TSPI_lineRemoveFromConference(dwRequestID: TDrvRequestID;
hdCall: HDRVCALL): Longint; stdcall;
{$EXTERNALSYM TSPI_lineRemoveFromConference}
function TSPI_lineSecureCall(dwRequestID: TDrvRequestID;
hdCall: HDRVCALL): Longint; stdcall;
{$EXTERNALSYM TSPI_lineSecureCall}
function TSPI_lineSelectExtVersion(hdLine: HDRVLINE;
dwExtVersion: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineSelectExtVersion}
function TSPI_lineSendUserUserInfo(dwRequestID: TDrvRequestID; hdCall: HDRVCALL;
lpsUserUserInfo: LPCSTR; dwSize: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineSendUserUserInfo}
function TSPI_lineSetAppSpecific(hdCall: HDRVCALL;
dwAppSpecific: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineSetAppSpecific}
{$IFDEF TAPI20}
function TSPI_lineSetCallData(dwRequestID: TDrvRequestID; hdCall: HDRVCALL;
lpCallData: Pointer; dwSize: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineSetCallData}
{$ENDIF}
{$IFDEF TAPI30}
function TSPI_lineSetCallHubTracking(hdLine: HDRVLINE;
lpTrackingInfo: PLineCallHubTrackingInfo): Longint; stdcall; // TSPI v3.0
{$EXTERNALSYM TSPI_lineSetCallHubTracking}
{$ENDIF}
function TSPI_lineSetCallParams(dwRequestID: TDrvRequestID; hdCall: HDRVCALL;
dwBearerMode, dwMinRate, dwMaxRate: DWORD;
ldpDialParams: PLineDialParams): Longint; stdcall;
{$EXTERNALSYM TSPI_lineSetCallParams}
{$IFDEF TAPI20}
function TSPI_lineSetCallQualityOfService(dwRequestID: TDrvRequestID;
hdCall: HDRVCALL; lpSendingFlowspec: Pointer; dwSendingFlowspecSize: DWORD;
lpReceivingFlowspec: Pointer; dwReceivingFlowspecSize: DWORD): Longint; stdcall;
// TSPI v2.0
{$EXTERNALSYM TSPI_lineSetCallQualityOfService}
function TSPI_lineSetCallTreatment(dwRequestID: TDrvRequestID; hdCall: HDRVCALL;
dwTreatment: DWORD): Longint; stdcall; // TSPI v2.0
{$EXTERNALSYM TSPI_lineSetCallTreatment}
{$ENDIF}
function TSPI_lineSetCurrentLocation(dwLocation: DWORD): Longint; stdcall; // TSPI v1.4
{$EXTERNALSYM TSPI_lineSetCurrentLocation}
function TSPI_lineSetDefaultMediaDetection(hdLine: HDRVLINE;
wMediaModes: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineSetDefaultMediaDetection}
{$IFDEF TAPI20}
function TSPI_lineSetDevConfig(dwDeviceID: DWORD; lpDeviceConfig: Pointer;
dwSize: DWORD; lpszDeviceClass: LPCWSTR): Longint; stdcall;
{$EXTERNALSYM TSPI_lineSetDevConfig}
{$ELSE}
function TSPI_lineSetDevConfig(dwDeviceID: DWORD; lpDeviceConfig: Pointer;
dwSize: DWORD; lpszDeviceClass: LPCSTR): Longint; stdcall;
{$EXTERNALSYM TSPI_lineSetDevConfig}
{$ENDIF}
{$IFDEF TAPI20}
function TSPI_lineSetLineDevStatus(dwRequestID: TDrvRequestID; hdLine: HDRVLINE;
dwStatusToChange, fStatus: DWORD): Longint; stdcall; // TSPI v2.0
{$EXTERNALSYM TSPI_lineSetLineDevStatus}
{$ENDIF}
function TSPI_lineSetMediaControl(hdLine: HDRVLINE; dwAddressID: DWORD;
hdCall: HDRVCALL; dwSelect: DWORD; lmcdDigitList: PLineMediaControlDigit;
dwDigitNumEntries: DWORD; lmcmMediaList: PLineMediaControlMedia;
dwMediaNumEntries: DWORD; lmctToneList: PLineMediaControlTone;
dwToneNumEntries: DWORD; lmccsCallStateList: PLineMediaControlCallState;
dwCallStateNumEntries: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineSetMediaControl}
function TSPI_lineSetMediaMode(hdCall: HDRVCALL;
dwMediaMode: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineSetMediaMode}
function TSPI_lineSetStatusMessages(hdLine: HDRVLINE; dwLineStates,
dwAddressStates: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineSetStatusMessages}
function TSPI_lineSetTerminal(dwRequestID: TDrvRequestID; hdLine: HDRVLINE;
dwAddressID: DWORD; hdCall: HDRVCALL; dwSelect, dwTerminalModes, dwTerminalID,
bEnable: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineSetTerminal}
function TSPI_lineSetupConference(dwRequestID: TDrvRequestID; hdCall: HDRVCALL;
hdLine: HDRVLINE; htConfCall: HTAPICALL; lphdConfCall: PHDRVCALL;
htConsultCall: HTAPICALL; lphdConsultCall: PHDRVCALL; dwNumParties: DWORD;
lcpCallParams: PLineCallParams): Longint; stdcall;
{$EXTERNALSYM TSPI_lineSetupConference}
function TSPI_lineSetupTransfer(dwRequestID: TDrvRequestID; hdCall: HDRVCALL;
htConsultCall: HTAPICALL; lphdConsultCall: PHDRVCALL;
lcpCallParams: PLineCallParams): Longint; stdcall;
{$EXTERNALSYM TSPI_lineSetupTransfer}
function TSPI_lineSwapHold(dwRequestID: TDrvRequestID; hdActiveCall,
hdHeldCall: HDRVCALL): Longint; stdcall;
{$EXTERNALSYM TSPI_lineSwapHold}
function TSPI_lineUncompleteCall(dwRequestID: TDrvRequestID; hdLine: HDRVLINE;
dwCompletionID: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineUncompleteCall}
function TSPI_lineUnhold(dwRequestID: TDrvRequestID;
hdCall: HDRVCALL): Longint; stdcall;
{$EXTERNALSYM TSPI_lineUnhold}
{$IFDEF TAPI20}
function TSPI_lineUnpark(dwRequestID: TDrvRequestID; hdLine: HDRVLINE;
dwAddressID: DWORD; htCall: HTAPICALL; lphdCall: PHDRVCALL;
lpszDestAddress: LPCWSTR): Longint; stdcall;
{$EXTERNALSYM TSPI_lineUnpark}
{$ELSE}
function TSPI_lineUnpark(dwRequestID: TDrvRequestID; hdLine: HDRVLINE;
dwAddressID: DWORD; htCall: HTAPICALL; lphdCall: PHDRVCALL;
lpszDestAddress: LPCSTR): Longint; stdcall;
{$EXTERNALSYM TSPI_lineUnpark}
{$ENDIF}
function TSPI_phoneClose(hdPhone: HDRVPHONE): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneClose}
function TSPI_phoneDevSpecific(dwRequestID: TDrvRequestID; hdPhone: HDRVPHONE;
lpParams: Pointer; dwSize: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneDevSpecific}
function TSPI_phoneGetButtonInfo(hdPhone: HDRVPHONE; dwButtonLampID: DWORD;
pbiButtonInfo: PPhoneButtonInfo): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneGetButtonInfo}
function TSPI_phoneGetData(hdPhone: HDRVPHONE; dwDataID: DWORD; lpData: Pointer;
dwSize: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneGetData}
function TSPI_phoneGetDevCaps(dwDeviceID, dwTSPIVersion, dwExtVersion: DWORD;
pcPhoneCaps: PPhoneCaps): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneGetDevCaps}
function TSPI_phoneGetDisplay(hdPhone: HDRVPHONE;
lpDisplay: PVarString): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneGetDisplay}
function TSPI_phoneGetExtensionID(dwDeviceID, dwTSPIVersion: DWORD;
var lpExtensionID: TPhoneExtensionID): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneGetExtensionID}
function TSPI_phoneGetGain(hdPhone: HDRVPHONE; dwHookSwitchDev: DWORD;
var dwGain: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneGetGain}
function TSPI_phoneGetHookSwitch(hdPhone: HDRVPHONE;
var dwHookSwitchDevs: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneGetHookSwitch}
{$IFDEF TAPI20}
function TSPI_phoneGetIcon(dwDeviceID: DWORD; lpszDeviceClass: LPCWSTR;
var hIcon: HICON): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneGetIcon}
{$ELSE}
function TSPI_phoneGetIcon(dwDeviceID: DWORD; lpszDeviceClass: LPCSTR;
var hIcon: HICON): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneGetIcon}
{$ENDIF}
{$IFDEF TAPI20}
function TSPI_phoneGetID(hdPhone: HDRVPHONE; lpDeviceID: PVarString;
lpszDeviceClass: LPCWSTR; hTargetProcess: THandle): Longint; stdcall; {// TSPI v2.0}
{$EXTERNALSYM TSPI_phoneGetID}
{$ELSE}
function TSPI_phoneGetID(hdPhone: HDRVPHONE; lpDeviceID: PVarString;
lpszDeviceClass: LPCSTR; hTargetProcess: THandle): Longint; stdcall; {// TSPI v2.0}
{$EXTERNALSYM TSPI_phoneGetID}
{$ENDIF}
function TSPI_phoneGetLamp(hdPhone: HDRVPHONE; dwButtonLampID: DWORD;
var dwLampMode: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneGetLamp}
function TSPI_phoneGetRing(hdPhone: HDRVPHONE; var dwRingMode,
dwVolume: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneGetRing}
function TSPI_phoneGetStatus(hdPhone: HDRVPHONE;
psPhoneStatus: PPhoneStatus): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneGetStatus}
function TSPI_phoneGetVolume(hdPhone: HDRVPHONE; dwHookSwitchDev: DWORD;
var dwVolume: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneGetVolume}
function TSPI_phoneNegotiateExtVersion(dwDeviceID, dwTSPIVersion, dwLowVersion,
dwHighVersion: DWORD; var dwExtVersion: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneNegotiateExtVersion}
function TSPI_phoneNegotiateTSPIVersion(dwDeviceID, dwLowVersion,
dwHighVersion: DWORD; var dwTSPIVersion: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneNegotiateTSPIVersion}
function TSPI_phoneOpen(dwDeviceID: DWORD; htPhone: HTAPIPHONE;
var hdPhone: HDRVPHONE; dwTSPIVersion: DWORD;
lpfnEventProc: TPhoneEvent): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneOpen}
function TSPI_phoneSelectExtVersion(hdPhone: HDRVPHONE;
dwExtVersion: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneSelectExtVersion}
function TSPI_phoneSetButtonInfo(dwRequestID: TDrvRequestID; hdPhone: HDRVPHONE;
dwButtonLampID: DWORD; pbiButtonInfo: PPhoneButtonInfo): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneSetButtonInfo}
function TSPI_phoneSetData(dwRequestID: TDrvRequestID; hdPhone: HDRVPHONE;
dwDataID: DWORD; lpData: Pointer; dwSize: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneSetData}
{$IFDEF TAPI20}
function TSPI_phoneSetDisplay(dwRequestID: TDrvRequestID; hdPhone: HDRVPHONE;
dwRow, dwColumn: DWORD; lpsDisplay: LPCWSTR; dwSize: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneSetDisplay}
{$ELSE}
function TSPI_phoneSetDisplay(dwRequestID: TDrvRequestID; hdPhone: HDRVPHONE;
dwRow, dwColumn: DWORD; lpsDisplay: LPCSTR; dwSize: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneSetDisplay}
{$ENDIF}
function TSPI_phoneSetGain(dwRequestID: TDrvRequestID; hdPhone: HDRVPHONE;
dwHookSwitchDev, dwGain: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneSetGain}
function TSPI_phoneSetHookSwitch(dwRequestID: TDrvRequestID; hdPhone: HDRVPHONE;
dwHookSwitchDevs, dwHookSwitchMode: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneSetHookSwitch}
function TSPI_phoneSetLamp(dwRequestID: TDrvRequestID; hdPhone: HDRVPHONE;
dwButtonLampID, dwLampMode: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneSetLamp}
function TSPI_phoneSetRing(dwRequestID: TDrvRequestID; hdPhone: HDRVPHONE;
dwRingMode, dwVolume: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneSetRing}
function TSPI_phoneSetStatusMessages(hdPhone: HDRVPHONE; dwPhoneStates,
dwButtonModes, dwButtonStates: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneSetStatusMessages}
function TSPI_phoneSetVolume(dwRequestID: TDrvRequestID; hdPhone: HDRVPHONE;
dwHookSwitchDev, dwVolume: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneSetVolume}
function TSPI_providerConfig(hwndOwner: HWND;
dwPermanentProviderID: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_providerConfig}
function TSPI_providerCreateLineDevice(dwTempID,
dwDeviceID: DWORD): Longint; stdcall; // TSPI v1.4
{$EXTERNALSYM TSPI_providerCreateLineDevice}
function TSPI_providerCreatePhoneDevice(dwTempID,
dwDeviceID: DWORD): Longint; stdcall; // TSPI v1.4
{$EXTERNALSYM TSPI_providerCreatePhoneDevice}
function TSPI_providerEnumDevices(dwPermanentProviderID: DWORD; lpdwNumLines,
lpdwNumPhones: LPDWORD; hProvider: HPROVIDER; lpfnLineCreateProc: TLineEvent;
lpfnPhoneCreateProc: TPhoneEvent): Longint; stdcall; // TSPI v1.4
{$EXTERNALSYM TSPI_providerEnumDevices}
{$IFDEF TAPI20}
function TSPI_providerFreeDialogInstance(hdDlgInst: HDRVDIALOGINSTANCE): Longint; stdcall; // TSPI v2.0
{$EXTERNALSYM TSPI_providerFreeDialogInstance}
function TSPI_providerGenericDialogData(dwObjectID, dwObjectType: DWORD;
lpParams: Pointer; dwSize: DWORD): Longint; stdcall; // TSPI v2.0
{$EXTERNALSYM TSPI_providerGenericDialogData}
{$ENDIF}
function TSPI_providerInit(dwTSPIVersion, dwPermanentProviderID,
dwLineDeviceIDBase, dwPhoneDeviceIDBase, dwNumLines, dwNumPhones: DWORD;
{$IFDEF TAPI20}
lpfnCompletionProc: TASyncCompletion; var lpdwTSPIOptions: DWORD): Longint; stdcall;
{$ELSE}
lpfnCompletionProc: TASyncCompletion): Longint; stdcall;
{$ENDIF}
{$EXTERNALSYM TSPI_providerInit}
function TSPI_providerInstall(hwndOwner: HWND;
dwPermanentProviderID: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_providerInstall}
function TSPI_providerRemove(hwndOwner: HWND;
dwPermanentProviderID: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_providerRemove}
{$IFDEF TAPI20}
function TSPI_providerShutdown(dwTSPIVersion,
dwPermanentProviderID: DWORD): Longint; stdcall; // TSPI v2.0
{$ELSE}
function TSPI_providerShutdown(dwTSPIVersion: DWORD): Longint; stdcall; // TSPI v2.0
{$ENDIF}
{$EXTERNALSYM TSPI_providerShutdown}
{$IFDEF TAPI20}
function TSPI_providerUIIdentify(lpszUIDLLName: LPWSTR): Longint; stdcall; // TSPI v2.0
{$EXTERNALSYM TSPI_providerUIIdentify}
{$ENDIF}
{$IFDEF TAPI30}
function TSPI_lineMSPIdentify(dwDeviceID: DWORD; pCLSID: PGUID): Longint; stdcall;
{$EXTERNALSYM TSPI_lineMSPIdentify}
function TSPI_lineCloseMSPInstance(hdMSPLine: HDRVMSPLINE): Longint; stdcall;
{$EXTERNALSYM TSPI_lineCloseMSPInstance}
function TSPI_lineReceiveMSPData(hdLine: HDRVLINE; hdCall: HDRVCALL;
hdMSPLine: HDRVMSPLINE; pBuffer: Pointer; dwSize: DWORD): Longint; stdcall;
{$EXTERNALSYM TSPI_lineReceiveMSPData}
{$ENDIF}
{$IFDEF TAPI20}
//
// The following function prototypes pertain
// to a service provider's UI module
//
function TUISPI_lineConfigDialog(lpfnUIDLLCallback: TTUISpiDllCallback;
dwDeviceID: DWORD; hwndOwner: HWND;
lpszDeviceClass: LPCWSTR): Longint; stdcall; // TSPI v2.0
{$EXTERNALSYM TUISPI_lineConfigDialog}
function TUISPI_lineConfigDialogEdit(lpfnUIDLLCallback: TTUISpiDllCallback;
dwDeviceID: DWORD; hwndOwner: HWND; lpszDeviceClass: LPCWSTR;
lpDeviceConfigIn: Pointer; dwSize: DWORD;
lpDeviceConfigOut: PVarString): Longint; stdcall; // TSPI v2.0
{$EXTERNALSYM TUISPI_lineConfigDialogEdit}
function TUISPI_phoneConfigDialog(lpfnUIDLLCallback: TUISpiDllCallback;
dwDeviceID: DWORD; hwndOwner: HWND;
lpszDeviceClass: LPCWSTR): Longint; stdcall; // TSPI v2.0
{$EXTERNALSYM TUISPI_phoneConfigDialog}
function TUISPI_providerConfig(lpfnUIDLLCallback: TUISpiDllCallback;
hwndOwner: HWND; dwPermanentProviderID: DWORD): Longint; stdcall; // TSPI v2.0
{$EXTERNALSYM TUISPI_providerConfig}
function TUISPI_providerGenericDialog(lpfnUIDLLCallback: TUISpiDllCallback;
htDlgInst: HTapiDialogInstance; lpParams: Pointer; dwSize: DWORD;
hEvent: THandle): Longint; stdcall; // TSPI v2.0
{$EXTERNALSYM TUISPI_providerGenericDialog}
function TUISPI_providerGenericDialogData(htDlgInst: HTapiDialogInstance;
lpParams: Pointer; dwSize: DWORD): Longint; stdcall; // TSPI v2.0
{$EXTERNALSYM TUISPI_providerGenericDialogData}
function TUISPI_providerInstall(lpfnUIDLLCallback: TUISpiDllCallback;
hwndOwner: HWND;
dwPermanentProviderID: DWORD): Longint; stdcall; // TSPI v2.0
{$EXTERNALSYM TUISPI_providerInstall}
function TUISPI_providerRemove(lpfnUIDLLCallback: TUISpiDllCallback;
hwndOwner: HWND; dwPermanentProviderID: DWORD): Longint; stdcall; // TSPI v2.0
{$EXTERNALSYM TUISPI_providerRemove}
{$ELSE}
//
// The following were obsoleted by the above (but are needed to build 1.4 SPs)
//
function TSPI_lineConfigDialog(dwDeviceID: DWORD; hwndOwner: HWND;
lpszDeviceClass: LPCSTR): Longint; stdcall;
{$EXTERNALSYM TSPI_lineConfigDialog}
function TSPI_lineConfigDialogEdit(dwDeviceID: DWORD; hwndOwner: HWND;
lpszDeviceClass: LPCSTR; const lpDeviceConfigIn: Pointer; dwSize: DWORD;
lpDeviceConfigOut: PVarString): Longint; stdcall;
{$EXTERNALSYM TSPI_lineConfigDialogEdit}
function TSPI_phoneConfigDialog(dwDeviceID: DWORD; hwndOwner: HWND;
lpszDeviceClass: LPCSTR): Longint; stdcall;
{$EXTERNALSYM TSPI_phoneConfigDialog}
{$ENDIF}
{$IFNDEF TAPI20}
//
// The following macros are the ordinal numbers of the exported tspi functions
//
const
TSPI_PROC_BASE = 500;
{$EXTERNALSYM TSPI_PROC_BASE}
TSPI_LINEACCEPT = (TSPI_PROC_BASE + 0);
{$EXTERNALSYM TSPI_LINEACCEPT}
TSPI_LINEADDTOCONFERENCE = (TSPI_PROC_BASE + 1);
{$EXTERNALSYM TSPI_LINEADDTOCONFERENCE}
TSPI_LINEANSWER = (TSPI_PROC_BASE + 2);
{$EXTERNALSYM TSPI_LINEANSWER}
TSPI_LINEBLINDTRANSFER = (TSPI_PROC_BASE + 3);
{$EXTERNALSYM TSPI_LINEBLINDTRANSFER}
TSPI_LINECLOSE = (TSPI_PROC_BASE + 4);
{$EXTERNALSYM TSPI_LINECLOSE}
TSPI_LINECLOSECALL = (TSPI_PROC_BASE + 5);
{$EXTERNALSYM TSPI_LINECLOSECALL}
TSPI_LINECOMPLETECALL = (TSPI_PROC_BASE + 6);
{$EXTERNALSYM TSPI_LINECOMPLETECALL}
TSPI_LINECOMPLETETRANSFER = (TSPI_PROC_BASE + 7);
{$EXTERNALSYM TSPI_LINECOMPLETETRANSFER}
TSPI_LINECONDITIONALMEDIADETECTION = (TSPI_PROC_BASE + 8);
{$EXTERNALSYM TSPI_LINECONDITIONALMEDIADETECTION}
TSPI_LINECONFIGDIALOG = (TSPI_PROC_BASE + 9);
{$EXTERNALSYM TSPI_LINECONFIGDIALOG}
TSPI_LINEDEVSPECIFIC = (TSPI_PROC_BASE + 10);
{$EXTERNALSYM TSPI_LINEDEVSPECIFIC}
TSPI_LINEDEVSPECIFICFEATURE = (TSPI_PROC_BASE + 11);
{$EXTERNALSYM TSPI_LINEDEVSPECIFICFEATURE}
TSPI_LINEDIAL = (TSPI_PROC_BASE + 12);
{$EXTERNALSYM TSPI_LINEDIAL}
TSPI_LINEDROP = (TSPI_PROC_BASE + 13);
{$EXTERNALSYM TSPI_LINEDROP}
TSPI_LINEFORWARD = (TSPI_PROC_BASE + 14);
{$EXTERNALSYM TSPI_LINEFORWARD}
TSPI_LINEGATHERDIGITS = (TSPI_PROC_BASE + 15);
{$EXTERNALSYM TSPI_LINEGATHERDIGITS}
TSPI_LINEGENERATEDIGITS = (TSPI_PROC_BASE + 16);
{$EXTERNALSYM TSPI_LINEGENERATEDIGITS}
TSPI_LINEGENERATETONE = (TSPI_PROC_BASE + 17);
{$EXTERNALSYM TSPI_LINEGENERATETONE}
TSPI_LINEGETADDRESSCAPS = (TSPI_PROC_BASE + 18);
{$EXTERNALSYM TSPI_LINEGETADDRESSCAPS}
TSPI_LINEGETADDRESSID = (TSPI_PROC_BASE + 19);
{$EXTERNALSYM TSPI_LINEGETADDRESSID}
TSPI_LINEGETADDRESSSTATUS = (TSPI_PROC_BASE + 20);
{$EXTERNALSYM TSPI_LINEGETADDRESSSTATUS}
TSPI_LINEGETCALLADDRESSID = (TSPI_PROC_BASE + 21);
{$EXTERNALSYM TSPI_LINEGETCALLADDRESSID}
TSPI_LINEGETCALLINFO = (TSPI_PROC_BASE + 22);
{$EXTERNALSYM TSPI_LINEGETCALLINFO}
TSPI_LINEGETCALLSTATUS = (TSPI_PROC_BASE + 23);
{$EXTERNALSYM TSPI_LINEGETCALLSTATUS}
TSPI_LINEGETDEVCAPS = (TSPI_PROC_BASE + 24);
{$EXTERNALSYM TSPI_LINEGETDEVCAPS}
TSPI_LINEGETDEVCONFIG = (TSPI_PROC_BASE + 25);
{$EXTERNALSYM TSPI_LINEGETDEVCONFIG}
TSPI_LINEGETEXTENSIONID = (TSPI_PROC_BASE + 26);
{$EXTERNALSYM TSPI_LINEGETEXTENSIONID}
TSPI_LINEGETICON = (TSPI_PROC_BASE + 27);
{$EXTERNALSYM TSPI_LINEGETICON}
TSPI_LINEGETID = (TSPI_PROC_BASE + 28);
{$EXTERNALSYM TSPI_LINEGETID}
TSPI_LINEGETLINEDEVSTATUS = (TSPI_PROC_BASE + 29);
{$EXTERNALSYM TSPI_LINEGETLINEDEVSTATUS}
TSPI_LINEGETNUMADDRESSIDS = (TSPI_PROC_BASE + 30);
{$EXTERNALSYM TSPI_LINEGETNUMADDRESSIDS}
TSPI_LINEHOLD = (TSPI_PROC_BASE + 31);
{$EXTERNALSYM TSPI_LINEHOLD}
TSPI_LINEMAKECALL = (TSPI_PROC_BASE + 32);
{$EXTERNALSYM TSPI_LINEMAKECALL}
TSPI_LINEMONITORDIGITS = (TSPI_PROC_BASE + 33);
{$EXTERNALSYM TSPI_LINEMONITORDIGITS}
TSPI_LINEMONITORMEDIA = (TSPI_PROC_BASE + 34);
{$EXTERNALSYM TSPI_LINEMONITORMEDIA}
TSPI_LINEMONITORTONES = (TSPI_PROC_BASE + 35);
{$EXTERNALSYM TSPI_LINEMONITORTONES}
TSPI_LINENEGOTIATEEXTVERSION = (TSPI_PROC_BASE + 36);
{$EXTERNALSYM TSPI_LINENEGOTIATEEXTVERSION}
TSPI_LINENEGOTIATETSPIVERSION = (TSPI_PROC_BASE + 37);
{$EXTERNALSYM TSPI_LINENEGOTIATETSPIVERSION}
TSPI_LINEOPEN = (TSPI_PROC_BASE + 38);
{$EXTERNALSYM TSPI_LINEOPEN}
TSPI_LINEPARK = (TSPI_PROC_BASE + 39);
{$EXTERNALSYM TSPI_LINEPARK}
TSPI_LINEPICKUP = (TSPI_PROC_BASE + 40);
{$EXTERNALSYM TSPI_LINEPICKUP}
TSPI_LINEPREPAREADDTOCONFERENCE = (TSPI_PROC_BASE + 41);
{$EXTERNALSYM TSPI_LINEPREPAREADDTOCONFERENCE}
TSPI_LINEREDIRECT = (TSPI_PROC_BASE + 42);
{$EXTERNALSYM TSPI_LINEREDIRECT}
TSPI_LINEREMOVEFROMCONFERENCE = (TSPI_PROC_BASE + 43);
{$EXTERNALSYM TSPI_LINEREMOVEFROMCONFERENCE}
TSPI_LINESECURECALL = (TSPI_PROC_BASE + 44);
{$EXTERNALSYM TSPI_LINESECURECALL}
TSPI_LINESELECTEXTVERSION = (TSPI_PROC_BASE + 45);
{$EXTERNALSYM TSPI_LINESELECTEXTVERSION}
TSPI_LINESENDUSERUSERINFO = (TSPI_PROC_BASE + 46);
{$EXTERNALSYM TSPI_LINESENDUSERUSERINFO}
TSPI_LINESETAPPSPECIFIC = (TSPI_PROC_BASE + 47);
{$EXTERNALSYM TSPI_LINESETAPPSPECIFIC}
TSPI_LINESETCALLPARAMS = (TSPI_PROC_BASE + 48);
{$EXTERNALSYM TSPI_LINESETCALLPARAMS}
TSPI_LINESETDEFAULTMEDIADETECTION = (TSPI_PROC_BASE + 49);
{$EXTERNALSYM TSPI_LINESETDEFAULTMEDIADETECTION}
TSPI_LINESETDEVCONFIG = (TSPI_PROC_BASE + 50);
{$EXTERNALSYM TSPI_LINESETDEVCONFIG}
TSPI_LINESETMEDIACONTROL = (TSPI_PROC_BASE + 51);
{$EXTERNALSYM TSPI_LINESETMEDIACONTROL}
TSPI_LINESETMEDIAMODE = (TSPI_PROC_BASE + 52);
{$EXTERNALSYM TSPI_LINESETMEDIAMODE}
TSPI_LINESETSTATUSMESSAGES = (TSPI_PROC_BASE + 53);
{$EXTERNALSYM TSPI_LINESETSTATUSMESSAGES}
TSPI_LINESETTERMINAL = (TSPI_PROC_BASE + 54);
{$EXTERNALSYM TSPI_LINESETTERMINAL}
TSPI_LINESETUPCONFERENCE = (TSPI_PROC_BASE + 55);
{$EXTERNALSYM TSPI_LINESETUPCONFERENCE}
TSPI_LINESETUPTRANSFER = (TSPI_PROC_BASE + 56);
{$EXTERNALSYM TSPI_LINESETUPTRANSFER}
TSPI_LINESWAPHOLD = (TSPI_PROC_BASE + 57);
{$EXTERNALSYM TSPI_LINESWAPHOLD}
TSPI_LINEUNCOMPLETECALL = (TSPI_PROC_BASE + 58);
{$EXTERNALSYM TSPI_LINEUNCOMPLETECALL}
TSPI_LINEUNHOLD = (TSPI_PROC_BASE + 59);
{$EXTERNALSYM TSPI_LINEUNHOLD}
TSPI_LINEUNPARK = (TSPI_PROC_BASE + 60);
{$EXTERNALSYM TSPI_LINEUNPARK}
TSPI_PHONECLOSE = (TSPI_PROC_BASE + 61);
{$EXTERNALSYM TSPI_PHONECLOSE}
TSPI_PHONECONFIGDIALOG = (TSPI_PROC_BASE + 62);
{$EXTERNALSYM TSPI_PHONECONFIGDIALOG}
TSPI_PHONEDEVSPECIFIC = (TSPI_PROC_BASE + 63);
{$EXTERNALSYM TSPI_PHONEDEVSPECIFIC}
TSPI_PHONEGETBUTTONINFO = (TSPI_PROC_BASE + 64);
{$EXTERNALSYM TSPI_PHONEGETBUTTONINFO}
TSPI_PHONEGETDATA = (TSPI_PROC_BASE + 65);
{$EXTERNALSYM TSPI_PHONEGETDATA}
TSPI_PHONEGETDEVCAPS = (TSPI_PROC_BASE + 66);
{$EXTERNALSYM TSPI_PHONEGETDEVCAPS}
TSPI_PHONEGETDISPLAY = (TSPI_PROC_BASE + 67);
{$EXTERNALSYM TSPI_PHONEGETDISPLAY}
TSPI_PHONEGETEXTENSIONID = (TSPI_PROC_BASE + 68);
{$EXTERNALSYM TSPI_PHONEGETEXTENSIONID}
TSPI_PHONEGETGAIN = (TSPI_PROC_BASE + 69);
{$EXTERNALSYM TSPI_PHONEGETGAIN}
TSPI_PHONEGETHOOKSWITCH = (TSPI_PROC_BASE + 70);
{$EXTERNALSYM TSPI_PHONEGETHOOKSWITCH}
TSPI_PHONEGETICON = (TSPI_PROC_BASE + 71);
{$EXTERNALSYM TSPI_PHONEGETICON}
TSPI_PHONEGETID = (TSPI_PROC_BASE + 72);
{$EXTERNALSYM TSPI_PHONEGETID}
TSPI_PHONEGETLAMP = (TSPI_PROC_BASE + 73);
{$EXTERNALSYM TSPI_PHONEGETLAMP}
TSPI_PHONEGETRING = (TSPI_PROC_BASE + 74);
{$EXTERNALSYM TSPI_PHONEGETRING}
TSPI_PHONEGETSTATUS = (TSPI_PROC_BASE + 75);
{$EXTERNALSYM TSPI_PHONEGETSTATUS}
TSPI_PHONEGETVOLUME = (TSPI_PROC_BASE + 76);
{$EXTERNALSYM TSPI_PHONEGETVOLUME}
TSPI_PHONENEGOTIATEEXTVERSION = (TSPI_PROC_BASE + 77);
{$EXTERNALSYM TSPI_PHONENEGOTIATEEXTVERSION}
TSPI_PHONENEGOTIATETSPIVERSION = (TSPI_PROC_BASE + 78);
{$EXTERNALSYM TSPI_PHONENEGOTIATETSPIVERSION}
TSPI_PHONEOPEN = (TSPI_PROC_BASE + 79);
{$EXTERNALSYM TSPI_PHONEOPEN}
TSPI_PHONESELECTEXTVERSION = (TSPI_PROC_BASE + 80);
{$EXTERNALSYM TSPI_PHONESELECTEXTVERSION}
TSPI_PHONESETBUTTONINFO = (TSPI_PROC_BASE + 81);
{$EXTERNALSYM TSPI_PHONESETBUTTONINFO}
TSPI_PHONESETDATA = (TSPI_PROC_BASE + 82);
{$EXTERNALSYM TSPI_PHONESETDATA}
TSPI_PHONESETDISPLAY = (TSPI_PROC_BASE + 83);
{$EXTERNALSYM TSPI_PHONESETDISPLAY}
TSPI_PHONESETGAIN = (TSPI_PROC_BASE + 84);
{$EXTERNALSYM TSPI_PHONESETGAIN}
TSPI_PHONESETHOOKSWITCH = (TSPI_PROC_BASE + 85);
{$EXTERNALSYM TSPI_PHONESETHOOKSWITCH}
TSPI_PHONESETLAMP = (TSPI_PROC_BASE + 86);
{$EXTERNALSYM TSPI_PHONESETLAMP}
TSPI_PHONESETRING = (TSPI_PROC_BASE + 87);
{$EXTERNALSYM TSPI_PHONESETRING}
TSPI_PHONESETSTATUSMESSAGES = (TSPI_PROC_BASE + 88);
{$EXTERNALSYM TSPI_PHONESETSTATUSMESSAGES}
TSPI_PHONESETVOLUME = (TSPI_PROC_BASE + 89);
{$EXTERNALSYM TSPI_PHONESETVOLUME}
TSPI_PROVIDERCONFIG = (TSPI_PROC_BASE + 90);
{$EXTERNALSYM TSPI_PROVIDERCONFIG}
TSPI_PROVIDERINIT = (TSPI_PROC_BASE + 91);
{$EXTERNALSYM TSPI_PROVIDERINIT}
TSPI_PROVIDERINSTALL = (TSPI_PROC_BASE + 92);
{$EXTERNALSYM TSPI_PROVIDERINSTALL}
TSPI_PROVIDERREMOVE = (TSPI_PROC_BASE + 93);
{$EXTERNALSYM TSPI_PROVIDERREMOVE}
TSPI_PROVIDERSHUTDOWN = (TSPI_PROC_BASE + 94);
{$EXTERNALSYM TSPI_PROVIDERSHUTDOWN}
TSPI_PROVIDERENUMDEVICES = (TSPI_PROC_BASE + 95); // TSPI v1.4
{$EXTERNALSYM TSPI_PROVIDERENUMDEVICES}
TSPI_LINEDROPONCLOSE = (TSPI_PROC_BASE + 96); // TSPI v1.4
{$EXTERNALSYM TSPI_LINEDROPONCLOSE}
TSPI_LINEDROPNOOWNER = (TSPI_PROC_BASE + 97); // TSPI v1.4
{$EXTERNALSYM TSPI_LINEDROPNOOWNER}
TSPI_PROVIDERCREATELINEDEVICE = (TSPI_PROC_BASE + 98); // TSPI v1.4
{$EXTERNALSYM TSPI_PROVIDERCREATELINEDEVICE}
TSPI_PROVIDERCREATEPHONEDEVICE = (TSPI_PROC_BASE + 99); // TSPI v1.4
{$EXTERNALSYM TSPI_PROVIDERCREATEPHONEDEVICE}
TSPI_LINESETCURRENTLOCATION = (TSPI_PROC_BASE + 100); // TSPI v1.4
{$EXTERNALSYM TSPI_LINESETCURRENTLOCATION}
TSPI_LINECONFIGDIALOGEDIT = (TSPI_PROC_BASE + 101); // TSPI v1.4
{$EXTERNALSYM TSPI_LINECONFIGDIALOGEDIT}
TSPI_LINERELEASEUSERUSERINFO = (TSPI_PROC_BASE + 102); // TSPI v1.4
{$EXTERNALSYM TSPI_LINERELEASEUSERUSERINFO}
TSPI_LINEGETCALLID = (TSPI_PROC_BASE + 103); // TSPI v3.0
{$EXTERNALSYM TSPI_LINEGETCALLID}
TSPI_LINEGETCALLHUBTRACKING = (TSPI_PROC_BASE + 104); // TSPI v3.0
{$EXTERNALSYM TSPI_LINEGETCALLHUBTRACKING}
TSPI_LINESETCALLHUBTRACKING = (TSPI_PROC_BASE + 105); // TSPI v3.0
{$EXTERNALSYM TSPI_LINESETCALLHUBTRACKING}
TSPI_LINERECEIVEMSPDATA = (TSPI_PROC_BASE + 106); // TSPI v3.0
{$EXTERNALSYM TSPI_LINERECEIVEMSPDATA}
TSPI_LINEMSPIDENTIFY = (TSPI_PROC_BASE + 107); // TSPI v3.0
{$EXTERNALSYM TSPI_LINEMSPIDENTIFY}
TSPI_LINECREATEMSPINSTANCE = (TSPI_PROC_BASE + 108); // TSPI v3.0
{$EXTERNALSYM TSPI_LINECREATEMSPINSTANCE}
TSPI_LINECLOSEMSPINSTANCE = (TSPI_PROC_BASE + 109); // TSPI v3.0
{$EXTERNALSYM TSPI_LINECLOSEMSPINSTANCE}
{$ENDIF}
implementation
const
TSpiDll = 'tspi.dll';
function TSPI_lineAccept; external TSpiDll name 'TSPI_lineAccept';
function TSPI_lineAddToConference; external TSpiDll name 'TSPI_lineAddToConference';
function TSPI_lineAnswer; external TSpiDll name 'TSPI_lineAnswer';
function TSPI_lineBlindTransfer; external TSpiDll name 'TSPI_lineBlindTransfer';
function TSPI_lineClose; external TSpiDll name 'TSPI_lineClose';
function TSPI_lineCloseCall; external TSpiDll name 'TSPI_lineCloseCall';
function TSPI_lineCompleteCall; external TSpiDll name 'TSPI_lineCompleteCall';
function TSPI_lineCompleteTransfer; external TSpiDll name 'TSPI_lineCompleteTransfer';
function TSPI_lineConditionalMediaDetection; external TSpiDll name 'TSPI_lineConditionalMediaDetection';
function TSPI_lineDevSpecific; external TSpiDll name 'TSPI_lineDevSpecific';
function TSPI_lineDevSpecificFeature; external TSpiDll name 'TSPI_lineDevSpecificFeature';
function TSPI_lineDial; external TSpiDll name 'TSPI_lineDial';
function TSPI_lineDrop; external TSpiDll name 'TSPI_lineDrop';
function TSPI_lineDropOnClose; external TSpiDll name 'TSPI_lineDropOnClose';
function TSPI_lineDropNoOwner; external TSpiDll name 'TSPI_lineDropNoOwner';
function TSPI_lineForward; external TSpiDll name 'TSPI_lineForward';
function TSPI_lineGatherDigits; external TSpiDll name 'TSPI_lineGatherDigits';
function TSPI_lineGenerateDigits; external TSpiDll name 'TSPI_lineGenerateDigits';
function TSPI_lineGenerateTone; external TSpiDll name 'TSPI_lineGenerateTone';
function TSPI_lineGetAddressCaps; external TSpiDll name 'TSPI_lineGetAddressCaps';
function TSPI_lineGetAddressID; external TSpiDll name 'TSPI_lineGetAddressID';
function TSPI_lineGetAddressStatus; external TSpiDll name 'TSPI_lineGetAddressStatus';
function TSPI_lineGetCallAddressID; external TSpiDll name 'TSPI_lineGetCallAddressID';
{$IFDEF TAPI30}
function TSPI_lineGetCallHubTracking; external TspiDll name 'TSPI_lineGetCallHubTracking';
function TSPI_lineGetCallIDs; external TspiDll name 'TSPI_lineGetCallIDs';
{$ENDIF}
function TSPI_lineGetCallInfo; external TSpiDll name 'TSPI_lineGetCallInfo';
function TSPI_lineGetCallStatus; external TSpiDll name 'TSPI_lineGetCallStatus';
function TSPI_lineGetDevCaps; external TSpiDll name 'TSPI_lineGetDevCaps';
function TSPI_lineGetDevConfig; external TSpiDll name 'TSPI_lineGetDevConfig';
function TSPI_lineGetExtensionID; external TSpiDll name 'TSPI_lineGetExtensionID';
function TSPI_lineGetIcon; external TSpiDll name 'TSPI_lineGetIcon';
function TSPI_lineGetID; external TSpiDll name 'TSPI_lineGetID';
function TSPI_lineGetLineDevStatus; external TSpiDll name 'TSPI_lineGetLineDevStatus';
function TSPI_lineGetNumAddressIDs; external TSpiDll name 'TSPI_lineGetNumAddressIDs';
function TSPI_lineHold; external TSpiDll name 'TSPI_lineHold';
function TSPI_lineMakeCall; external TSpiDll name 'TSPI_lineMakeCall';
function TSPI_lineMonitorDigits; external TSpiDll name 'TSPI_lineMonitorDigits';
function TSPI_lineMonitorMedia; external TSpiDll name 'TSPI_lineMonitorMedia';
function TSPI_lineMonitorTones; external TSpiDll name 'TSPI_lineMonitorTones';
function TSPI_lineNegotiateExtVersion; external TSpiDll name 'TSPI_lineNegotiateExtVersion';
function TSPI_lineNegotiateTSPIVersion; external TSpiDll name 'TSPI_lineNegotiateTSPIVersion';
function TSPI_lineOpen; external TSpiDll name 'TSPI_lineOpen';
function TSPI_linePark; external TSpiDll name 'TSPI_linePark';
function TSPI_linePickup; external TSpiDll name 'TSPI_linePickup';
function TSPI_linePrepareAddToConference; external TSpiDll name 'TSPI_linePrepareAddToConference';
function TSPI_lineRedirect; external TSpiDll name 'TSPI_lineRedirect';
function TSPI_lineReleaseUserUserInfo; external TSpiDll name 'TSPI_lineReleaseUserUserInfo';
function TSPI_lineRemoveFromConference; external TSpiDll name 'TSPI_lineRemoveFromConference';
function TSPI_lineSecureCall; external TSpiDll name 'TSPI_lineSecureCall';
function TSPI_lineSelectExtVersion; external TSpiDll name 'TSPI_lineSelectExtVersion';
function TSPI_lineSendUserUserInfo; external TSpiDll name 'TSPI_lineSendUserUserInfo';
function TSPI_lineSetAppSpecific; external TSpiDll name 'TSPI_lineSetAppSpecific';
function TSPI_lineSetCallParams; external TSpiDll name 'TSPI_lineSetCallParams';
function TSPI_lineSetCurrentLocation; external TSpiDll name 'TSPI_lineSetCurrentLocation';
function TSPI_lineSetDefaultMediaDetection; external TSpiDll name 'TSPI_lineSetDefaultMediaDetection';
function TSPI_lineSetDevConfig; external TSpiDll name 'TSPI_lineSetDevConfig';
function TSPI_lineSetMediaControl; external TSpiDll name 'TSPI_lineSetMediaControl';
function TSPI_lineSetMediaMode; external TSpiDll name 'TSPI_lineSetMediaMode';
function TSPI_lineSetStatusMessages; external TSpiDll name 'TSPI_lineSetStatusMessages';
function TSPI_lineSetTerminal; external TSpiDll name 'TSPI_lineSetTerminal';
function TSPI_lineSetupConference; external TSpiDll name 'TSPI_lineSetupConference';
function TSPI_lineSetupTransfer; external TSpiDll name 'TSPI_lineSetupTransfer';
function TSPI_lineSwapHold; external TSpiDll name 'TSPI_lineSwapHold';
function TSPI_lineUncompleteCall; external TSpiDll name 'TSPI_lineUncompleteCall';
function TSPI_lineUnhold; external TSpiDll name 'TSPI_lineUnhold';
function TSPI_lineUnpark; external TSpiDll name 'TSPI_lineUnpark';
function TSPI_phoneClose; external TSpiDll name 'TSPI_phoneClose';
function TSPI_phoneDevSpecific; external TSpiDll name 'TSPI_phoneDevSpecific';
function TSPI_phoneGetButtonInfo; external TSpiDll name 'TSPI_phoneGetButtonInfo';
function TSPI_phoneGetData; external TSpiDll name 'TSPI_phoneGetData';
function TSPI_phoneGetDevCaps; external TSpiDll name 'TSPI_phoneGetDevCaps';
function TSPI_phoneGetDisplay; external TSpiDll name 'TSPI_phoneGetDisplay';
function TSPI_phoneGetExtensionID; external TSpiDll name 'TSPI_phoneGetExtensionID';
function TSPI_phoneGetGain; external TSpiDll name 'TSPI_phoneGetGain';
function TSPI_phoneGetHookSwitch; external TSpiDll name 'TSPI_phoneGetHookSwitch';
function TSPI_phoneGetIcon; external TSpiDll name 'TSPI_phoneGetIcon';
function TSPI_phoneGetID; external TSpiDll name 'TSPI_phoneGetID';
function TSPI_phoneGetLamp; external TSpiDll name 'TSPI_phoneGetLamp';
function TSPI_phoneGetRing; external TSpiDll name 'TSPI_phoneGetRing';
function TSPI_phoneGetStatus; external TSpiDll name 'TSPI_phoneGetStatus';
function TSPI_phoneGetVolume; external TSpiDll name 'TSPI_phoneGetVolume';
function TSPI_phoneNegotiateExtVersion; external TSpiDll name 'TSPI_phoneNegotiateExtVersion';
function TSPI_phoneNegotiateTSPIVersion; external TSpiDll name 'TSPI_phoneNegotiateTSPIVersion';
function TSPI_phoneOpen; external TSpiDll name 'TSPI_phoneOpen';
function TSPI_phoneSelectExtVersion; external TSpiDll name 'TSPI_phoneSelectExtVersion';
function TSPI_phoneSetButtonInfo; external TSpiDll name 'TSPI_phoneSetButtonInfo';
function TSPI_phoneSetData; external TSpiDll name 'TSPI_phoneSetData';
function TSPI_phoneSetDisplay; external TSpiDll name 'TSPI_phoneSetDisplay';
function TSPI_phoneSetGain; external TSpiDll name 'TSPI_phoneSetGain';
function TSPI_phoneSetHookSwitch; external TSpiDll name 'TSPI_phoneSetHookSwitch';
function TSPI_phoneSetLamp; external TSpiDll name 'TSPI_phoneSetLamp';
function TSPI_phoneSetRing; external TSpiDll name 'TSPI_phoneSetRing';
function TSPI_phoneSetStatusMessages; external TSpiDll name 'TSPI_phoneSetStatusMessages';
function TSPI_phoneSetVolume; external TSpiDll name 'TSPI_phoneSetVolume';
function TSPI_providerConfig; external TSpiDll name 'TSPI_providerConfig';
function TSPI_providerCreateLineDevice; external TSpiDll name 'TSPI_providerCreateLineDevice';
function TSPI_providerCreatePhoneDevice; external TSpiDll name 'TSPI_providerCreatePhoneDevice';
function TSPI_providerEnumDevices; external TSpiDll name 'TSPI_providerEnumDevices';
function TSPI_providerInit; external TSpiDll name 'TSPI_providerInit';
function TSPI_providerInstall; external TSpiDll name 'TSPI_providerInstall';
function TSPI_providerRemove; external TSpiDll name 'TSPI_providerRemove';
function TSPI_providerShutdown; external TSpiDll name 'TSPI_providerShutdown';
{$IFDEF TAPI20}
function TSPI_lineSetCallData; external TSpiDll name 'TSPI_lineSetCallData';
{$ENDIF}
{$IFDEF TAPI30}
function TSPI_lineSetCallHubTracking; external TspiDll name 'TSPI_lineSetCallHubTracking';
{$ENDIF}
{$IFDEF TAPI20}
function TSPI_lineSetCallQualityOfService; external TSpiDll name 'TSPI_lineSetCallQualityOfService';
function TSPI_lineSetCallTreatment; external TSpiDll name 'TSPI_lineSetCallTreatment';
function TSPI_lineSetLineDevStatus; external TSpiDll name 'TSPI_lineSetLineDevStatus';
{$ENDIF}
{$IFDEF TAPI20}
function TSPI_providerFreeDialogInstance; external TSpiDll name 'TSPI_providerFreeDialogInstance';
function TSPI_providerGenericDialogData; external TSpiDll name 'TSPI_providerGenericDialogData';
function TSPI_providerUIIdentify; external TSpiDll name 'TSPI_providerUIIdentify';
{$ENDIF}
{$IFDEF TAPI30}
function TSPI_lineMSPIdentify; external TspiDll name 'TSPI_lineMSPIdentify';
function TSPI_lineCloseMSPInstance; external TspiDll name 'TSPI_lineCloseMSPInstance';
function TSPI_lineReceiveMSPData; external TspiDll name 'TSPI_lineReceiveMSPData';
{$ENDIF}
{$IFDEF TAPI20}
function TUISPI_lineConfigDialog; external TSpiDll name 'TUISPI_lineConfigDialog';
function TUISPI_lineConfigDialogEdit; external TSpiDll name 'TUISPI_lineConfigDialogEdit';
function TUISPI_phoneConfigDialog; external TSpiDll name 'TUISPI_phoneConfigDialog';
function TUISPI_providerConfig; external TSpiDll name 'TUISPI_providerConfig';
function TUISPI_providerGenericDialog; external TSpiDll name 'TUISPI_providerGenericDialog';
function TUISPI_providerGenericDialogData; external TSpiDll name 'TUISPI_providerGenericDialogData';
function TUISPI_providerInstall; external TSpiDll name 'TUISPI_providerInstall';
function TUISPI_providerRemove; external TSpiDll name 'TUISPI_providerRemove';
{$ELSE}
function TUISPI_lineConfigDialog; external TSpiDll name 'TUISPI_lineConfigDialog';
function TUISPI_lineConfigDialogEdit; external TSpiDll name 'TUISPI_lineConfigDialogEdit';
function TUISPI_phoneConfigDialog; external TSpiDll name 'TUISPI_phoneConfigDialog';
{$ENDIF}
end.