Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Using TAPI

01.01.2007

How can I use TAPI to dial the telephone for a voice call?

The following example shows how to interface with tapi to make a voice call.

{tapi Errors}
 const TAPIERR_CONNECTED          = 0;
 const TAPIERR_DROPPED            = -1;
 const TAPIERR_NOREQUESTRECIPIENT = -2;
 const TAPIERR_REQUESTQUEUEFULL   = -3;
 const TAPIERR_INVALDESTADDRESS   = -4;
 const TAPIERR_INVALWINDOWHANDLE  = -5;
 const TAPIERR_INVALDEVICECLASS   = -6;
 const TAPIERR_INVALDEVICEID      = -7;
 const TAPIERR_DEVICECLASSUNAVAIL = -8;
 const TAPIERR_DEVICEIDUNAVAIL    = -9;
 const TAPIERR_DEVICEINUSE        = -10;
 const TAPIERR_DESTBUSY           = -11;
 const TAPIERR_DESTNOANSWER       = -12;
 const TAPIERR_DESTUNAVAIL        = -13;
 const TAPIERR_UNKNOWNWINHANDLE   = -14;
 const TAPIERR_UNKNOWNREQUESTID   = -15;
 const TAPIERR_REQUESTFAILED      = -16;
 const TAPIERR_REQUESTCANCELLED   = -17;
 const TAPIERR_INVALPOINTER       = -18;
 
{tapi size constants}
 const TAPIMAXDESTADDRESSSIZE      = 80;
 const TAPIMAXAPPNAMESIZE          = 40;
 const TAPIMAXCALLEDPARTYSIZE      = 40;
 const TAPIMAXCOMMENTSIZE          = 80;
 const TAPIMAXDEVICECLASSSIZE      = 40;
 const TAPIMAXDEVICEIDSIZE         = 40;
 
function tapiRequestMakeCallA(DestAddress : PAnsiChar;
                              AppName : PAnsiChar;
                              CalledParty : PAnsiChar;
                              Comment : PAnsiChar) : LongInt;
  stdcall; external 'TAPI32.DLL';
 
function tapiRequestMakeCallW(DestAddress : PWideChar;
                              AppName : PWideChar;
                              CalledParty : PWideChar;
                              Comment : PWideChar) : LongInt;
  stdcall; external 'TAPI32.DLL';
 
function tapiRequestMakeCall(DestAddress : PChar;
                             AppName : PChar;
                             CalledParty : PChar;
                             Comment : PChar) : LongInt;
  stdcall; external 'TAPI32.DLL';
 
procedure TForm1.Button1Click(Sender: TObject);
var
  DestAddress : string;
  CalledParty : string;
  Comment : string;
begin
  DestAddress := '1-555-555-1212';
  CalledParty := 'Frank Borland';
  Comment := 'Calling Frank';
  tapiRequestMakeCall(pChar(DestAddress),
                      PChar(Application.Title),
                      pChar(CalledParty),
                      PChar(Comment));
 
end;
 
end.