📄 uniinterface_tapi.pas
字号:
DigitDuration : DWORD;
WaitForDialtone : DWORD;
end;
{Line device capabilities}
PLineDevCaps = ^TLineDevCaps;
TLineDevCaps = record
case Integer of
0: (TotalSize : DWORD;
NeededSize : DWORD;
UsedSize : DWORD;
ProviderInfoSize : DWORD;
ProviderInfoOffset : DWORD;
SwitchInfoSize : DWORD;
SwitchInfoOffset : DWORD;
PermanentLineID : DWORD;
LineNameSize : DWORD;
LineNameOffset : DWORD;
StringFormat : DWORD;
AddressModes : DWORD;
NumAddresses : DWORD;
BearerModes : DWORD;
MaxRate : DWORD;
MediaModes : DWORD;
GenerateToneModes : DWORD;
GenerateToneMaxNumFreq : DWORD;
GenerateDigitModes : DWORD;
MonitorToneMaxNumFreq : DWORD;
MonitorToneMaxNumEntries : DWORD;
MonitorDigitModes : DWORD;
GatherDigitsMinTimeout : DWORD;
GatherDigitsMaxTimeout : DWORD;
MedCtlDigitMaxListSize : DWORD;
MedCtlMediaMaxListSize : DWORD;
MedCtlToneMaxListSize : DWORD;
MedCtlCallStateMaxListSize : DWORD;
DevCapFlags : DWORD;
MaxNumActiveCalls : DWORD;
AnswerMode : DWORD;
RingModes : DWORD;
LineStates : DWORD;
UUIAcceptSize : DWORD;
UUIAnswerSize : DWORD;
UUIMakeCallSize : DWORD;
UUIdropSize : DWORD;
UUISendUserUserInfoSize : DWORD;
UUICallInfoSize : DWORD;
MinDialParams : TLineDialParams;
MaxDialParams : TLineDialParams;
DefaultDialParams : TLineDialParams;
NumTerminals : DWORD;
TerminalCapsSize : DWORD;
TerminalCapsOffset : DWORD;
TerminalTextEntrySize : DWORD;
TerminalTextSize : DWORD;
TerminalTextOffset : DWORD;
DevSpecificSize : DWORD;
DevSpecificOffset : DWORD;
LineFeatures : DWORD;
EndMark : Integer);
1: (Data : array[0..65520] of Char);
end;
{Line call parameters}
PLineCallParams = ^TLineCallParams;
TLineCallParams = record
TotalSize : DWORD;
BearerMode : DWORD;
MinRate : DWORD;
MaxRate : DWORD;
MediaMode : DWORD;
CallParamFlags : DWORD;
AddressMode : DWORD;
AddressID : DWORD;
DialParams : TLineDialParams;
OrigAddressSize : DWORD;
OrigAddressOffset : DWORD;
DisplayableAddressSize : DWORD;
DisplayableAddressOffset : DWORD;
CalledPartySize : DWORD;
CalledPartyOffset : DWORD;
CommentSize : DWORD;
CommentOffset : DWORD;
UserUserInfoSize : DWORD;
UserUserInfoOffset : DWORD;
HighLevelCompSize : DWORD;
HighLevelCompOffset : DWORD;
LowLevelCompSize : DWORD;
LowLevelCompOffset : DWORD;
DevSpecificSize : DWORD;
DevSpecificOffset : DWORD;
end;
{Line address status info}
PLineAddressStatus = ^TLineAddressStatus;
TLineAddressStatus = record
TotalSize : DWORD;
NeededSize : DWORD;
UsedSize : DWORD;
NumInUse : DWORD;
NumActiveCalls : DWORD;
NumOnHoldCalls : DWORD;
NumOnHoldPendCalls : DWORD;
AddressFeatures : DWORD;
NumRingsNoAnswer : DWORD;
ForwardNumEntries : DWORD;
ForwardSize : DWORD;
ForwardOffset : DWORD;
TerminalModesSize : DWORD;
TerminalModesOffset : DWORD;
DevSpecificSize : DWORD;
DevSpecificOffset : DWORD;
end;
{Other types}
TLineApp = LongInt;
PLineApp = ^TLineApp;
TLine = LongInt;
PLine = ^TLine;
TCall = LongInt;
PCall = ^TCall;
{Line call information}
PCallInfo = ^TCallInfo;
TCallInfo = record
case Integer of
0 : (TotalSize : DWORD;
NeededSize : DWORD;
UsedSize : DWORD;
Line : TLine;
LineDeviceID : DWORD;
AddressID : DWORD;
BearerMode : DWORD;
Rate : DWORD;
MediaMode : DWORD;
AppSpecific : DWORD;
CallID : DWORD;
RelatedCallID : DWORD;
CallParamFlags : DWORD;
CallStates : DWORD;
MonitorDigitModes : DWORD;
MonitorMediaModes : DWORD;
DialParams : TLineDialParams;
Origin : DWORD;
Reason : DWORD;
CompletionID : DWORD;
NumOwners : DWORD;
NumMonitors : DWORD;
CountryCode : DWORD;
Trunk : DWORD;
CallerIDFlags : DWORD;
CallerIDSize : DWORD;
CallerIDOffset : DWORD;
CallerIDNameSize : DWORD;
CallerIDNameOffset : DWORD;
CalledIDFlags : DWORD;
CalledIDSize : DWORD;
CalledIDOffset : DWORD;
CalledIDNameSize : DWORD;
CalledIDNameOffset : DWORD;
ConnectedIDdFlags : DWORD;
ConnectedIDSize : DWORD;
ConnectedIDOffset : DWORD;
ConnectedIDNameSize : DWORD;
ConnectedIDNameOffset : DWORD;
RedirectionIDFlags : DWORD;
RedirectionIDSize : DWORD;
RedirectionIDOffset : DWORD;
RedirectionIDNameSize : DWORD;
RedirectionIDNameOffset : DWORD;
RedirectingIDFlags : DWORD;
RedirectingIDSize : DWORD;
RedirectingIDOffset : DWORD;
RedirectingIDNameSize : DWORD;
RedirectingIDNameOffset : DWORD;
AppNameSize : DWORD;
AppNameOffset : DWORD;
DisplayableAddressSize : DWORD;
DisplayableAddressOffset: DWORD;
CalledPartySize : DWORD;
CalledPartyOffset : DWORD;
CommentSize : DWORD;
CommentOffset : DWORD;
DisplaySize : DWORD;
DisplayOffset : DWORD;
UserUserInfoSize : DWORD;
UserUserInfoOffset : DWORD;
HighLevelCompSize : DWORD;
HighLevelCompOffset : DWORD;
LowLevelCompSize : DWORD;
LowLevelCompOffset : DWORD;
ChargingInfoSize : DWORD;
ChargingInfoOffset : DWORD;
TerminalModesSize : DWORD;
TerminalModesOffset : DWORD;
DevSpecificSize : DWORD;
DevSpecificOffset : DWORD;
EndMark : Integer);
1 : (Data : array[0..65520] of Byte);
end;
{More line call information}
PCallStatus = ^TCallStatus;
TCallStatus = record
case Integer of
0 : (TotalSize : DWORD;
NeededSize : DWORD;
UsedSize : DWORD;
CallState : DWORD;
CallStateMode : DWORD;
CallPrivilege : DWORD;
CallFeatures : DWORD;
DevSpecificSize : DWORD;
DevSpecificOffset : DWORD;
EndMark : DWORD);
1 : (Data : array[0..65520] of Byte);
end;
{Structure for LineTranslateAddress results}
PLineTranslateOutput = ^TLineTranslateOutput;
TLineTranslateOutput = record
case Integer of
0 : (TotalSize : DWORD;
NeededSize : DWORD;
UsedSize : DWORD;
DialableStringSize : DWORD;
DialableStringOffset : DWORD;
DisplayableStringSize : DWORD;
DisplayableStringOffset : DWORD;
CurrentCountry : DWORD;
DestCountry : DWORD;
TranslateResults : DWORD;
EndMark : DWORD);
1 : (Data : array[0..65520] of Byte);
end;
{Structure for LineTranslateCaps }
PLineTranslateCaps = ^TLineTranslateCaps;
TLineTranslateCaps = record
case Integer of
0 : (TotalSize : DWORD;
NeededSize : DWORD;
UsedSize : DWORD;
NumLocations : DWORD;
LocationListSize : DWORD;
LocationListOffset : DWORD;
CurrentLocationID : DWORD;
NumCards : DWORD;
CardListSize : DWORD;
CardListOffset : DWORD;
CurrentPreferredCardID : DWORD;
EndMark : DWORD);
1 : (Data : array[0..65520] of Byte);
end;
PLineMonitorTone = ^TLineMonitorTone;
TLineMonitorTone = record
AppSpecific : DWORD;
Duration : DWORD;
Frequency1 : DWORD;
Frequency2 : DWORD;
Frequency3 : DWORD;
end;
PLineGenerateTone = ^TLineGenerateTone;
TLineGenerateTone = record
Frequency : DWORD;
CadenceOn : DWORD;
CadenceOff : DWORD;
Volume : DWORD;
end;
{Callback procedure type}
TLineCallback = procedure(Device : LongInt;
Message : LongInt;
Instance : LongInt;
Param1 : LongInt;
Param2 : LongInt;
Param3 : LongInt)
stdcall;
{Tapi function types}
TLineInitialize = function(var LineApp : TLineApp;
Instance : THandle;
Callback : TLineCallback;
AppName : PChar;
var NumDevs : DWORD) : LongInt
stdcall;
TLineShutdown = function(LineApp : TLineApp) : LongInt
stdcall;
TLineNegotiateApiVersion = function (LineApp : TLineApp;
DeviceID : LongInt;
APILowVersion : LongInt;
APIHighVersion : LongInt;
var ApiVersion : LongInt;
var LE : TLineExtensionID) : LongInt
stdcall;
TLineGetDevCaps = function(LineApp : TLineApp;
DeviceID : DWORD;
ApiVersion : DWORD;
ExtVersion : DWORD;
LineDevCaps : PLineDevCaps) : LongInt
stdcall;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -