📄 tltapi.pas
字号:
{ Translated 25/11/96 by Alexander Staubo <alex@image.no>
Translator's Notes:
-------------------
- Version define TAPI_CURRENT_VERSION has been converted to a constant
and conditional code depending on this value changed to the conditional
define "Tapi_Ver20".
- Type aliases for UNICODE omitted.
- Output pointer arguments such as LPDWORD have not been converted to
"var" parameters. It would require looking up every TAPI function in the
SDK help files and verifying each parameter, since a nil value may be
passed for some of these parameters. Anyone interested?
- The TapiCheck() function does not, for some reason, produce a valid error
message. Until this is fixed, access the error codes (LINEERR_, PHONEERR_
etc.) directly.
- The TapiError() function assumes that TAPI error codes are always negative;
I am not sure if this rule is consistently implemented throughout TAPI,
although I think is.
- Constructs and text introduced by translator is prefixed with the
characters "!!".
- Original time stamp of tapi.h: 09-aug-96 00:30
Revision History
----------------
25/11/96 -AS Initial translation.
15/03/98 -by Jury Kornienko
TapiCheck() function is corrected according comments.
It implements direct access to error codes. See below.
24/03/98 -by Jury Kornienko
GetIcon, GetIconA, GetIconW have been changed.
}
{!! The following define enables support for TAPI 2.0 }
{$DEFINE Tapi_Ver20}
unit TLTapi;
(*++ BUILD Version: 0000 // Increment this if a change has global effects
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 1995-96 Microsoft, all rights reserved.
Portions copyright 1992, 1993 Intel/Microsoft, all rights reserved.
Module Name:
tapi.h
Notes:
Additions to the Telephony Application Programming Interface (TAPI) since
version 1.0 are noted by version number (e.g. "TAPI v1.4").
--*)
interface
uses
Windows, Messages;
//
// -- TAPI VERSION INFO -- TAPI VERSION INFO -- TAPI VERSION INFO --
// -- TAPI VERSION INFO -- TAPI VERSION INFO -- TAPI VERSION INFO --
// -- TAPI VERSION INFO -- TAPI VERSION INFO -- TAPI VERSION INFO --
//
// To build a TAPI 1.4 application put a define as below in your source
// file before you include TAPI.H:
//
// #define TAPI_CURRENT_VERSION $00010004
//
//
const
TAPI_CURRENT_VERSION = $00020000;
{$ALIGN OFF} //!! Added; all records implicitly declared as "packed"
{!! The above line should correspond to:
#pragma pack(1)
// Type definitions of the data types used in tapi
}
type
{!! C compatibility types, added }
INT = Longint;
LONG = Longint;
LPVOID = Pointer;
HINSTANCE = THandle;
{!!}
//
// TAPI type definitions
//
type
HCALL__ =
record
unused : INT;
end;
HCALL = HCALL__;
LPHCALL = ^HCALL;
HLINE__ =
record
unused : INT;
end;
HLINE = HLINE__;
LPHLINE = ^HLINE;
HPHONE__ =
record
unused : INT;
end;
HPHONE = HPHONE__;
LPHPHONE = ^HPHONE;
HLINEAPP__ =
record
unused : INT;
end;
HLINEAPP = HLINEAPP__;
LPHLINEAPP = ^HLINEAPP;
HPHONEAPP__ =
record
unused : INT;
end;
HPHONEAPP = HPHONEAPP__;
LPHPHONEAPP = ^HPHONEAPP;
LPHICON = ^HICON;
TLINECALLBACK = procedure (hDevice,
dwMessage,
dwInstance,
dwParam1,
dwParam2,
dwParam3 : DWORD); stdcall;
TPHONECALLBACK = procedure (hDevice,
dwMessage,
dwInstance,
dwParam1,
dwParam2,
dwParam3 : DWORD); stdcall;
// Messages for Phones and Lines
const
LINE_ADDRESSSTATE = 0;
LINE_CALLINFO = 1;
LINE_CALLSTATE = 2;
LINE_CLOSE = 3;
LINE_DEVSPECIFIC = 4;
LINE_DEVSPECIFICFEATURE = 5;
LINE_GATHERDIGITS = 6;
LINE_GENERATE = 7;
LINE_LINEDEVSTATE = 8;
LINE_MONITORDIGITS = 9;
LINE_MONITORMEDIA = 10;
LINE_MONITORTONE = 11;
LINE_REPLY = 12;
LINE_REQUEST = 13;
PHONE_BUTTON = 14;
PHONE_CLOSE = 15;
PHONE_DEVSPECIFIC = 16;
PHONE_REPLY = 17;
PHONE_STATE = 18;
LINE_CREATE = 19; // TAPI v1.4
PHONE_CREATE = 20; // TAPI v1.4
{$IFDEF Tapi_Ver20}
LINE_AGENTSPECIFIC = 21; // TAPI v2.0
LINE_AGENTSTATUS = 22; // TAPI v2.0
LINE_APPNEWCALL = 23; // TAPI v2.0
LINE_PROXYREQUEST = 24; // TAPI v2.0
LINE_REMOVE = 25; // TAPI v2.0
PHONE_REMOVE = 26; // TAPI v2.0
{$ENDIF}
INITIALIZE_NEGOTIATION = $FFFFFFFF;
LINEADDRCAPFLAGS_FWDNUMRINGS = $00000001;
LINEADDRCAPFLAGS_PICKUPGROUPID = $00000002;
LINEADDRCAPFLAGS_SECURE = $00000004;
LINEADDRCAPFLAGS_BLOCKIDDEFAULT = $00000008;
LINEADDRCAPFLAGS_BLOCKIDOVERRIDE = $00000010;
LINEADDRCAPFLAGS_DIALED = $00000020;
LINEADDRCAPFLAGS_ORIGOFFHOOK = $00000040;
LINEADDRCAPFLAGS_DESTOFFHOOK = $00000080;
LINEADDRCAPFLAGS_FWDCONSULT = $00000100;
LINEADDRCAPFLAGS_SETUPCONFNULL = $00000200;
LINEADDRCAPFLAGS_AUTORECONNECT = $00000400;
LINEADDRCAPFLAGS_COMPLETIONID = $00000800;
LINEADDRCAPFLAGS_TRANSFERHELD = $00001000;
LINEADDRCAPFLAGS_TRANSFERMAKE = $00002000;
LINEADDRCAPFLAGS_CONFERENCEHELD = $00004000;
LINEADDRCAPFLAGS_CONFERENCEMAKE = $00008000;
LINEADDRCAPFLAGS_PARTIALDIAL = $00010000;
LINEADDRCAPFLAGS_FWDSTATUSVALID = $00020000;
LINEADDRCAPFLAGS_FWDINTEXTADDR = $00040000;
LINEADDRCAPFLAGS_FWDBUSYNAADDR = $00080000;
LINEADDRCAPFLAGS_ACCEPTTOALERT = $00100000;
LINEADDRCAPFLAGS_CONFDROP = $00200000;
LINEADDRCAPFLAGS_PICKUPCALLWAIT = $00400000;
{$IFDEF Tapi_Ver20}
LINEADDRCAPFLAGS_PREDICTIVEDIALER = $00800000; // TAPI v2.0
LINEADDRCAPFLAGS_QUEUE = $01000000; // TAPI v2.0
LINEADDRCAPFLAGS_ROUTEPOINT = $02000000; // TAPI v2.0
LINEADDRCAPFLAGS_HOLDMAKESNEW = $04000000; // TAPI v2.0
LINEADDRCAPFLAGS_NOINTERNALCALLS = $08000000; // TAPI v2.0
LINEADDRCAPFLAGS_NOEXTERNALCALLS = $10000000; // TAPI v2.0
LINEADDRCAPFLAGS_SETCALLINGID = $20000000; // TAPI v2.0
{$ENDIF}
LINEADDRESSMODE_ADDRESSID = $00000001;
LINEADDRESSMODE_DIALABLEADDR = $00000002;
LINEADDRESSSHARING_PRIVATE = $00000001;
LINEADDRESSSHARING_BRIDGEDEXCL = $00000002;
LINEADDRESSSHARING_BRIDGEDNEW = $00000004;
LINEADDRESSSHARING_BRIDGEDSHARED = $00000008;
LINEADDRESSSHARING_MONITORED = $00000010;
LINEADDRESSSTATE_OTHER = $00000001;
LINEADDRESSSTATE_DEVSPECIFIC = $00000002;
LINEADDRESSSTATE_INUSEZERO = $00000004;
LINEADDRESSSTATE_INUSEONE = $00000008;
LINEADDRESSSTATE_INUSEMANY = $00000010;
LINEADDRESSSTATE_NUMCALLS = $00000020;
LINEADDRESSSTATE_FORWARD = $00000040;
LINEADDRESSSTATE_TERMINALS = $00000080;
LINEADDRESSSTATE_CAPSCHANGE = $00000100; // TAPI v1.4
LINEADDRFEATURE_FORWARD = $00000001;
LINEADDRFEATURE_MAKECALL = $00000002;
LINEADDRFEATURE_PICKUP = $00000004;
LINEADDRFEATURE_SETMEDIACONTROL = $00000008;
LINEADDRFEATURE_SETTERMINAL = $00000010;
LINEADDRFEATURE_SETUPCONF = $00000020;
LINEADDRFEATURE_UNCOMPLETECALL = $00000040;
LINEADDRFEATURE_UNPARK = $00000080;
{$IFDEF Tapi_Ver20}
LINEADDRFEATURE_PICKUPHELD = $00000100; // TAPI v2.0
LINEADDRFEATURE_PICKUPGROUP = $00000200; // TAPI v2.0
LINEADDRFEATURE_PICKUPDIRECT = $00000400; // TAPI v2.0
LINEADDRFEATURE_PICKUPWAITING = $00000800; // TAPI v2.0
LINEADDRFEATURE_FORWARDFWD = $00001000; // TAPI v2.0
LINEADDRFEATURE_FORWARDDND = $00002000; // TAPI v2.0
{$ENDIF}
{$IFDEF Tapi_Ver20}
LINEAGENTFEATURE_SETAGENTGROUP = $00000001; // TAPI v2.0
LINEAGENTFEATURE_SETAGENTSTATE = $00000002; // TAPI v2.0
LINEAGENTFEATURE_SETAGENTACTIVITY = $00000004; // TAPI v2.0
LINEAGENTFEATURE_AGENTSPECIFIC = $00000008; // TAPI v2.0
LINEAGENTFEATURE_GETAGENTACTIVITYLIST = $00000010; // TAPI v2.0
LINEAGENTFEATURE_GETAGENTGROUP = $00000020; // TAPI v2.0
LINEAGENTSTATE_LOGGEDOFF = $00000001; // TAPI v2.0
LINEAGENTSTATE_NOTREADY = $00000002; // TAPI v2.0
LINEAGENTSTATE_READY = $00000004; // TAPI v2.0
LINEAGENTSTATE_BUSYACD = $00000008; // TAPI v2.0
LINEAGENTSTATE_BUSYINCOMING = $00000010; // TAPI v2.0
LINEAGENTSTATE_BUSYOUTBOUND = $00000020; // TAPI v2.0
LINEAGENTSTATE_BUSYOTHER = $00000040; // TAPI v2.0
LINEAGENTSTATE_WORKINGAFTERCALL = $00000080; // TAPI v2.0
LINEAGENTSTATE_UNKNOWN = $00000100; // TAPI v2.0
LINEAGENTSTATE_UNAVAIL = $00000200; // TAPI v2.0
LINEAGENTSTATUS_GROUP = $00000001; // TAPI v2.0
LINEAGENTSTATUS_STATE = $00000002; // TAPI v2.0
LINEAGENTSTATUS_NEXTSTATE = $00000004; // TAPI v2.0
LINEAGENTSTATUS_ACTIVITY = $00000008; // TAPI v2.0
LINEAGENTSTATUS_ACTIVITYLIST = $00000010; // TAPI v2.0
LINEAGENTSTATUS_GROUPLIST = $00000020; // TAPI v2.0
LINEAGENTSTATUS_CAPSCHANGE = $00000040; // TAPI v2.0
LINEAGENTSTATUS_VALIDSTATES = $00000080; // TAPI v2.0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -