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

Delphi

  1. { Translated 25/11/96 by Alexander Staubo <alex@image.no>
  2.   Translator's Notes:
  3.   -------------------
  4.   - Version define TAPI_CURRENT_VERSION has been converted to a constant
  5.     and conditional code depending on this value changed to the conditional
  6.     define "Tapi_Ver20".
  7.   - Type aliases for UNICODE omitted.
  8.   - Output pointer arguments such as LPDWORD have not been converted to
  9.     "var" parameters. It would require looking up every TAPI function in the
  10.     SDK help files and verifying each parameter, since a nil value may be
  11.     passed for some of these parameters. Anyone interested?
  12.   - The TapiCheck() function does not, for some reason, produce a valid error
  13.     message. Until this is fixed, access the error codes (LINEERR_, PHONEERR_
  14.     etc.) directly.
  15.   - The TapiError() function assumes that TAPI error codes are always negative;
  16.     I am not sure if this rule is consistently implemented throughout TAPI,
  17.     although I think is.
  18.   - Constructs and text introduced by translator is prefixed with the
  19.     characters "!!".
  20.   - Original time stamp of tapi.h: 09-aug-96 00:30
  21.   Revision History
  22.   ----------------
  23.     25/11/96 -AS  Initial translation.
  24.     15/03/98 -by Jury Kornienko
  25.              TapiCheck() function is corrected according comments.
  26.              It implements direct access to error codes. See below.
  27.     24/03/98 -by Jury Kornienko
  28.              GetIcon, GetIconA, GetIconW have been changed.
  29. }
  30. {!! The following define enables support for TAPI 2.0 }
  31. {$DEFINE Tapi_Ver20}
  32. unit TLTapi;
  33. (*++ BUILD Version: 0000    // Increment this if a change has global effects
  34. The  Telephony  API  is jointly copyrighted by Intel and Microsoft.  You are
  35. granted  a royalty free worldwide, unlimited license to make copies, and use
  36. the   API/SPI  for  making  applications/drivers  that  interface  with  the
  37. specification provided that this paragraph and the Intel/Microsoft copyright
  38. statement is maintained as is in the text and source code files.
  39. Copyright 1995-96 Microsoft, all rights reserved.
  40. Portions copyright 1992, 1993 Intel/Microsoft, all rights reserved.
  41. Module Name:
  42.     tapi.h
  43. Notes:
  44.     Additions to the Telephony Application Programming Interface (TAPI) since
  45.     version 1.0 are noted by version number (e.g. "TAPI v1.4").
  46. --*)
  47. interface
  48. uses
  49.   Windows, Messages;
  50. //
  51. //  -- TAPI VERSION INFO -- TAPI VERSION INFO -- TAPI VERSION INFO --
  52. //  -- TAPI VERSION INFO -- TAPI VERSION INFO -- TAPI VERSION INFO --
  53. //  -- TAPI VERSION INFO -- TAPI VERSION INFO -- TAPI VERSION INFO --
  54. //
  55. // To build  a TAPI 1.4 application put a define as below in your source
  56. // file before you include TAPI.H:
  57. //
  58. // #define TAPI_CURRENT_VERSION $00010004
  59. //
  60. //
  61. const
  62.   TAPI_CURRENT_VERSION = $00020000;
  63. {$ALIGN OFF}       //!! Added; all records implicitly declared as "packed"
  64. {!! The above line should correspond to:
  65. #pragma pack(1)
  66. // Type definitions of the data types used in tapi
  67. }
  68. type
  69.   {!! C compatibility types, added }
  70.   INT = Longint;
  71.   LONG = Longint;
  72.   LPVOID = Pointer;
  73.   HINSTANCE = THandle;
  74.   {!!}
  75. //
  76. // TAPI type definitions
  77. //
  78. type
  79.   HCALL__ =
  80.     record
  81.       unused : INT;
  82.     end;
  83.   HCALL = HCALL__;
  84.   LPHCALL = ^HCALL;
  85.   HLINE__ =
  86.     record
  87.       unused : INT;
  88.     end;
  89.   HLINE = HLINE__;
  90.   LPHLINE = ^HLINE;
  91.   HPHONE__ =
  92.     record
  93.       unused : INT;
  94.     end;
  95.   HPHONE = HPHONE__;
  96.   LPHPHONE = ^HPHONE;
  97.   HLINEAPP__ =
  98.     record
  99.       unused : INT;
  100.     end;
  101.   HLINEAPP = HLINEAPP__;
  102.   LPHLINEAPP = ^HLINEAPP;
  103.   HPHONEAPP__ =
  104.     record
  105.       unused : INT;
  106.     end;
  107.   HPHONEAPP = HPHONEAPP__;
  108.   LPHPHONEAPP = ^HPHONEAPP;
  109.   LPHICON = ^HICON;
  110.   TLINECALLBACK = procedure (hDevice,
  111.                              dwMessage,
  112.                              dwInstance,
  113.                              dwParam1,
  114.                              dwParam2,
  115.                              dwParam3 : DWORD); stdcall;
  116.   TPHONECALLBACK = procedure (hDevice,
  117.                               dwMessage,
  118.                               dwInstance,
  119.                               dwParam1,
  120.                               dwParam2,
  121.                               dwParam3 : DWORD); stdcall;
  122. // Messages for Phones and Lines
  123. const
  124.   LINE_ADDRESSSTATE                       = 0;
  125.   LINE_CALLINFO                           = 1;
  126.   LINE_CALLSTATE                          = 2;
  127.   LINE_CLOSE                              = 3;
  128.   LINE_DEVSPECIFIC                        = 4;
  129.   LINE_DEVSPECIFICFEATURE                 = 5;
  130.   LINE_GATHERDIGITS                       = 6;
  131.   LINE_GENERATE                           = 7;
  132.   LINE_LINEDEVSTATE                       = 8;
  133.   LINE_MONITORDIGITS                      = 9;
  134.   LINE_MONITORMEDIA                       = 10;
  135.   LINE_MONITORTONE                        = 11;
  136.   LINE_REPLY                              = 12;
  137.   LINE_REQUEST                            = 13;
  138.   PHONE_BUTTON                            = 14;
  139.   PHONE_CLOSE                             = 15;
  140.   PHONE_DEVSPECIFIC                       = 16;
  141.   PHONE_REPLY                             = 17;
  142.   PHONE_STATE                             = 18;
  143.   LINE_CREATE                             = 19;             // TAPI v1.4
  144.   PHONE_CREATE                            = 20;             // TAPI v1.4
  145. {$IFDEF Tapi_Ver20}
  146.   LINE_AGENTSPECIFIC                      = 21;            // TAPI v2.0
  147.   LINE_AGENTSTATUS                        = 22;            // TAPI v2.0
  148.   LINE_APPNEWCALL                         = 23;            // TAPI v2.0
  149.   LINE_PROXYREQUEST                       = 24;            // TAPI v2.0
  150.   LINE_REMOVE                             = 25;            // TAPI v2.0
  151.   PHONE_REMOVE                            = 26;            // TAPI v2.0
  152. {$ENDIF}
  153.   INITIALIZE_NEGOTIATION                  = $FFFFFFFF;
  154.   LINEADDRCAPFLAGS_FWDNUMRINGS            = $00000001;
  155.   LINEADDRCAPFLAGS_PICKUPGROUPID          = $00000002;
  156.   LINEADDRCAPFLAGS_SECURE                 = $00000004;
  157.   LINEADDRCAPFLAGS_BLOCKIDDEFAULT         = $00000008;
  158.   LINEADDRCAPFLAGS_BLOCKIDOVERRIDE        = $00000010;
  159.   LINEADDRCAPFLAGS_DIALED                 = $00000020;
  160.   LINEADDRCAPFLAGS_ORIGOFFHOOK            = $00000040;
  161.   LINEADDRCAPFLAGS_DESTOFFHOOK            = $00000080;
  162.   LINEADDRCAPFLAGS_FWDCONSULT             = $00000100;
  163.   LINEADDRCAPFLAGS_SETUPCONFNULL          = $00000200;
  164.   LINEADDRCAPFLAGS_AUTORECONNECT          = $00000400;
  165.   LINEADDRCAPFLAGS_COMPLETIONID           = $00000800;
  166.   LINEADDRCAPFLAGS_TRANSFERHELD           = $00001000;
  167.   LINEADDRCAPFLAGS_TRANSFERMAKE           = $00002000;
  168.   LINEADDRCAPFLAGS_CONFERENCEHELD         = $00004000;
  169.   LINEADDRCAPFLAGS_CONFERENCEMAKE         = $00008000;
  170.   LINEADDRCAPFLAGS_PARTIALDIAL            = $00010000;
  171.   LINEADDRCAPFLAGS_FWDSTATUSVALID         = $00020000;
  172.   LINEADDRCAPFLAGS_FWDINTEXTADDR          = $00040000;
  173.   LINEADDRCAPFLAGS_FWDBUSYNAADDR          = $00080000;
  174.   LINEADDRCAPFLAGS_ACCEPTTOALERT          = $00100000;
  175.   LINEADDRCAPFLAGS_CONFDROP               = $00200000;
  176.   LINEADDRCAPFLAGS_PICKUPCALLWAIT         = $00400000;
  177. {$IFDEF Tapi_Ver20}
  178.   LINEADDRCAPFLAGS_PREDICTIVEDIALER       = $00800000;      // TAPI v2.0
  179.   LINEADDRCAPFLAGS_QUEUE                  = $01000000;      // TAPI v2.0
  180.   LINEADDRCAPFLAGS_ROUTEPOINT             = $02000000;      // TAPI v2.0
  181.   LINEADDRCAPFLAGS_HOLDMAKESNEW           = $04000000;      // TAPI v2.0
  182.   LINEADDRCAPFLAGS_NOINTERNALCALLS        = $08000000;      // TAPI v2.0
  183.   LINEADDRCAPFLAGS_NOEXTERNALCALLS        = $10000000;      // TAPI v2.0
  184.   LINEADDRCAPFLAGS_SETCALLINGID           = $20000000;      // TAPI v2.0
  185. {$ENDIF}
  186.   LINEADDRESSMODE_ADDRESSID               = $00000001;
  187.   LINEADDRESSMODE_DIALABLEADDR            = $00000002;
  188.   LINEADDRESSSHARING_PRIVATE              = $00000001;
  189.   LINEADDRESSSHARING_BRIDGEDEXCL          = $00000002;
  190.   LINEADDRESSSHARING_BRIDGEDNEW           = $00000004;
  191.   LINEADDRESSSHARING_BRIDGEDSHARED        = $00000008;
  192.   LINEADDRESSSHARING_MONITORED            = $00000010;
  193.   LINEADDRESSSTATE_OTHER                  = $00000001;
  194.   LINEADDRESSSTATE_DEVSPECIFIC            = $00000002;
  195.   LINEADDRESSSTATE_INUSEZERO              = $00000004;
  196.   LINEADDRESSSTATE_INUSEONE               = $00000008;
  197.   LINEADDRESSSTATE_INUSEMANY              = $00000010;
  198.   LINEADDRESSSTATE_NUMCALLS               = $00000020;
  199.   LINEADDRESSSTATE_FORWARD                = $00000040;
  200.   LINEADDRESSSTATE_TERMINALS              = $00000080;
  201.   LINEADDRESSSTATE_CAPSCHANGE             = $00000100;      // TAPI v1.4
  202.   LINEADDRFEATURE_FORWARD                 = $00000001;
  203.   LINEADDRFEATURE_MAKECALL                = $00000002;
  204.   LINEADDRFEATURE_PICKUP                  = $00000004;
  205.   LINEADDRFEATURE_SETMEDIACONTROL         = $00000008;
  206.   LINEADDRFEATURE_SETTERMINAL             = $00000010;
  207.   LINEADDRFEATURE_SETUPCONF               = $00000020;
  208.   LINEADDRFEATURE_UNCOMPLETECALL          = $00000040;
  209.   LINEADDRFEATURE_UNPARK                  = $00000080;
  210. {$IFDEF Tapi_Ver20}
  211.   LINEADDRFEATURE_PICKUPHELD              = $00000100;      // TAPI v2.0
  212.   LINEADDRFEATURE_PICKUPGROUP             = $00000200;      // TAPI v2.0
  213.   LINEADDRFEATURE_PICKUPDIRECT            = $00000400;      // TAPI v2.0
  214.   LINEADDRFEATURE_PICKUPWAITING           = $00000800;      // TAPI v2.0
  215.   LINEADDRFEATURE_FORWARDFWD              = $00001000;      // TAPI v2.0
  216.   LINEADDRFEATURE_FORWARDDND              = $00002000;      // TAPI v2.0
  217. {$ENDIF}
  218. {$IFDEF Tapi_Ver20}
  219.   LINEAGENTFEATURE_SETAGENTGROUP          = $00000001;      // TAPI v2.0
  220.   LINEAGENTFEATURE_SETAGENTSTATE          = $00000002;      // TAPI v2.0
  221.   LINEAGENTFEATURE_SETAGENTACTIVITY       = $00000004;      // TAPI v2.0
  222.   LINEAGENTFEATURE_AGENTSPECIFIC          = $00000008;      // TAPI v2.0
  223.   LINEAGENTFEATURE_GETAGENTACTIVITYLIST   = $00000010;      // TAPI v2.0
  224.   LINEAGENTFEATURE_GETAGENTGROUP          = $00000020;      // TAPI v2.0
  225.   LINEAGENTSTATE_LOGGEDOFF                = $00000001;      // TAPI v2.0
  226.   LINEAGENTSTATE_NOTREADY                 = $00000002;      // TAPI v2.0
  227.   LINEAGENTSTATE_READY                    = $00000004;      // TAPI v2.0
  228.   LINEAGENTSTATE_BUSYACD                  = $00000008;      // TAPI v2.0
  229.   LINEAGENTSTATE_BUSYINCOMING             = $00000010;      // TAPI v2.0
  230.   LINEAGENTSTATE_BUSYOUTBOUND             = $00000020;      // TAPI v2.0
  231.   LINEAGENTSTATE_BUSYOTHER                = $00000040;      // TAPI v2.0
  232.   LINEAGENTSTATE_WORKINGAFTERCALL         = $00000080;      // TAPI v2.0
  233.   LINEAGENTSTATE_UNKNOWN                  = $00000100;      // TAPI v2.0
  234.   LINEAGENTSTATE_UNAVAIL                  = $00000200;      // TAPI v2.0
  235.   LINEAGENTSTATUS_GROUP                   = $00000001;      // TAPI v2.0
  236.   LINEAGENTSTATUS_STATE                   = $00000002;      // TAPI v2.0
  237.   LINEAGENTSTATUS_NEXTSTATE               = $00000004;      // TAPI v2.0
  238.   LINEAGENTSTATUS_ACTIVITY                = $00000008;      // TAPI v2.0
  239.   LINEAGENTSTATUS_ACTIVITYLIST            = $00000010;      // TAPI v2.0
  240.   LINEAGENTSTATUS_GROUPLIST               = $00000020;      // TAPI v2.0
  241.   LINEAGENTSTATUS_CAPSCHANGE              = $00000040;      // TAPI v2.0
  242.   LINEAGENTSTATUS_VALIDSTATES             = $00000080;      // TAPI v2.0
  243.   LINEAGENTSTATUS_VALIDNEXTSTATES         = $00000100;      // TAPI v2.0
  244. {$ENDIF}
  245.   LINEANSWERMODE_NONE                     = $00000001;
  246.   LINEANSWERMODE_DROP                     = $00000002;
  247.   LINEANSWERMODE_HOLD                     = $00000004;
  248.   LINEBEARERMODE_VOICE                    = $00000001;
  249.   LINEBEARERMODE_SPEECH                   = $00000002;
  250.   LINEBEARERMODE_MULTIUSE                 = $00000004;
  251.   LINEBEARERMODE_DATA                     = $00000008;
  252.   LINEBEARERMODE_ALTSPEECHDATA            = $00000010;
  253.   LINEBEARERMODE_NONCALLSIGNALING         = $00000020;
  254.   LINEBEARERMODE_PASSTHROUGH              = $00000040;      // TAPI v1.4
  255. {$IFDEF Tapi_Ver20}
  256.   LINEBEARERMODE_RESTRICTEDDATA           = $00000080;      // TAPI v2.0
  257. {$ENDIF}
  258.   LINEBUSYMODE_STATION                    = $00000001;
  259.   LINEBUSYMODE_TRUNK                      = $00000002;
  260.   LINEBUSYMODE_UNKNOWN                    = $00000004;
  261.   LINEBUSYMODE_UNAVAIL                    = $00000008;
  262.   LINECALLCOMPLCOND_BUSY                  = $00000001;
  263.   LINECALLCOMPLCOND_NOANSWER              = $00000002;
  264.   LINECALLCOMPLMODE_CAMPON                = $00000001;
  265.   LINECALLCOMPLMODE_CALLBACK              = $00000002;
  266.   LINECALLCOMPLMODE_INTRUDE               = $00000004;
  267.   LINECALLCOMPLMODE_MESSAGE               = $00000008;
  268.   LINECALLFEATURE_ACCEPT                  = $00000001;
  269.   LINECALLFEATURE_ADDTOCONF               = $00000002;
  270.   LINECALLFEATURE_ANSWER                  = $00000004;
  271.   LINECALLFEATURE_BLINDTRANSFER           = $00000008;
  272.   LINECALLFEATURE_COMPLETECALL            = $00000010;
  273.   LINECALLFEATURE_COMPLETETRANSF          = $00000020;
  274.   LINECALLFEATURE_DIAL                    = $00000040;
  275.   LINECALLFEATURE_DROP                    = $00000080;
  276.   LINECALLFEATURE_GATHERDIGITS            = $00000100;
  277.   LINECALLFEATURE_GENERATEDIGITS          = $00000200;
  278.   LINECALLFEATURE_GENERATETONE            = $00000400;
  279.   LINECALLFEATURE_HOLD                    = $00000800;
  280.   LINECALLFEATURE_MONITORDIGITS           = $00001000;
  281.   LINECALLFEATURE_MONITORMEDIA            = $00002000;
  282.   LINECALLFEATURE_MONITORTONES            = $00004000;
  283.   LINECALLFEATURE_PARK                    = $00008000;
  284.   LINECALLFEATURE_PREPAREADDCONF          = $00010000;
  285.   LINECALLFEATURE_REDIRECT                = $00020000;
  286.   LINECALLFEATURE_REMOVEFROMCONF          = $00040000;
  287.   LINECALLFEATURE_SECURECALL              = $00080000;
  288.   LINECALLFEATURE_SENDUSERUSER            = $00100000;
  289.   LINECALLFEATURE_SETCALLPARAMS           = $00200000;
  290.   LINECALLFEATURE_SETMEDIACONTROL         = $00400000;
  291.   LINECALLFEATURE_SETTERMINAL             = $00800000;
  292.   LINECALLFEATURE_SETUPCONF               = $01000000;
  293.   LINECALLFEATURE_SETUPTRANSFER           = $02000000;
  294.   LINECALLFEATURE_SWAPHOLD                = $04000000;
  295.   LINECALLFEATURE_UNHOLD                  = $08000000;
  296.   LINECALLFEATURE_RELEASEUSERUSERINFO     = $10000000;      // TAPI v1.4
  297. {$IFDEF Tapi_Ver20}
  298.   LINECALLFEATURE_SETTREATMENT            = $20000000;      // TAPI v2.0
  299.   LINECALLFEATURE_SETQOS                  = $40000000;      // TAPI v2.0
  300.   LINECALLFEATURE_SETCALLDATA             = $80000000;      // TAPI v2.0
  301. {$ENDIF}
  302. {$IFDEF Tapi_Ver20}
  303.   LINECALLFEATURE2_NOHOLDCONFERENCE       = $00000001;      // TAPI v2.0
  304.   LINECALLFEATURE2_ONESTEPTRANSFER        = $00000002;      // TAPI v2.0
  305.   LINECALLFEATURE2_COMPLCAMPON            = $00000004;      // TAPI v2.0
  306.   LINECALLFEATURE2_COMPLCALLBACK          = $00000008;      // TAPI v2.0
  307.   LINECALLFEATURE2_COMPLINTRUDE           = $00000010;      // TAPI v2.0
  308.   LINECALLFEATURE2_COMPLMESSAGE           = $00000020;      // TAPI v2.0
  309.   LINECALLFEATURE2_TRANSFERNORM           = $00000040;      // TAPI v2.0
  310.   LINECALLFEATURE2_TRANSFERCONF           = $00000080;      // TAPI v2.0
  311.   LINECALLFEATURE2_PARKDIRECT             = $00000100;      // TAPI v2.0
  312.   LINECALLFEATURE2_PARKNONDIRECT          = $00000200;      // TAPI v2.0
  313. {$ENDIF}
  314.   LINECALLINFOSTATE_OTHER                 = $00000001;
  315.   LINECALLINFOSTATE_DEVSPECIFIC           = $00000002;
  316.   LINECALLINFOSTATE_BEARERMODE            = $00000004;
  317.   LINECALLINFOSTATE_RATE                  = $00000008;
  318.   LINECALLINFOSTATE_MEDIAMODE             = $00000010;
  319.   LINECALLINFOSTATE_APPSPECIFIC           = $00000020;
  320.   LINECALLINFOSTATE_CALLID                = $00000040;
  321.   LINECALLINFOSTATE_RELATEDCALLID         = $00000080;
  322.   LINECALLINFOSTATE_ORIGIN                = $00000100;
  323.   LINECALLINFOSTATE_REASON                = $00000200;
  324.   LINECALLINFOSTATE_COMPLETIONID          = $00000400;
  325.   LINECALLINFOSTATE_NUMOWNERINCR          = $00000800;
  326.   LINECALLINFOSTATE_NUMOWNERDECR          = $00001000;
  327.   LINECALLINFOSTATE_NUMMONITORS           = $00002000;
  328.   LINECALLINFOSTATE_TRUNK                 = $00004000;
  329.   LINECALLINFOSTATE_CALLERID              = $00008000;
  330.   LINECALLINFOSTATE_CALLEDID              = $00010000;
  331.   LINECALLINFOSTATE_CONNECTEDID           = $00020000;
  332.   LINECALLINFOSTATE_REDIRECTIONID         = $00040000;
  333.   LINECALLINFOSTATE_REDIRECTINGID         = $00080000;
  334.   LINECALLINFOSTATE_DISPLAY               = $00100000;
  335.   LINECALLINFOSTATE_USERUSERINFO          = $00200000;
  336.   LINECALLINFOSTATE_HIGHLEVELCOMP         = $00400000;
  337.   LINECALLINFOSTATE_LOWLEVELCOMP          = $00800000;
  338.   LINECALLINFOSTATE_CHARGINGINFO          = $01000000;
  339.   LINECALLINFOSTATE_TERMINAL              = $02000000;
  340.   LINECALLINFOSTATE_DIALPARAMS            = $04000000;
  341.   LINECALLINFOSTATE_MONITORMODES          = $08000000;
  342. {$IFDEF Tapi_Ver20}
  343.   LINECALLINFOSTATE_TREATMENT             = $10000000;      // TAPI v2.0
  344.   LINECALLINFOSTATE_QOS                   = $20000000;      // TAPI v2.0
  345.   LINECALLINFOSTATE_CALLDATA              = $40000000;      // TAPI v2.0
  346. {$ENDIF}
  347.   LINECALLORIGIN_OUTBOUND                 = $00000001;
  348.   LINECALLORIGIN_INTERNAL                 = $00000002;
  349.   LINECALLORIGIN_EXTERNAL                 = $00000004;
  350.   LINECALLORIGIN_UNKNOWN                  = $00000010;
  351.   LINECALLORIGIN_UNAVAIL                  = $00000020;
  352.   LINECALLORIGIN_CONFERENCE               = $00000040;
  353.   LINECALLORIGIN_INBOUND                  = $00000080;      // TAPI v1.4
  354.   LINECALLPARAMFLAGS_SECURE               = $00000001;
  355.   LINECALLPARAMFLAGS_IDLE                 = $00000002;
  356.   LINECALLPARAMFLAGS_BLOCKID              = $00000004;
  357.   LINECALLPARAMFLAGS_ORIGOFFHOOK          = $00000008;
  358.   LINECALLPARAMFLAGS_DESTOFFHOOK          = $00000010;
  359. {$IFDEF Tapi_Ver20}
  360.   LINECALLPARAMFLAGS_NOHOLDCONFERENCE     = $00000020;      // TAPI v2.0
  361.   LINECALLPARAMFLAGS_PREDICTIVEDIAL       = $00000040;      // TAPI v2.0
  362.   LINECALLPARAMFLAGS_ONESTEPTRANSFER      = $00000080;      // TAPI v2.0
  363. {$ENDIF}
  364.   LINECALLPARTYID_BLOCKED                 = $00000001;
  365.   LINECALLPARTYID_OUTOFAREA               = $00000002;
  366.   LINECALLPARTYID_NAME                    = $00000004;
  367.   LINECALLPARTYID_ADDRESS                 = $00000008;
  368.   LINECALLPARTYID_PARTIAL                 = $00000010;
  369.   LINECALLPARTYID_UNKNOWN                 = $00000020;
  370.   LINECALLPARTYID_UNAVAIL                 = $00000040;
  371.   LINECALLPRIVILEGE_NONE                  = $00000001;
  372.   LINECALLPRIVILEGE_MONITOR               = $00000002;
  373.   LINECALLPRIVILEGE_OWNER                 = $00000004;
  374.   LINECALLREASON_DIRECT                   = $00000001;
  375.   LINECALLREASON_FWDBUSY                  = $00000002;
  376.   LINECALLREASON_FWDNOANSWER              = $00000004;
  377.   LINECALLREASON_FWDUNCOND                = $00000008;
  378.   LINECALLREASON_PICKUP                   = $00000010;
  379.   LINECALLREASON_UNPARK                   = $00000020;
  380.   LINECALLREASON_REDIRECT                 = $00000040;
  381.   LINECALLREASON_CALLCOMPLETION           = $00000080;
  382.   LINECALLREASON_TRANSFER                 = $00000100;
  383.   LINECALLREASON_REMINDER                 = $00000200;
  384.   LINECALLREASON_UNKNOWN                  = $00000400;
  385.   LINECALLREASON_UNAVAIL                  = $00000800;
  386.   LINECALLREASON_INTRUDE                  = $00001000;      // TAPI v1.4
  387.   LINECALLREASON_PARKED                   = $00002000;      // TAPI v1.4
  388. {$IFDEF Tapi_Ver20}
  389.   LINECALLREASON_CAMPEDON                 = $00004000;      // TAPI v2.0
  390.   LINECALLREASON_ROUTEREQUEST             = $00008000;      // TAPI v2.0
  391. {$ENDIF}
  392.   LINECALLSELECT_LINE                     = $00000001;
  393.   LINECALLSELECT_ADDRESS                  = $00000002;
  394.   LINECALLSELECT_CALL                     = $00000004;
  395.   LINECALLSTATE_IDLE                      = $00000001;
  396.   LINECALLSTATE_OFFERING                  = $00000002;
  397.   LINECALLSTATE_ACCEPTED                  = $00000004;
  398.   LINECALLSTATE_DIALTONE                  = $00000008;
  399.   LINECALLSTATE_DIALING                   = $00000010;
  400.   LINECALLSTATE_RINGBACK                  = $00000020;
  401.   LINECALLSTATE_BUSY                      = $00000040;
  402.   LINECALLSTATE_SPECIALINFO               = $00000080;
  403.   LINECALLSTATE_CONNECTED                 = $00000100;
  404.   LINECALLSTATE_PROCEEDING                = $00000200;
  405.   LINECALLSTATE_ONHOLD                    = $00000400;
  406.   LINECALLSTATE_CONFERENCED               = $00000800;
  407.   LINECALLSTATE_ONHOLDPENDCONF            = $00001000;
  408.   LINECALLSTATE_ONHOLDPENDTRANSFER        = $00002000;
  409.   LINECALLSTATE_DISCONNECTED              = $00004000;
  410.   LINECALLSTATE_UNKNOWN                   = $00008000;
  411. {$IFDEF Tapi_Ver20}
  412.   LINECALLTREATMENT_SILENCE               = $00000001;      // TAPI v2.0
  413.   LINECALLTREATMENT_RINGBACK              = $00000002;      // TAPI v2.0
  414.   LINECALLTREATMENT_BUSY                  = $00000003;      // TAPI v2.0
  415.   LINECALLTREATMENT_MUSIC                 = $00000004;      // TAPI v2.0
  416. {$ENDIF}
  417.   LINECARDOPTION_PREDEFINED               = $00000001;      // TAPI v1.4
  418.   LINECARDOPTION_HIDDEN                   = $00000002;      // TAPI v1.4
  419.   LINECONNECTEDMODE_ACTIVE                = $00000001;      // TAPI v1.4
  420.   LINECONNECTEDMODE_INACTIVE              = $00000002;      // TAPI v1.4
  421. {$IFDEF Tapi_Ver20}
  422.   LINECONNECTEDMODE_ACTIVEHELD            = $00000004;      // TAPI v2.0
  423.   LINECONNECTEDMODE_INACTIVEHELD          = $00000008;      // TAPI v2.0
  424.   LINECONNECTEDMODE_CONFIRMED             = $00000010;      // TAPI v2.0
  425. {$ENDIF}
  426.   LINEDEVCAPFLAGS_CROSSADDRCONF           = $00000001;
  427.   LINEDEVCAPFLAGS_HIGHLEVCOMP             = $00000002;
  428.   LINEDEVCAPFLAGS_LOWLEVCOMP              = $00000004;
  429.   LINEDEVCAPFLAGS_MEDIACONTROL            = $00000008;
  430.   LINEDEVCAPFLAGS_MULTIPLEADDR            = $00000010;
  431.   LINEDEVCAPFLAGS_CLOSEDROP               = $00000020;
  432.   LINEDEVCAPFLAGS_DIALBILLING             = $00000040;
  433.   LINEDEVCAPFLAGS_DIALQUIET               = $00000080;
  434.   LINEDEVCAPFLAGS_DIALDIALTONE            = $00000100;
  435.   LINEDEVSTATE_OTHER                      = $00000001;
  436.   LINEDEVSTATE_RINGING                    = $00000002;
  437.   LINEDEVSTATE_CONNECTED                  = $00000004;
  438.   LINEDEVSTATE_DISCONNECTED               = $00000008;
  439.   LINEDEVSTATE_MSGWAITON                  = $00000010;
  440.   LINEDEVSTATE_MSGWAITOFF                 = $00000020;
  441.   LINEDEVSTATE_INSERVICE                  = $00000040;
  442.   LINEDEVSTATE_OUTOFSERVICE               = $00000080;
  443.   LINEDEVSTATE_MAINTENANCE                = $00000100;
  444.   LINEDEVSTATE_OPEN                       = $00000200;
  445.   LINEDEVSTATE_CLOSE                      = $00000400;
  446.   LINEDEVSTATE_NUMCALLS                   = $00000800;
  447.   LINEDEVSTATE_NUMCOMPLETIONS             = $00001000;
  448.   LINEDEVSTATE_TERMINALS                  = $00002000;
  449.   LINEDEVSTATE_ROAMMODE                   = $00004000;
  450.   LINEDEVSTATE_BATTERY                    = $00008000;
  451.   LINEDEVSTATE_SIGNAL                     = $00010000;
  452.   LINEDEVSTATE_DEVSPECIFIC                = $00020000;
  453.   LINEDEVSTATE_REINIT                     = $00040000;
  454.   LINEDEVSTATE_LOCK                       = $00080000;
  455.   LINEDEVSTATE_CAPSCHANGE                 = $00100000;      // TAPI v1.4
  456.   LINEDEVSTATE_CONFIGCHANGE               = $00200000;      // TAPI v1.4
  457.   LINEDEVSTATE_TRANSLATECHANGE            = $00400000;      // TAPI v1.4
  458.   LINEDEVSTATE_COMPLCANCEL                = $00800000;      // TAPI v1.4
  459.   LINEDEVSTATE_REMOVED                    = $01000000;      // TAPI v1.4
  460.   LINEDEVSTATUSFLAGS_CONNECTED            = $00000001;
  461.   LINEDEVSTATUSFLAGS_MSGWAIT              = $00000002;
  462.   LINEDEVSTATUSFLAGS_INSERVICE            = $00000004;
  463.   LINEDEVSTATUSFLAGS_LOCKED               = $00000008;
  464.   LINEDIALTONEMODE_NORMAL                 = $00000001;
  465.   LINEDIALTONEMODE_SPECIAL                = $00000002;
  466.   LINEDIALTONEMODE_INTERNAL               = $00000004;
  467.   LINEDIALTONEMODE_EXTERNAL               = $00000008;
  468.   LINEDIALTONEMODE_UNKNOWN                = $00000010;
  469.   LINEDIALTONEMODE_UNAVAIL                = $00000020;
  470.   LINEDIGITMODE_PULSE                     = $00000001;
  471.   LINEDIGITMODE_DTMF                      = $00000002;
  472.   LINEDIGITMODE_DTMFEND                   = $00000004;
  473.   LINEDISCONNECTMODE_NORMAL               = $00000001;
  474.   LINEDISCONNECTMODE_UNKNOWN              = $00000002;
  475.   LINEDISCONNECTMODE_REJECT               = $00000004;
  476.   LINEDISCONNECTMODE_PICKUP               = $00000008;
  477.   LINEDISCONNECTMODE_FORWARDED            = $00000010;
  478.   LINEDISCONNECTMODE_BUSY                 = $00000020;
  479.   LINEDISCONNECTMODE_NOANSWER             = $00000040;
  480.   LINEDISCONNECTMODE_BADADDRESS           = $00000080;
  481.   LINEDISCONNECTMODE_UNREACHABLE          = $00000100;
  482.   LINEDISCONNECTMODE_CONGESTION           = $00000200;
  483.   LINEDISCONNECTMODE_INCOMPATIBLE         = $00000400;
  484.   LINEDISCONNECTMODE_UNAVAIL              = $00000800;
  485.   LINEDISCONNECTMODE_NODIALTONE           = $00001000;      // TAPI v1.4
  486. {$IFDEF Tapi_Ver20}
  487.   LINEDISCONNECTMODE_NUMBERCHANGED        = $00002000;      // TAPI v2.0
  488.   LINEDISCONNECTMODE_OUTOFORDER           = $00004000;      // TAPI v2.0
  489.   LINEDISCONNECTMODE_TEMPFAILURE          = $00008000;      // TAPI v2.0
  490.   LINEDISCONNECTMODE_QOSUNAVAIL           = $00010000;      // TAPI v2.0
  491.   LINEDISCONNECTMODE_BLOCKED              = $00020000;      // TAPI v2.0
  492.   LINEDISCONNECTMODE_DONOTDISTURB         = $00040000;      // TAPI v2.0
  493.   LINEDISCONNECTMODE_CANCELLED            = $00080000;      // TAPI v2.0
  494. {$ENDIF}
  495.   LINEERR_ALLOCATED                       = $80000001;
  496.   LINEERR_BADDEVICEID                     = $80000002;
  497.   LINEERR_BEARERMODEUNAVAIL               = $80000003;
  498.   LINEERR_CALLUNAVAIL                     = $80000005;
  499.   LINEERR_COMPLETIONOVERRUN               = $80000006;
  500.   LINEERR_CONFERENCEFULL                  = $80000007;
  501.   LINEERR_DIALBILLING                     = $80000008;
  502.   LINEERR_DIALDIALTONE                    = $80000009;
  503.   LINEERR_DIALPROMPT                      = $8000000A;
  504.   LINEERR_DIALQUIET                       = $8000000B;
  505.   LINEERR_INCOMPATIBLEAPIVERSION          = $8000000C;
  506.   LINEERR_INCOMPATIBLEEXTVERSION          = $8000000D;
  507.   LINEERR_INIFILECORRUPT                  = $8000000E;
  508.   LINEERR_INUSE                           = $8000000F;
  509.   LINEERR_INVALADDRESS                    = $80000010;
  510.   LINEERR_INVALADDRESSID                  = $80000011;
  511.   LINEERR_INVALADDRESSMODE                = $80000012;
  512.   LINEERR_INVALADDRESSSTATE               = $80000013;
  513.   LINEERR_INVALAPPHANDLE                  = $80000014;
  514.   LINEERR_INVALAPPNAME                    = $80000015;
  515.   LINEERR_INVALBEARERMODE                 = $80000016;
  516.   LINEERR_INVALCALLCOMPLMODE              = $80000017;
  517.   LINEERR_INVALCALLHANDLE                 = $80000018;
  518.   LINEERR_INVALCALLPARAMS                 = $80000019;
  519.   LINEERR_INVALCALLPRIVILEGE              = $8000001A;
  520.   LINEERR_INVALCALLSELECT                 = $8000001B;
  521.   LINEERR_INVALCALLSTATE                  = $8000001C;
  522.   LINEERR_INVALCALLSTATELIST              = $8000001D;
  523.   LINEERR_INVALCARD                       = $8000001E;
  524.   LINEERR_INVALCOMPLETIONID               = $8000001F;
  525.   LINEERR_INVALCONFCALLHANDLE             = $80000020;
  526.   LINEERR_INVALCONSULTCALLHANDLE          = $80000021;
  527.   LINEERR_INVALCOUNTRYCODE                = $80000022;
  528.   LINEERR_INVALDEVICECLASS                = $80000023;
  529.   LINEERR_INVALDEVICEHANDLE               = $80000024;
  530.   LINEERR_INVALDIALPARAMS                 = $80000025;
  531.   LINEERR_INVALDIGITLIST                  = $80000026;
  532.   LINEERR_INVALDIGITMODE                  = $80000027;
  533.   LINEERR_INVALDIGITS                     = $80000028;
  534.   LINEERR_INVALEXTVERSION                 = $80000029;
  535.   LINEERR_INVALGROUPID                    = $8000002A;
  536.   LINEERR_INVALLINEHANDLE                 = $8000002B;
  537.   LINEERR_INVALLINESTATE                  = $8000002C;
  538.   LINEERR_INVALLOCATION                   = $8000002D;
  539.   LINEERR_INVALMEDIALIST                  = $8000002E;
  540.   LINEERR_INVALMEDIAMODE                  = $8000002F;
  541.   LINEERR_INVALMESSAGEID                  = $80000030;
  542.   LINEERR_INVALPARAM                      = $80000032;
  543.   LINEERR_INVALPARKID                     = $80000033;
  544.   LINEERR_INVALPARKMODE                   = $80000034;
  545.   LINEERR_INVALPOINTER                    = $80000035;
  546.   LINEERR_INVALPRIVSELECT                 = $80000036;
  547.   LINEERR_INVALRATE                       = $80000037;
  548.   LINEERR_INVALREQUESTMODE                = $80000038;
  549.   LINEERR_INVALTERMINALID                 = $80000039;
  550.   LINEERR_INVALTERMINALMODE               = $8000003A;
  551.   LINEERR_INVALTIMEOUT                    = $8000003B;
  552.   LINEERR_INVALTONE                       = $8000003C;
  553.   LINEERR_INVALTONELIST                   = $8000003D;
  554.   LINEERR_INVALTONEMODE                   = $8000003E;
  555.   LINEERR_INVALTRANSFERMODE               = $8000003F;
  556.   LINEERR_LINEMAPPERFAILED                = $80000040;
  557.   LINEERR_NOCONFERENCE                    = $80000041;
  558.   LINEERR_NODEVICE                        = $80000042;
  559.   LINEERR_NODRIVER                        = $80000043;
  560.   LINEERR_NOMEM                           = $80000044;
  561.   LINEERR_NOREQUEST                       = $80000045;
  562.   LINEERR_NOTOWNER                        = $80000046;
  563.   LINEERR_NOTREGISTERED                   = $80000047;
  564.   LINEERR_OPERATIONFAILED                 = $80000048;
  565.   LINEERR_OPERATIONUNAVAIL                = $80000049;
  566.   LINEERR_RATEUNAVAIL                     = $8000004A;
  567.   LINEERR_RESOURCEUNAVAIL                 = $8000004B;
  568.   LINEERR_REQUESTOVERRUN                  = $8000004C;
  569.   LINEERR_STRUCTURETOOSMALL               = $8000004D;
  570.   LINEERR_TARGETNOTFOUND                  = $8000004E;
  571.   LINEERR_TARGETSELF                      = $8000004F;
  572.   LINEERR_UNINITIALIZED                   = $80000050;
  573.   LINEERR_USERUSERINFOTOOBIG              = $80000051;
  574.   LINEERR_REINIT                          = $80000052;
  575.   LINEERR_ADDRESSBLOCKED                  = $80000053;
  576.   LINEERR_BILLINGREJECTED                 = $80000054;
  577.   LINEERR_INVALFEATURE                    = $80000055;
  578.   LINEERR_NOMULTIPLEINSTANCE              = $80000056;
  579. {$IFDEF Tapi_Ver20}
  580.   LINEERR_INVALAGENTID                    = $80000057;      // TAPI v2.0
  581.   LINEERR_INVALAGENTGROUP                 = $80000058;      // TAPI v2.0
  582.   LINEERR_INVALPASSWORD                   = $80000059;      // TAPI v2.0
  583.   LINEERR_INVALAGENTSTATE                 = $8000005A;      // TAPI v2.0
  584.   LINEERR_INVALAGENTACTIVITY              = $8000005B;      // TAPI v2.0
  585.   LINEERR_DIALVOICEDETECT                 = $8000005C;      // TAPI v2.0
  586. {$ENDIF}
  587.   LINEFEATURE_DEVSPECIFIC                 = $00000001;
  588.   LINEFEATURE_DEVSPECIFICFEAT             = $00000002;
  589.   LINEFEATURE_FORWARD                     = $00000004;
  590.   LINEFEATURE_MAKECALL                    = $00000008;
  591.   LINEFEATURE_SETMEDIACONTROL             = $00000010;
  592.   LINEFEATURE_SETTERMINAL                 = $00000020;
  593. {$IFDEF Tapi_Ver20}
  594.   LINEFEATURE_SETDEVSTATUS                = $00000040;      // TAPI v2.0
  595.   LINEFEATURE_FORWARDFWD                  = $00000080;      // TAPI v2.0
  596.   LINEFEATURE_FORWARDDND                  = $00000100;      // TAPI v2.0
  597. {$ENDIF}
  598.   LINEFORWARDMODE_UNCOND                  = $00000001;
  599.   LINEFORWARDMODE_UNCONDINTERNAL          = $00000002;
  600.   LINEFORWARDMODE_UNCONDEXTERNAL          = $00000004;
  601.   LINEFORWARDMODE_UNCONDSPECIFIC          = $00000008;
  602.   LINEFORWARDMODE_BUSY                    = $00000010;
  603.   LINEFORWARDMODE_BUSYINTERNAL            = $00000020;
  604.   LINEFORWARDMODE_BUSYEXTERNAL            = $00000040;
  605.   LINEFORWARDMODE_BUSYSPECIFIC            = $00000080;
  606.   LINEFORWARDMODE_NOANSW                  = $00000100;
  607.   LINEFORWARDMODE_NOANSWINTERNAL          = $00000200;
  608.   LINEFORWARDMODE_NOANSWEXTERNAL          = $00000400;
  609.   LINEFORWARDMODE_NOANSWSPECIFIC          = $00000800;
  610.   LINEFORWARDMODE_BUSYNA                  = $00001000;
  611.   LINEFORWARDMODE_BUSYNAINTERNAL          = $00002000;
  612.   LINEFORWARDMODE_BUSYNAEXTERNAL          = $00004000;
  613.   LINEFORWARDMODE_BUSYNASPECIFIC          = $00008000;
  614.   LINEFORWARDMODE_UNKNOWN                 = $00010000;      // TAPI v1.4
  615.   LINEFORWARDMODE_UNAVAIL                 = $00020000;      // TAPI v1.4
  616.   LINEGATHERTERM_BUFFERFULL               = $00000001;
  617.   LINEGATHERTERM_TERMDIGIT                = $00000002;
  618.   LINEGATHERTERM_FIRSTTIMEOUT             = $00000004;
  619.   LINEGATHERTERM_INTERTIMEOUT             = $00000008;
  620.   LINEGATHERTERM_CANCEL                   = $00000010;
  621.   LINEGENERATETERM_DONE                   = $00000001;
  622.   LINEGENERATETERM_CANCEL                 = $00000002;
  623. {$IFDEF Tapi_Ver20}
  624. //
  625. // These constants are mutually exclusive - there's no way to specify more
  626. // than one at a time (and it doesn't make sense, either) so they're
  627. // ordinal rather than bits.
  628. //
  629.   LINEINITIALIZEEXOPTION_USEHIDDENWINDOW      = $00000001; // TAPI v2.0
  630.   LINEINITIALIZEEXOPTION_USEEVENT             = $00000002; // TAPI v2.0
  631.   LINEINITIALIZEEXOPTION_USECOMPLETIONPORT    = $00000003; // TAPI v2.0
  632. {$ENDIF}
  633.   LINELOCATIONOPTION_PULSEDIAL            = $00000001;     // TAPI v1.4
  634.   LINEMAPPER                              = $FFFFFFFF;
  635.   LINEMEDIACONTROL_NONE                   = $00000001;
  636.   LINEMEDIACONTROL_START                  = $00000002;
  637.   LINEMEDIACONTROL_RESET                  = $00000004;
  638.   LINEMEDIACONTROL_PAUSE                  = $00000008;
  639.   LINEMEDIACONTROL_RESUME                 = $00000010;
  640.   LINEMEDIACONTROL_RATEUP                 = $00000020;
  641.   LINEMEDIACONTROL_RATEDOWN               = $00000040;
  642.   LINEMEDIACONTROL_RATENORMAL             = $00000080;
  643.   LINEMEDIACONTROL_VOLUMEUP               = $00000100;
  644.   LINEMEDIACONTROL_VOLUMEDOWN             = $00000200;
  645.   LINEMEDIACONTROL_VOLUMENORMAL           = $00000400;
  646.   LINEMEDIAMODE_UNKNOWN                   = $00000002;
  647.   LINEMEDIAMODE_INTERACTIVEVOICE          = $00000004;
  648.   LINEMEDIAMODE_AUTOMATEDVOICE            = $00000008;
  649.   LINEMEDIAMODE_DATAMODEM                 = $00000010;
  650.   LINEMEDIAMODE_G3FAX                     = $00000020;
  651.   LINEMEDIAMODE_TDD                       = $00000040;
  652.   LINEMEDIAMODE_G4FAX                     = $00000080;
  653.   LINEMEDIAMODE_DIGITALDATA               = $00000100;
  654.   LINEMEDIAMODE_TELETEX                   = $00000200;
  655.   LINEMEDIAMODE_VIDEOTEX                  = $00000400;
  656.   LINEMEDIAMODE_TELEX                     = $00000800;
  657.   LINEMEDIAMODE_MIXED                     = $00001000;
  658.   LINEMEDIAMODE_ADSI                      = $00002000;
  659.   LINEMEDIAMODE_VOICEVIEW                 = $00004000;      // TAPI v1.4
  660.   LAST_LINEMEDIAMODE                      = $00004000;
  661.   LINEOFFERINGMODE_ACTIVE                 = $00000001;      // TAPI v1.4
  662.   LINEOFFERINGMODE_INACTIVE               = $00000002;      // TAPI v1.4
  663. {$IFDEF Tapi_Ver20}
  664.   LINEOPENOPTION_SINGLEADDRESS            = $80000000;      // TAPI v2.0
  665.   LINEOPENOPTION_PROXY                    = $40000000;      // TAPI v2.0
  666. {$ENDIF}
  667.   LINEPARKMODE_DIRECTED                   = $00000001;
  668.   LINEPARKMODE_NONDIRECTED                = $00000002;
  669. {$IFDEF Tapi_Ver20}
  670.   LINEPROXYREQUEST_SETAGENTGROUP          = $00000001;      // TAPI v2.0
  671.   LINEPROXYREQUEST_SETAGENTSTATE          = $00000002;      // TAPI v2.0
  672.   LINEPROXYREQUEST_SETAGENTACTIVITY       = $00000003;      // TAPI v2.0
  673.   LINEPROXYREQUEST_GETAGENTCAPS           = $00000004;      // TAPI v2.0
  674.   LINEPROXYREQUEST_GETAGENTSTATUS         = $00000005;      // TAPI v2.0
  675.   LINEPROXYREQUEST_AGENTSPECIFIC          = $00000006;      // TAPI v2.0
  676.   LINEPROXYREQUEST_GETAGENTACTIVITYLIST   = $00000007;      // TAPI v2.0
  677.   LINEPROXYREQUEST_GETAGENTGROUPLIST      = $00000008;      // TAPI v2.0
  678. {$ENDIF}
  679.   LINEREMOVEFROMCONF_NONE                 = $00000001;
  680.   LINEREMOVEFROMCONF_LAST                 = $00000002;
  681.   LINEREMOVEFROMCONF_ANY                  = $00000003;
  682.   LINEREQUESTMODE_MAKECALL                = $00000001;
  683.   LINEREQUESTMODE_MEDIACALL               = $00000002;
  684.   LINEREQUESTMODE_DROP                    = $00000004;
  685.   LAST_LINEREQUESTMODE                    = LINEREQUESTMODE_MEDIACALL;
  686.   LINEROAMMODE_UNKNOWN                    = $00000001;
  687.   LINEROAMMODE_UNAVAIL                    = $00000002;
  688.   LINEROAMMODE_HOME                       = $00000004;
  689.   LINEROAMMODE_ROAMA                      = $00000008;
  690.   LINEROAMMODE_ROAMB                      = $00000010;
  691.   LINESPECIALINFO_NOCIRCUIT               = $00000001;
  692.   LINESPECIALINFO_CUSTIRREG               = $00000002;
  693.   LINESPECIALINFO_REORDER                 = $00000004;
  694.   LINESPECIALINFO_UNKNOWN                 = $00000008;
  695.   LINESPECIALINFO_UNAVAIL                 = $00000010;
  696.   LINETERMDEV_PHONE                       = $00000001;
  697.   LINETERMDEV_HEADSET                     = $00000002;
  698.   LINETERMDEV_SPEAKER                     = $00000004;
  699.   LINETERMMODE_BUTTONS                    = $00000001;
  700.   LINETERMMODE_LAMPS                      = $00000002;
  701.   LINETERMMODE_DISPLAY                    = $00000004;
  702.   LINETERMMODE_RINGER                     = $00000008;
  703.   LINETERMMODE_HOOKSWITCH                 = $00000010;
  704.   LINETERMMODE_MEDIATOLINE                = $00000020;
  705.   LINETERMMODE_MEDIAFROMLINE              = $00000040;
  706.   LINETERMMODE_MEDIABIDIRECT              = $00000080;
  707.   LINETERMSHARING_PRIVATE                 = $00000001;
  708.   LINETERMSHARING_SHAREDEXCL              = $00000002;
  709.   LINETERMSHARING_SHAREDCONF              = $00000004;
  710.   LINETOLLLISTOPTION_ADD                  = $00000001;
  711.   LINETOLLLISTOPTION_REMOVE               = $00000002;
  712.   LINETONEMODE_CUSTOM                     = $00000001;
  713.   LINETONEMODE_RINGBACK                   = $00000002;
  714.   LINETONEMODE_BUSY                       = $00000004;
  715.   LINETONEMODE_BEEP                       = $00000008;
  716.   LINETONEMODE_BILLING                    = $00000010;
  717.   LINETRANSFERMODE_TRANSFER               = $00000001;
  718.   LINETRANSFERMODE_CONFERENCE             = $00000002;
  719.   LINETRANSLATEOPTION_CARDOVERRIDE        = $00000001;
  720.   LINETRANSLATEOPTION_CANCELCALLWAITING   = $00000002;      // TAPI v1.4
  721.   LINETRANSLATEOPTION_FORCELOCAL          = $00000004;      // TAPI v1.4
  722.   LINETRANSLATEOPTION_FORCELD             = $00000008;      // TAPI v1.4
  723.   LINETRANSLATERESULT_CANONICAL           = $00000001;
  724.   LINETRANSLATERESULT_INTERNATIONAL       = $00000002;
  725.   LINETRANSLATERESULT_LONGDISTANCE        = $00000004;
  726.   LINETRANSLATERESULT_LOCAL               = $00000008;
  727.   LINETRANSLATERESULT_INTOLLLIST          = $00000010;
  728.   LINETRANSLATERESULT_NOTINTOLLLIST       = $00000020;
  729.   LINETRANSLATERESULT_DIALBILLING         = $00000040;
  730.   LINETRANSLATERESULT_DIALQUIET           = $00000080;
  731.   LINETRANSLATERESULT_DIALDIALTONE        = $00000100;
  732.   LINETRANSLATERESULT_DIALPROMPT          = $00000200;
  733. {$IFDEF Tapi_Ver20}
  734.   LINETRANSLATERESULT_VOICEDETECT         = $00000400;      // TAPI v2.0
  735. {$ENDIF}
  736.   PHONEBUTTONFUNCTION_UNKNOWN             = $00000000;
  737.   PHONEBUTTONFUNCTION_CONFERENCE          = $00000001;
  738.   PHONEBUTTONFUNCTION_TRANSFER            = $00000002;
  739.   PHONEBUTTONFUNCTION_DROP                = $00000003;
  740.   PHONEBUTTONFUNCTION_HOLD                = $00000004;
  741.   PHONEBUTTONFUNCTION_RECALL              = $00000005;
  742.   PHONEBUTTONFUNCTION_DISCONNECT          = $00000006;
  743.   PHONEBUTTONFUNCTION_CONNECT             = $00000007;
  744.   PHONEBUTTONFUNCTION_MSGWAITON           = $00000008;
  745.   PHONEBUTTONFUNCTION_MSGWAITOFF          = $00000009;
  746.   PHONEBUTTONFUNCTION_SELECTRING          = $0000000A;
  747.   PHONEBUTTONFUNCTION_ABBREVDIAL          = $0000000B;
  748.   PHONEBUTTONFUNCTION_FORWARD             = $0000000C;
  749.   PHONEBUTTONFUNCTION_PICKUP              = $0000000D;
  750.   PHONEBUTTONFUNCTION_RINGAGAIN           = $0000000E;
  751.   PHONEBUTTONFUNCTION_PARK                = $0000000F;
  752.   PHONEBUTTONFUNCTION_REJECT              = $00000010;
  753.   PHONEBUTTONFUNCTION_REDIRECT            = $00000011;
  754.   PHONEBUTTONFUNCTION_MUTE                = $00000012;
  755.   PHONEBUTTONFUNCTION_VOLUMEUP            = $00000013;
  756.   PHONEBUTTONFUNCTION_VOLUMEDOWN          = $00000014;
  757.   PHONEBUTTONFUNCTION_SPEAKERON           = $00000015;
  758.   PHONEBUTTONFUNCTION_SPEAKEROFF          = $00000016;
  759.   PHONEBUTTONFUNCTION_FLASH               = $00000017;
  760.   PHONEBUTTONFUNCTION_DATAON              = $00000018;
  761.   PHONEBUTTONFUNCTION_DATAOFF             = $00000019;
  762.   PHONEBUTTONFUNCTION_DONOTDISTURB        = $0000001A;
  763.   PHONEBUTTONFUNCTION_INTERCOM            = $0000001B;
  764.   PHONEBUTTONFUNCTION_BRIDGEDAPP          = $0000001C;
  765.   PHONEBUTTONFUNCTION_BUSY                = $0000001D;
  766.   PHONEBUTTONFUNCTION_CALLAPP             = $0000001E;
  767.   PHONEBUTTONFUNCTION_DATETIME            = $0000001F;
  768.   PHONEBUTTONFUNCTION_DIRECTORY           = $00000020;
  769.   PHONEBUTTONFUNCTION_COVER               = $00000021;
  770.   PHONEBUTTONFUNCTION_CALLID              = $00000022;
  771.   PHONEBUTTONFUNCTION_LASTNUM             = $00000023;
  772.   PHONEBUTTONFUNCTION_NIGHTSRV            = $00000024;
  773.   PHONEBUTTONFUNCTION_SENDCALLS           = $00000025;
  774.   PHONEBUTTONFUNCTION_MSGINDICATOR        = $00000026;
  775.   PHONEBUTTONFUNCTION_REPDIAL             = $00000027;
  776.   PHONEBUTTONFUNCTION_SETREPDIAL          = $00000028;
  777.   PHONEBUTTONFUNCTION_SYSTEMSPEED         = $00000029;
  778.   PHONEBUTTONFUNCTION_STATIONSPEED        = $0000002A;
  779.   PHONEBUTTONFUNCTION_CAMPON              = $0000002B;
  780.   PHONEBUTTONFUNCTION_SAVEREPEAT          = $0000002C;
  781.   PHONEBUTTONFUNCTION_QUEUECALL           = $0000002D;
  782.   PHONEBUTTONFUNCTION_NONE                = $0000002E;
  783.   PHONEBUTTONMODE_DUMMY                   = $00000001;
  784.   PHONEBUTTONMODE_CALL                    = $00000002;
  785.   PHONEBUTTONMODE_FEATURE                 = $00000004;
  786.   PHONEBUTTONMODE_KEYPAD                  = $00000008;
  787.   PHONEBUTTONMODE_LOCAL                   = $00000010;
  788.   PHONEBUTTONMODE_DISPLAY                 = $00000020;
  789.   PHONEBUTTONSTATE_UP                     = $00000001;
  790.   PHONEBUTTONSTATE_DOWN                   = $00000002;
  791.   PHONEBUTTONSTATE_UNKNOWN                = $00000004;      // TAPI v1.4
  792.   PHONEBUTTONSTATE_UNAVAIL                = $00000008;      // TAPI v1.4
  793.   PHONEERR_ALLOCATED                      = $90000001;
  794.   PHONEERR_BADDEVICEID                    = $90000002;
  795.   PHONEERR_INCOMPATIBLEAPIVERSION         = $90000003;
  796.   PHONEERR_INCOMPATIBLEEXTVERSION         = $90000004;
  797.   PHONEERR_INIFILECORRUPT                 = $90000005;
  798.   PHONEERR_INUSE                          = $90000006;
  799.   PHONEERR_INVALAPPHANDLE                 = $90000007;
  800.   PHONEERR_INVALAPPNAME                   = $90000008;
  801.   PHONEERR_INVALBUTTONLAMPID              = $90000009;
  802.   PHONEERR_INVALBUTTONMODE                = $9000000A;
  803.   PHONEERR_INVALBUTTONSTATE               = $9000000B;
  804.   PHONEERR_INVALDATAID                    = $9000000C;
  805.   PHONEERR_INVALDEVICECLASS               = $9000000D;
  806.   PHONEERR_INVALEXTVERSION                = $9000000E;
  807.   PHONEERR_INVALHOOKSWITCHDEV             = $9000000F;
  808.   PHONEERR_INVALHOOKSWITCHMODE            = $90000010;
  809.   PHONEERR_INVALLAMPMODE                  = $90000011;
  810.   PHONEERR_INVALPARAM                     = $90000012;
  811.   PHONEERR_INVALPHONEHANDLE               = $90000013;
  812.   PHONEERR_INVALPHONESTATE                = $90000014;
  813.   PHONEERR_INVALPOINTER                   = $90000015;
  814.   PHONEERR_INVALPRIVILEGE                 = $90000016;
  815.   PHONEERR_INVALRINGMODE                  = $90000017;
  816.   PHONEERR_NODEVICE                       = $90000018;
  817.   PHONEERR_NODRIVER                       = $90000019;
  818.   PHONEERR_NOMEM                          = $9000001A;
  819.   PHONEERR_NOTOWNER                       = $9000001B;
  820.   PHONEERR_OPERATIONFAILED                = $9000001C;
  821.   PHONEERR_OPERATIONUNAVAIL               = $9000001D;
  822.   PHONEERR_RESOURCEUNAVAIL                = $9000001F;
  823.   PHONEERR_REQUESTOVERRUN                 = $90000020;
  824.   PHONEERR_STRUCTURETOOSMALL              = $90000021;
  825.   PHONEERR_UNINITIALIZED                  = $90000022;
  826.   PHONEERR_REINIT                         = $90000023;
  827. {$IFDEF Tapi_Ver20}
  828.   PHONEFEATURE_GETBUTTONINFO              = $00000001;      // TAPI v2.0
  829.   PHONEFEATURE_GETDATA                    = $00000002;      // TAPI v2.0
  830.   PHONEFEATURE_GETDISPLAY                 = $00000004;      // TAPI v2.0
  831.   PHONEFEATURE_GETGAINHANDSET             = $00000008;      // TAPI v2.0
  832.   PHONEFEATURE_GETGAINSPEAKER             = $00000010;      // TAPI v2.0
  833.   PHONEFEATURE_GETGAINHEADSET             = $00000020;      // TAPI v2.0
  834.   PHONEFEATURE_GETHOOKSWITCHHANDSET       = $00000040;      // TAPI v2.0
  835.   PHONEFEATURE_GETHOOKSWITCHSPEAKER       = $00000080;      // TAPI v2.0
  836.   PHONEFEATURE_GETHOOKSWITCHHEADSET       = $00000100;      // TAPI v2.0
  837.   PHONEFEATURE_GETLAMP                    = $00000200;      // TAPI v2.0
  838.   PHONEFEATURE_GETRING                    = $00000400;      // TAPI v2.0
  839.   PHONEFEATURE_GETVOLUMEHANDSET           = $00000800;      // TAPI v2.0
  840.   PHONEFEATURE_GETVOLUMESPEAKER           = $00001000;      // TAPI v2.0
  841.   PHONEFEATURE_GETVOLUMEHEADSET           = $00002000;      // TAPI v2.0
  842.   PHONEFEATURE_SETBUTTONINFO              = $00004000;      // TAPI v2.0
  843.   PHONEFEATURE_SETDATA                    = $00008000;      // TAPI v2.0
  844.   PHONEFEATURE_SETDISPLAY                 = $00010000;      // TAPI v2.0
  845.   PHONEFEATURE_SETGAINHANDSET             = $00020000;      // TAPI v2.0
  846.   PHONEFEATURE_SETGAINSPEAKER             = $00040000;      // TAPI v2.0
  847.   PHONEFEATURE_SETGAINHEADSET             = $00080000;      // TAPI v2.0
  848.   PHONEFEATURE_SETHOOKSWITCHHANDSET       = $00100000;      // TAPI v2.0
  849.   PHONEFEATURE_SETHOOKSWITCHSPEAKER       = $00200000;      // TAPI v2.0
  850.   PHONEFEATURE_SETHOOKSWITCHHEADSET       = $00400000;      // TAPI v2.0
  851.   PHONEFEATURE_SETLAMP                    = $00800000;      // TAPI v2.0
  852.   PHONEFEATURE_SETRING                    = $01000000;      // TAPI v2.0
  853.   PHONEFEATURE_SETVOLUMEHANDSET           = $02000000;      // TAPI v2.0
  854.   PHONEFEATURE_SETVOLUMESPEAKER           = $04000000;      // TAPI v2.0
  855.   PHONEFEATURE_SETVOLUMEHEADSET           = $08000000;      // TAPI v2.0
  856. {$ENDIF}
  857.   PHONEHOOKSWITCHDEV_HANDSET              = $00000001;
  858.   PHONEHOOKSWITCHDEV_SPEAKER              = $00000002;
  859.   PHONEHOOKSWITCHDEV_HEADSET              = $00000004;
  860.   PHONEHOOKSWITCHMODE_ONHOOK              = $00000001;
  861.   PHONEHOOKSWITCHMODE_MIC                 = $00000002;
  862.   PHONEHOOKSWITCHMODE_SPEAKER             = $00000004;
  863.   PHONEHOOKSWITCHMODE_MICSPEAKER          = $00000008;
  864.   PHONEHOOKSWITCHMODE_UNKNOWN             = $00000010;
  865. {$IFDEF Tapi_Ver20}
  866.   PHONEINITIALIZEEXOPTION_USEHIDDENWINDOW     = $00000001;  // TAPI v2.0
  867.   PHONEINITIALIZEEXOPTION_USEEVENT            = $00000002;  // TAPI v2.0
  868.   PHONEINITIALIZEEXOPTION_USECOMPLETIONPORT   = $00000003;  // TAPI v2.0
  869. {$ENDIF}
  870.   PHONELAMPMODE_DUMMY                     = $00000001;
  871.   PHONELAMPMODE_OFF                       = $00000002;
  872.   PHONELAMPMODE_STEADY                    = $00000004;
  873.   PHONELAMPMODE_WINK                      = $00000008;
  874.   PHONELAMPMODE_FLASH                     = $00000010;
  875.   PHONELAMPMODE_FLUTTER                   = $00000020;
  876.   PHONELAMPMODE_BROKENFLUTTER             = $00000040;
  877.   PHONELAMPMODE_UNKNOWN                   = $00000080;
  878.   PHONEPRIVILEGE_MONITOR                  = $00000001;
  879.   PHONEPRIVILEGE_OWNER                    = $00000002;
  880.   PHONESTATE_OTHER                        = $00000001;
  881.   PHONESTATE_CONNECTED                    = $00000002;
  882.   PHONESTATE_DISCONNECTED                 = $00000004;
  883.   PHONESTATE_OWNER                        = $00000008;
  884.   PHONESTATE_MONITORS                     = $00000010;
  885.   PHONESTATE_DISPLAY                      = $00000020;
  886.   PHONESTATE_LAMP                         = $00000040;
  887.   PHONESTATE_RINGMODE                     = $00000080;
  888.   PHONESTATE_RINGVOLUME                   = $00000100;
  889.   PHONESTATE_HANDSETHOOKSWITCH            = $00000200;
  890.   PHONESTATE_HANDSETVOLUME                = $00000400;
  891.   PHONESTATE_HANDSETGAIN                  = $00000800;
  892.   PHONESTATE_SPEAKERHOOKSWITCH            = $00001000;
  893.   PHONESTATE_SPEAKERVOLUME                = $00002000;
  894.   PHONESTATE_SPEAKERGAIN                  = $00004000;
  895.   PHONESTATE_HEADSETHOOKSWITCH            = $00008000;
  896.   PHONESTATE_HEADSETVOLUME                = $00010000;
  897.   PHONESTATE_HEADSETGAIN                  = $00020000;
  898.   PHONESTATE_SUSPEND                      = $00040000;
  899.   PHONESTATE_RESUME                       = $00080000;
  900.   PHONESTATE_DEVSPECIFIC                  = $00100000;
  901.   PHONESTATE_REINIT                       = $00200000;
  902.   PHONESTATE_CAPSCHANGE                   = $00400000;      // TAPI v1.4
  903.   PHONESTATE_REMOVED                      = $00800000;      // TAPI v1.4
  904.   PHONESTATUSFLAGS_CONNECTED              = $00000001;
  905.   PHONESTATUSFLAGS_SUSPENDED              = $00000002;
  906.   STRINGFORMAT_ASCII                      = $00000001;
  907.   STRINGFORMAT_DBCS                       = $00000002;
  908.   STRINGFORMAT_UNICODE                    = $00000003;
  909.   STRINGFORMAT_BINARY                     = $00000004;
  910.   TAPI_REPLY                              = WM_USER + 99;
  911.   TAPIERR_CONNECTED                       = 0;
  912.   TAPIERR_DROPPED                         = -1;
  913.   TAPIERR_NOREQUESTRECIPIENT              = -2;
  914.   TAPIERR_REQUESTQUEUEFULL                = -3;
  915.   TAPIERR_INVALDESTADDRESS                = -4;
  916.   TAPIERR_INVALWINDOWHANDLE               = -5;
  917.   TAPIERR_INVALDEVICECLASS                = -6;
  918.   TAPIERR_INVALDEVICEID                   = -7;
  919.   TAPIERR_DEVICECLASSUNAVAIL              = -8;
  920.   TAPIERR_DEVICEIDUNAVAIL                 = -9;
  921.   TAPIERR_DEVICEINUSE                     = -10;
  922.   TAPIERR_DESTBUSY                        = -11;
  923.   TAPIERR_DESTNOANSWER                    = -12;
  924.   TAPIERR_DESTUNAVAIL                     = -13;
  925.   TAPIERR_UNKNOWNWINHANDLE                = -14;
  926.   TAPIERR_UNKNOWNREQUESTID                = -15;
  927.   TAPIERR_REQUESTFAILED                   = -16;
  928.   TAPIERR_REQUESTCANCELLED                = -17;
  929.   TAPIERR_INVALPOINTER                    = -18;
  930.   TAPIMAXDESTADDRESSSIZE                  = 80;
  931.   TAPIMAXAPPNAMESIZE                      = 40;
  932.   TAPIMAXCALLEDPARTYSIZE                  = 40;
  933.   TAPIMAXCOMMENTSIZE                      = 80;
  934.   TAPIMAXDEVICECLASSSIZE                  = 40;
  935.   TAPIMAXDEVICEIDSIZE                     = 40;
  936. type
  937.   LPLINEADDRESSCAPS = ^TLINEADDRESSCAPS;
  938.   PLINEADDRESSCAPS = ^TLINEADDRESSCAPS;
  939.   TLINEADDRESSCAPS =
  940.     record
  941.       dwTotalSize,
  942.       dwNeededSize,
  943.       dwUsedSize,
  944.       dwLineDeviceID,
  945.       dwAddressSize,
  946.       dwAddressOffset,
  947.       dwDevSpecificSize,
  948.       dwDevSpecificOffset,
  949.       dwAddressSharing,
  950.       dwAddressStates,
  951.       dwCallInfoStates,
  952.       dwCallerIDFlags,
  953.       dwCalledIDFlags,
  954.       dwConnectedIDFlags,
  955.       dwRedirectionIDFlags,
  956.       dwRedirectingIDFlags,
  957.       dwCallStates,
  958.       dwDialToneModes,
  959.       dwBusyModes,
  960.       dwSpecialInfo,
  961.       dwDisconnectModes,
  962.       dwMaxNumActiveCalls,
  963.       dwMaxNumOnHoldCalls,
  964.       dwMaxNumOnHoldPendingCalls,
  965.       dwMaxNumConference,
  966.       dwMaxNumTransConf,
  967.       dwAddrCapFlags,
  968.       dwCallFeatures,
  969.       dwRemoveFromConfCaps,
  970.       dwRemoveFromConfState,
  971.       dwTransferModes,
  972.       dwParkModes,
  973.       dwForwardModes,
  974.       dwMaxForwardEntries,
  975.       dwMaxSpecificEntries,
  976.       dwMinFwdNumRings,
  977.       dwMaxFwdNumRings,
  978.       dwMaxCallCompletions,
  979.       dwCallCompletionConds,
  980.       dwCallCompletionModes,
  981.       dwNumCompletionMessages,
  982.       dwCompletionMsgTextEntrySize,
  983.       dwCompletionMsgTextSize,
  984.       dwCompletionMsgTextOffset,
  985.       dwAddressFeatures : DWORD;                      // TAPI v1.4
  986. {$IFDEF Tapi_Ver20}
  987.       dwPredictiveAutoTransferStates,                 // TAPI v2.0
  988.       dwNumCallTreatments,                            // TAPI v2.0
  989.       dwCallTreatmentListSize,                        // TAPI v2.0
  990.       dwCallTreatmentListOffset,                      // TAPI v2.0
  991.       dwDeviceClassesSize,                            // TAPI v2.0
  992.       dwDeviceClassesOffset,                          // TAPI v2.0
  993.       dwMaxCallDataSize,                              // TAPI v2.0
  994.       dwCallFeatures2,                                // TAPI v2.0
  995.       dwMaxNoAnswerTimeout,                           // TAPI v2.0
  996.       dwConnectedModes,                               // TAPI v2.0
  997.       dwOfferingModes,                                // TAPI v2.0
  998.       dwAvailableMediaModes : DWORD;                  // TAPI v2.0
  999. {$ENDIF}
  1000.     end;
  1001.   LPLINEADDRESSSTATUS = ^TLINEADDRESSSTATUS;
  1002.   PLINEADDRESSSTATUS = ^TLINEADDRESSSTATUS;
  1003.   TLINEADDRESSSTATUS =
  1004.     record
  1005.       dwTotalSize,
  1006.       dwNeededSize,
  1007.       dwUsedSize,
  1008.       dwNumInUse,
  1009.       dwNumActiveCalls,
  1010.       dwNumOnHoldCalls,
  1011.       dwNumOnHoldPendCalls,
  1012.       dwAddressFeatures,
  1013.       dwNumRingsNoAnswer,
  1014.       dwForwardNumEntries,
  1015.       dwForwardSize,
  1016.       dwForwardOffset,
  1017.       dwTerminalModesSize,
  1018.       dwTerminalModesOffset,
  1019.       dwDevSpecificSize,
  1020.       dwDevSpecificOffset : DWORD;
  1021.     end;
  1022. {$IFDEF Tapi_Ver20}
  1023.   LPLINEAGENTACTIVITYENTRY = ^TLINEAGENTACTIVITYENTRY;
  1024.   PLINEAGENTACTIVITYENTRY = ^TLINEAGENTACTIVITYENTRY;
  1025.   TLINEAGENTACTIVITYENTRY =
  1026.     record
  1027.       dwID,                                           // TAPI v2.0
  1028.       dwNameSize,                                     // TAPI v2.0
  1029.       dwNameOffset : DWORD;                           // TAPI v2.0
  1030.     end;
  1031.   LPLINEAGENTACTIVITYLIST = ^TLINEAGENTACTIVITYLIST;
  1032.   PLINEAGENTACTIVITYLIST = ^TLINEAGENTACTIVITYLIST;
  1033.   TLINEAGENTACTIVITYLIST =
  1034.     record
  1035.       dwTotalSize,                                    // TAPI v2.0
  1036.       dwNeededSize,                                   // TAPI v2.0
  1037.       dwUsedSize,                                     // TAPI v2.0
  1038.       dwNumEntries,                                   // TAPI v2.0
  1039.       dwListSize,                                     // TAPI v2.0
  1040.       dwListOffset : DWORD;                           // TAPI v2.0
  1041.     end;
  1042.   LPLINEAGENTCAPS = ^TLINEAGENTCAPS;
  1043.   PLINEAGENTCAPS = ^TLINEAGENTCAPS;
  1044.   TLINEAGENTCAPS =
  1045.     record
  1046.       dwTotalSize,                                    // TAPI v2.0
  1047.       dwNeededSize,                                   // TAPI v2.0
  1048.       dwUsedSize,                                     // TAPI v2.0
  1049.       dwAgentHandlerInfoSize,                         // TAPI v2.0
  1050.       dwAgentHandlerInfoOffset,                       // TAPI v2.0
  1051.       dwCapsVersion,                                  // TAPI v2.0
  1052.       dwFeatures,                                     // TAPI v2.0
  1053.       dwStates,                                       // TAPI v2.0
  1054.       dwNextStates,                                   // TAPI v2.0
  1055.       dwMaxNumGroupEntries,                           // TAPI v2.0
  1056.       dwAgentStatusMessages,                          // TAPI v2.0
  1057.       dwNumAgentExtensionIDs,                         // TAPI v2.0
  1058.       dwAgentExtensionIDListSize,                     // TAPI v2.0
  1059.       dwAgentExtensionIDListOffset : DWORD;           // TAPI v2.0
  1060.     end;
  1061.   LPLINEAGENTGROUPENTRY = ^TLINEAGENTGROUPENTRY;
  1062.   PLINEAGENTGROUPENTRY = ^TLINEAGENTGROUPENTRY;
  1063.   TLINEAGENTGROUPENTRY =
  1064.     record
  1065.       GroupID :
  1066.         record
  1067.           dwGroupID1,                                 // TAPI v2.0
  1068.           dwGroupID2,                                 // TAPI v2.0
  1069.           dwGroupID3,                                 // TAPI v2.0
  1070.           dwGroupID4 : DWORD;                         // TAPI v2.0
  1071.         end;
  1072.       dwNameSize,                                     // TAPI v2.0
  1073.       dwNameOffset : DWORD;                           // TAPI v2.0
  1074.     end;
  1075.   LPLINEAGENTGROUPLIST = ^TLINEAGENTGROUPLIST;
  1076.   PLINEAGENTGROUPLIST = ^TLINEAGENTGROUPLIST;
  1077.   TLINEAGENTGROUPLIST =
  1078.     record
  1079.       dwTotalSize,                                    // TAPI v2.0
  1080.       dwNeededSize,                                   // TAPI v2.0
  1081.       dwUsedSize,                                     // TAPI v2.0
  1082.       dwNumEntries,                                   // TAPI v2.0
  1083.       dwListSize,                                     // TAPI v2.0
  1084.       dwListOffset : DWORD;                           // TAPI v2.0
  1085.     end;
  1086.   LPLINEAGENTSTATUS = ^TLINEAGENTSTATUS;
  1087.   PLINEAGENTSTATUS = ^TLINEAGENTSTATUS;
  1088.   TLINEAGENTSTATUS =
  1089.     record
  1090.       dwTotalSize,                                    // TAPI v2.0
  1091.       dwNeededSize,                                   // TAPI v2.0
  1092.       dwUsedSize,                                     // TAPI v2.0
  1093.       dwNumEntries,                                   // TAPI v2.0
  1094.       dwGroupListSize,                                // TAPI v2.0
  1095.       dwGroupListOffset,                              // TAPI v2.0
  1096.       dwState,                                        // TAPI v2.0
  1097.       dwNextState,                                    // TAPI v2.0
  1098.       dwActivityID,                                   // TAPI v2.0
  1099.       dwActivitySize,                                 // TAPI v2.0
  1100.       dwActivityOffset,                               // TAPI v2.0
  1101.       dwAgentFeatures,                                // TAPI v2.0
  1102.       dwValidStates,                                  // TAPI v2.0
  1103.       dwValidNextStates : DWORD;                      // TAPI v2.0
  1104.     end;
  1105.   LPLINEAPPINFO = ^TLINEAPPINFO;
  1106.   PLINEAPPINFO = ^TLINEAPPINFO;
  1107.   TLINEAPPINFO =
  1108.     record
  1109.       dwMachineNameSize,                              // TAPI v2.0
  1110.       dwMachineNameOffset,                            // TAPI v2.0
  1111.       dwUserNameSize,                                 // TAPI v2.0
  1112.       dwUserNameOffset,                               // TAPI v2.0
  1113.       dwModuleFilenameSize,                           // TAPI v2.0
  1114.       dwModuleFilenameOffset,                         // TAPI v2.0
  1115.       dwFriendlyNameSize,                             // TAPI v2.0
  1116.       dwFriendlyNameOffset,                           // TAPI v2.0
  1117.       dwMediaModes,                                   // TAPI v2.0
  1118.       dwAddressID : DWORD;                            // TAPI v2.0
  1119.     end;
  1120. {$ENDIF}
  1121.   LPLINEDIALPARAMS = ^TLINEDIALPARAMS;
  1122.   PLINEDIALPARAMS = ^TLINEDIALPARAMS;
  1123.   TLINEDIALPARAMS =
  1124.     record
  1125.       dwDialPause,
  1126.       dwDialSpeed,
  1127.       dwDigitDuration,
  1128.       dwWaitForDialtone : DWORD;
  1129.     end;
  1130.   LPLINECALLINFO = ^TLINECALLINFO;
  1131.   PLINECALLINFO = ^TLINECALLINFO;
  1132.   TLINECALLINFO =
  1133.     record
  1134.       dwTotalSize,
  1135.       dwNeededSize,
  1136.       dwUsedSize : DWORD;
  1137.       hLine : HLINE;
  1138.       dwLineDeviceID,
  1139.       dwAddressID,
  1140.       dwBearerMode,
  1141.       dwRate,
  1142.       dwMediaMode,
  1143.       dwAppSpecific,
  1144.       dwCallID,
  1145.       dwRelatedCallID,
  1146.       dwCallParamFlags,
  1147.       dwCallStates,
  1148.       dwMonitorDigitModes,
  1149.       dwMonitorMediaModes : DWORD;
  1150.       DialParams : TLINEDIALPARAMS;
  1151.       dwOrigin,
  1152.       dwReason,
  1153.       dwCompletionID,
  1154.       dwNumOwners,
  1155.       dwNumMonitors,
  1156.       dwCountryCode,
  1157.       dwTrunk,
  1158.       dwCallerIDFlags,
  1159.       dwCallerIDSize,
  1160.       dwCallerIDOffset,
  1161.       dwCallerIDNameSize,
  1162.       dwCallerIDNameOffset,
  1163.       dwCalledIDFlags,
  1164.       dwCalledIDSize,
  1165.       dwCalledIDOffset,
  1166.       dwCalledIDNameSize,
  1167.       dwCalledIDNameOffset,
  1168.       dwConnectedIDFlags,
  1169.       dwConnectedIDSize,
  1170.       dwConnectedIDOffset,
  1171.       dwConnectedIDNameSize,
  1172.       dwConnectedIDNameOffset,
  1173.       dwRedirectionIDFlags,
  1174.       dwRedirectionIDSize,
  1175.       dwRedirectionIDOffset,
  1176.       dwRedirectionIDNameSize,
  1177.       dwRedirectionIDNameOffset,
  1178.       dwRedirectingIDFlags,
  1179.       dwRedirectingIDSize,
  1180.       dwRedirectingIDOffset,
  1181.       dwRedirectingIDNameSize,
  1182.       dwRedirectingIDNameOffset,
  1183.       dwAppNameSize,
  1184.       dwAppNameOffset,
  1185.       dwDisplayableAddressSize,
  1186.       dwDisplayableAddressOffset,
  1187.       dwCalledPartySize,
  1188.       dwCalledPartyOffset,
  1189.       dwCommentSize,
  1190.       dwCommentOffset,
  1191.       dwDisplaySize,
  1192.       dwDisplayOffset,
  1193.       dwUserUserInfoSize,
  1194.       dwUserUserInfoOffset,
  1195.       dwHighLevelCompSize,
  1196.       dwHighLevelCompOffset,
  1197.       dwLowLevelCompSize,
  1198.       dwLowLevelCompOffset,
  1199.       dwChargingInfoSize,
  1200.       dwChargingInfoOffset,
  1201.       dwTerminalModesSize,
  1202.       dwTerminalModesOffset,
  1203.       dwDevSpecificSize,
  1204.       dwDevSpecificOffset : DWORD;
  1205. {$IFDEF Tapi_Ver20}
  1206.       dwCallTreatment,                                // TAPI v2.0
  1207.       dwCallDataSize,                                 // TAPI v2.0
  1208.       dwCallDataOffset,                               // TAPI v2.0
  1209.       dwSendingFlowspecSize,                          // TAPI v2.0
  1210.       dwSendingFlowspecOffset,                        // TAPI v2.0
  1211.       dwReceivingFlowspecSize,                        // TAPI v2.0
  1212.       dwReceivingFlowspecOffset : DWORD;              // TAPI v2.0
  1213. {$ENDIF}
  1214.     end;
  1215.   LPLINECALLLIST = ^TLINECALLLIST;
  1216.   PLINECALLLIST = ^TLINECALLLIST;
  1217.   TLINECALLLIST =
  1218.     record
  1219.       dwTotalSize,
  1220.       dwNeededSize,
  1221.       dwUsedSize,
  1222.       dwCallsNumEntries,
  1223.       dwCallsSize,
  1224.       dwCallsOffset : DWORD;
  1225.     end;
  1226.   LPLINECALLPARAMS = ^TLINECALLPARAMS;
  1227.   PLINECALLPARAMS = ^TLINECALLPARAMS;
  1228.   TLINECALLPARAMS =
  1229.     record                            // Defaults:
  1230.       dwTotalSize,                    // ---------
  1231.       dwBearerMode,                   // voice
  1232.       dwMinRate,                      // (3.1kHz)
  1233.       dwMaxRate,                      // (3.1kHz)
  1234.       dwMediaMode,                    // interactiveVoice
  1235.       dwCallParamFlags,               // 0
  1236.       dwAddressMode,                  // addressID
  1237.       dwAddressID : DWORD;            // (any available)
  1238.       DialParams : TLINEDIALPARAMS;   // (0, 0, 0, 0)
  1239.       dwOrigAddressSize,              // 0
  1240.       dwOrigAddressOffset,
  1241.       dwDisplayableAddressSize,
  1242.       dwDisplayableAddressOffset,
  1243.       dwCalledPartySize,              // 0
  1244.       dwCalledPartyOffset,
  1245.       dwCommentSize,                  // 0
  1246.       dwCommentOffset,
  1247.       dwUserUserInfoSize,             // 0
  1248.       dwUserUserInfoOffset,
  1249.       dwHighLevelCompSize,            // 0
  1250.       dwHighLevelCompOffset,
  1251.       dwLowLevelCompSize,             // 0
  1252.       dwLowLevelCompOffset,
  1253.       dwDevSpecificSize,              // 0
  1254.       dwDevSpecificOffset : DWORD;
  1255. {$IFDEF Tapi_Ver20}
  1256.       dwPredictiveAutoTransferStates,                 // TAPI v2.0
  1257.       dwTargetAddressSize,                            // TAPI v2.0
  1258.       dwTargetAddressOffset,                          // TAPI v2.0
  1259.       dwSendingFlowspecSize,                          // TAPI v2.0
  1260.       dwSendingFlowspecOffset,                        // TAPI v2.0
  1261.       dwReceivingFlowspecSize,                        // TAPI v2.0
  1262.       dwReceivingFlowspecOffset,                      // TAPI v2.0
  1263.       dwDeviceClassSize,                              // TAPI v2.0
  1264.       dwDeviceClassOffset,                            // TAPI v2.0
  1265.       dwDeviceConfigSize,                             // TAPI v2.0
  1266.       dwDeviceConfigOffset,                           // TAPI v2.0
  1267.       dwCallDataSize,                                 // TAPI v2.0
  1268.       dwCallDataOffset,                               // TAPI v2.0
  1269.       dwNoAnswerTimeout,                              // TAPI v2.0
  1270.       dwCallingPartyIDSize,                           // TAPI v2.0
  1271.       dwCallingPartyIDOffset : DWORD;                 // TAPI v2.0
  1272. {$ENDIF}
  1273.     end;
  1274.   LPLINECALLSTATUS = ^TLINECALLSTATUS;
  1275.   PLINECALLSTATUS = ^TLINECALLSTATUS;
  1276.   TLINECALLSTATUS =
  1277.     record
  1278.       dwTotalSize,
  1279.       dwNeededSize,
  1280.       dwUsedSize,
  1281.       dwCallState,
  1282.       dwCallStateMode,
  1283.       dwCallPrivilege,
  1284.       dwCallFeatures,
  1285.       dwDevSpecificSize,
  1286.       dwDevSpecificOffset : DWORD;
  1287. {$IFDEF Tapi_Ver20}
  1288.       dwCallFeatures2 : DWORD;                                    // TAPI v2.0
  1289.       {$IFDEF Win32}
  1290.       tStateEntryTime : TSystemTime;                              // TAPI v2.0
  1291.       {$ELSE}
  1292.       tStateEntryTime : array[0..7] of Word;                      // TAPI v2.0
  1293.       {$ENDIF}
  1294. {$ENDIF}
  1295.     end;
  1296.     
  1297. {$IFDEF Tapi_Ver20}
  1298.   LPLINECALLTREATMENTENTRY = ^TLINECALLTREATMENTENTRY;
  1299.   PLINECALLTREATMENTENTRY = ^TLINECALLTREATMENTENTRY;
  1300.   TLINECALLTREATMENTENTRY =
  1301.     record
  1302.       dwCallTreatmentID,                              // TAPI v2.0
  1303.       dwCallTreatmentNameSize,                        // TAPI v2.0
  1304.       dwCallTreatmentNameOffset : DWORD;              // TAPI v2.0
  1305.     end;
  1306. {$ENDIF}
  1307.   LPLINECARDENTRY = ^TLINECARDENTRY;
  1308.   PLINECARDENTRY = ^TLINECARDENTRY;
  1309.   TLINECARDENTRY =
  1310.     record
  1311.       dwPermanentCardID,
  1312.       dwCardNameSize,
  1313.       dwCardNameOffset,
  1314.       dwCardNumberDigits,                             // TAPI v1.4
  1315.       dwSameAreaRuleSize,                             // TAPI v1.4
  1316.       dwSameAreaRuleOffset,                           // TAPI v1.4
  1317.       dwLongDistanceRuleSize,                         // TAPI v1.4
  1318.       dwLongDistanceRuleOffset,                       // TAPI v1.4
  1319.       dwInternationalRuleSize,                        // TAPI v1.4
  1320.       dwInternationalRuleOffset,                      // TAPI v1.4
  1321.       dwOptions : DWORD;                              // TAPI v1.4
  1322.     end;
  1323.   LPLINECOUNTRYENTRY = ^TLINECOUNTRYENTRY;
  1324.   PLINECOUNTRYENTRY = ^TLINECOUNTRYENTRY;
  1325.   TLINECOUNTRYENTRY =
  1326.     record
  1327.       dwCountryID,                                    // TAPI v1.4
  1328.       dwCountryCode,                                  // TAPI v1.4
  1329.       dwNextCountryID,                                // TAPI v1.4
  1330.       dwCountryNameSize,                              // TAPI v1.4
  1331.       dwCountryNameOffset,                            // TAPI v1.4
  1332.       dwSameAreaRuleSize,                             // TAPI v1.4
  1333.       dwSameAreaRuleOffset,                           // TAPI v1.4
  1334.       dwLongDistanceRuleSize,                         // TAPI v1.4
  1335.       dwLongDistanceRuleOffset,                       // TAPI v1.4
  1336.       dwInternationalRuleSize,                        // TAPI v1.4
  1337.       dwInternationalRuleOffset : DWORD;              // TAPI v1.4
  1338.     end;
  1339.   LPLINECOUNTRYLIST = ^TLINECOUNTRYLIST;
  1340.   PLINECOUNTRYLIST = ^TLINECOUNTRYLIST;
  1341.   TLINECOUNTRYLIST =
  1342.     record
  1343.       dwTotalSize,                                    // TAPI v1.4
  1344.       dwNeededSize,                                   // TAPI v1.4
  1345.       dwUsedSize,                                     // TAPI v1.4
  1346.       dwNumCountries,                                 // TAPI v1.4
  1347.       dwCountryListSize,                              // TAPI v1.4
  1348.       dwCountryListOffset : DWORD;                    // TAPI v1.4
  1349.     end;
  1350.   LPLINEDEVCAPS = ^TLINEDEVCAPS;
  1351.   PLINEDEVCAPS = ^TLINEDEVCAPS;
  1352.   TLINEDEVCAPS =
  1353.     record
  1354.       dwTotalSize,
  1355.       dwNeededSize,
  1356.       dwUsedSize,
  1357.       dwProviderInfoSize,
  1358.       dwProviderInfoOffset,
  1359.       dwSwitchInfoSize,
  1360.       dwSwitchInfoOffset,
  1361.       dwPermanentLineID,
  1362.       dwLineNameSize,
  1363.       dwLineNameOffset,
  1364.       dwStringFormat,
  1365.       dwAddressModes,
  1366.       dwNumAddresses,
  1367.       dwBearerModes,
  1368.       dwMaxRate,
  1369.       dwMediaModes,
  1370.       dwGenerateToneModes,
  1371.       dwGenerateToneMaxNumFreq,
  1372.       dwGenerateDigitModes,
  1373.       dwMonitorToneMaxNumFreq,
  1374.       dwMonitorToneMaxNumEntries,
  1375.       dwMonitorDigitModes,
  1376.       dwGatherDigitsMinTimeout,
  1377.       dwGatherDigitsMaxTimeout,
  1378.       dwMedCtlDigitMaxListSize,
  1379.       dwMedCtlMediaMaxListSize,
  1380.       dwMedCtlToneMaxListSize,
  1381.       dwMedCtlCallStateMaxListSize,
  1382.       dwDevCapFlags,
  1383.       dwMaxNumActiveCalls,
  1384.       dwAnswerMode,
  1385.       dwRingModes,
  1386.       dwLineStates,
  1387.       dwUUIAcceptSize,
  1388.       dwUUIAnswerSize,
  1389.       dwUUIMakeCallSize,
  1390.       dwUUIDropSize,
  1391.       dwUUISendUserUserInfoSize,
  1392.       dwUUICallInfoSize : DWORD;
  1393.       MinDialParams,
  1394.       MaxDialParams,
  1395.       DefaultDialParams : TLINEDIALPARAMS;
  1396.       dwNumTerminals,
  1397.       dwTerminalCapsSize,
  1398.       dwTerminalCapsOffset,
  1399.       dwTerminalTextEntrySize,
  1400.       dwTerminalTextSize,
  1401.       dwTerminalTextOffset,
  1402.       dwDevSpecificSize,
  1403.       dwDevSpecificOffset,
  1404.       dwLineFeatures : DWORD;                         // TAPI v1.4
  1405. {$IFDEF Tapi_Ver20}
  1406.       dwSettableDevStatus,                            // TAPI v2.0
  1407.       dwDeviceClassesSize,                            // TAPI v2.0
  1408.       dwDeviceClassesOffset : DWORD;                  // TAPI v2.0
  1409. {$ENDIF}
  1410.     end;
  1411.   LPLINEDEVSTATUS = ^TLINEDEVSTATUS;
  1412.   PLINEDEVSTATUS = ^TLINEDEVSTATUS;
  1413.   TLINEDEVSTATUS =
  1414.     record
  1415.       dwTotalSize,
  1416.       dwNeededSize,
  1417.       dwUsedSize,
  1418.       dwNumOpens,
  1419.       dwOpenMediaModes,
  1420.       dwNumActiveCalls,
  1421.       dwNumOnHoldCalls,
  1422.       dwNumOnHoldPendCalls,
  1423.       dwLineFeatures,
  1424.       dwNumCallCompletions,
  1425.       dwRingMode,
  1426.       dwSignalLevel,
  1427.       dwBatteryLevel,
  1428.       dwRoamMode,
  1429.       dwDevStatusFlags,
  1430.       dwTerminalModesSize,
  1431.       dwTerminalModesOffset,
  1432.       dwDevSpecificSize,
  1433.       dwDevSpecificOffset : DWORD;
  1434. {$IFDEF Tapi_Ver20}
  1435.       dwAvailableMediaModes,                          // TAPI v2.0
  1436.       dwAppInfoSize,                                  // TAPI v2.0
  1437.       dwAppInfoOffset : DWORD;                        // TAPI v2.0
  1438. {$ENDIF}
  1439.     end;
  1440.   LPLINEEXTENSIONID = ^TLINEEXTENSIONID;
  1441.   PLINEEXTENSIONID = ^TLINEEXTENSIONID;
  1442.   TLINEEXTENSIONID =
  1443.     record
  1444.       dwExtensionID0,
  1445.       dwExtensionID1,
  1446.       dwExtensionID2,
  1447.       dwExtensionID3 : DWORD;
  1448.     end;
  1449.   LPLINEFORWARD = ^TLINEFORWARD;
  1450.   PLINEFORWARD = ^TLINEFORWARD;
  1451.   TLINEFORWARD =
  1452.     record
  1453.       dwForwardMode,
  1454.       dwCallerAddressSize,
  1455.       dwCallerAddressOffset,
  1456.       dwDestCountryCode,
  1457.       dwDestAddressSize,
  1458.       dwDestAddressOffset : DWORD;
  1459.     end;
  1460.   LPLINEFORWARDLIST = ^TLINEFORWARDLIST;
  1461.   PLINEFORWARDLIST = ^TLINEFORWARDLIST;
  1462.   TLINEFORWARDLIST =
  1463.     record
  1464.       dwTotalSize,
  1465.       dwNumEntries : DWORD;
  1466.     end;
  1467.   LPLINEGENERATETONE = ^TLINEGENERATETONE;
  1468.   PLINEGENERATETONE = ^TLINEGENERATETONE;
  1469.   TLINEGENERATETONE =
  1470.     record
  1471.       dwFrequency,
  1472.       dwCadenceOn,
  1473.       dwCadenceOff,
  1474.       dwVolume : DWORD;
  1475.     end;
  1476. {$IFDEF Tapi_Ver20}
  1477.   THandleUnion =
  1478.     record
  1479.       case Integer of
  1480.         0 :
  1481.           (hEvent : THandle);
  1482.         1 :
  1483.           (hCompletionPort : THandle);
  1484.     end;
  1485.   LPLINEINITIALIZEEXPARAMS = ^TLINEINITIALIZEEXPARAMS;
  1486.   PLINEINITIALIZEEXPARAMS = ^TLINEINITIALIZEEXPARAMS;
  1487.   TLINEINITIALIZEEXPARAMS =
  1488.     record
  1489.       dwTotalSize,                                    // TAPI v2.0
  1490.       dwNeededSize,                                   // TAPI v2.0
  1491.       dwUsedSize,                                     // TAPI v2.0
  1492.       dwOptions : DWORD;                              // TAPI v2.0
  1493.       Handles : THandleUnion; //!! Union converted to THandleUnion
  1494.       dwCompletionKey : DWORD;                        // TAPI v2.0
  1495.     end;
  1496. {$ENDIF}
  1497.   LPLINELOCATIONENTRY = ^TLINELOCATIONENTRY;
  1498.   PLINELOCATIONENTRY = ^TLINELOCATIONENTRY;
  1499.   TLINELOCATIONENTRY =
  1500.     record
  1501.       dwPermanentLocationID,
  1502.       dwLocationNameSize,
  1503.       dwLocationNameOffset,
  1504.       dwCountryCode,
  1505.       dwCityCodeSize,
  1506.       dwCityCodeOffset,
  1507.       dwPreferredCardID,
  1508.       dwLocalAccessCodeSize,                          // TAPI v1.4
  1509.       dwLocalAccessCodeOffset,                        // TAPI v1.4
  1510.       dwLongDistanceAccessCodeSize,                   // TAPI v1.4
  1511.       dwLongDistanceAccessCodeOffset,                 // TAPI v1.4
  1512.       dwTollPrefixListSize,                           // TAPI v1.4
  1513.       dwTollPrefixListOffset,                         // TAPI v1.4
  1514.       dwCountryID,                                    // TAPI v1.4
  1515.       dwOptions,                                      // TAPI v1.4
  1516.       dwCancelCallWaitingSize,                        // TAPI v1.4
  1517.       dwCancelCallWaitingOffset : DWORD;              // TAPI v1.4
  1518.     end;
  1519.   LPLINEMEDIACONTROLCALLSTATE = ^TLINEMEDIACONTROLCALLSTATE;
  1520.   PLINEMEDIACONTROLCALLSTATE = ^TLINEMEDIACONTROLCALLSTATE;
  1521.   TLINEMEDIACONTROLCALLSTATE =
  1522.     record
  1523.       dwCallStates,
  1524.       dwMediaControl : DWORD;
  1525.     end;
  1526.   LPLINEMEDIACONTROLDIGIT = ^TLINEMEDIACONTROLDIGIT;
  1527.   PLINEMEDIACONTROLDIGIT = ^TLINEMEDIACONTROLDIGIT;
  1528.   TLINEMEDIACONTROLDIGIT =
  1529.     record
  1530.       dwDigit,
  1531.       dwDigitModes,
  1532.       dwMediaControl : DWORD;
  1533.     end;
  1534.   LPLINEMEDIACONTROLMEDIA = ^TLINEMEDIACONTROLMEDIA;
  1535.   PLINEMEDIACONTROLMEDIA = ^TLINEMEDIACONTROLMEDIA;
  1536.   TLINEMEDIACONTROLMEDIA =
  1537.     record
  1538.       dwMediaModes,
  1539.       dwDuration,
  1540.       dwMediaControl : DWORD;
  1541.     end;
  1542.   LPLINEMEDIACONTROLTONE = ^TLINEMEDIACONTROLTONE;
  1543.   PLINEMEDIACONTROLTONE = ^TLINEMEDIACONTROLTONE;
  1544.   TLINEMEDIACONTROLTONE =
  1545.     record
  1546.       dwAppSpecific,
  1547.       dwDuration,
  1548.       dwFrequency1,
  1549.       dwFrequency2,
  1550.       dwFrequency3,
  1551.       dwMediaControl : DWORD;
  1552.     end;
  1553. {$IFDEF Tapi_Ver20}
  1554.   LPLINEMESSAGE = ^TLINEMESSAGE;
  1555.   PLINEMESSAGE = ^TLINEMESSAGE;
  1556.   TLINEMESSAGE =
  1557.     record
  1558.       hDevice,                                        // TAPI v2.0
  1559.       dwMessageID,                                    // TAPI v2.0
  1560.       dwCallbackInstance,                             // TAPI v2.0
  1561.       dwParam1,                                       // TAPI v2.0
  1562.       dwParam2,                                       // TAPI v2.0
  1563.       dwParam3 : DWORD;                               // TAPI v2.0
  1564.     end;
  1565. {$ENDIF}
  1566.   LPLINEMONITORTONE = ^TLINEMONITORTONE;
  1567.   PLINEMONITORTONE = ^TLINEMONITORTONE;
  1568.   TLINEMONITORTONE =
  1569.     record
  1570.       dwAppSpecific,
  1571.       dwDuration,
  1572.       dwFrequency1,
  1573.       dwFrequency2,
  1574.       dwFrequency3 : DWORD;
  1575.     end;
  1576.   LPLINEPROVIDERENTRY = ^TLINEPROVIDERENTRY;
  1577.   PLINEPROVIDERENTRY = ^TLINEPROVIDERENTRY;
  1578.   TLINEPROVIDERENTRY =
  1579.     record
  1580.       dwPermanentProviderID,                          // TAPI v1.4
  1581.       dwProviderFilenameSize,                         // TAPI v1.4
  1582.       dwProviderFilenameOffset : DWORD;               // TAPI v1.4
  1583.     end;
  1584.   LPLINEPROVIDERLIST = ^TLINEPROVIDERLIST;
  1585.   PLINEPROVIDERLIST = ^TLINEPROVIDERLIST;
  1586.   TLINEPROVIDERLIST =
  1587.     record
  1588.       dwTotalSize,                                    // TAPI v1.4
  1589.       dwNeededSize,                                   // TAPI v1.4
  1590.       dwUsedSize,                                     // TAPI v1.4
  1591.       dwNumProviders,                                 // TAPI v1.4
  1592.       dwProviderListSize,                             // TAPI v1.4
  1593.       dwProviderListOffset : DWORD;                   // TAPI v1.4
  1594.     end;
  1595. {$IFDEF Tapi_Ver20}
  1596.   LPLINEPROXYREQUEST = ^TLINEPROXYREQUEST;
  1597.   PLINEPROXYREQUEST = ^TLINEPROXYREQUEST;
  1598.   TLINEPROXYREQUEST =
  1599.     record
  1600.       dwSize,                                         // TAPI v2.0
  1601.       dwClientMachineNameSize,                        // TAPI v2.0
  1602.       dwClientMachineNameOffset,                      // TAPI v2.0
  1603.       dwClientUserNameSize,                           // TAPI v2.0
  1604.       dwClientUserNameOffset,                         // TAPI v2.0
  1605.       dwClientAppAPIVersion,                          // TAPI v2.0
  1606.       dwRequestType : DWORD;                          // TAPI v2.0
  1607.       case Integer of
  1608.         0 :
  1609.           (
  1610.             SetAgentGroup :
  1611.               record
  1612.                 dwAddressID : DWORD;                  // TAPI v2.0
  1613.                 GroupList : TLINEAGENTGROUPLIST;      // TAPI v2.0
  1614.               end;
  1615.           );
  1616.         1 :
  1617.           (
  1618.             SetAgentState :
  1619.               record
  1620.                 dwAddressID,                          // TAPI v2.0
  1621.                 dwAgentState,                         // TAPI v2.0
  1622.                 dwNextAgentState : DWORD;             // TAPI v2.0
  1623.               end;
  1624.           );
  1625.         2 :
  1626.           (
  1627.             SetAgentActivity :
  1628.               record
  1629.                 dwAddressID : DWORD;                  // TAPI v2.0
  1630.                 dwActivityID : DWORD;                 // TAPI v2.0
  1631.               end;
  1632.           );
  1633.         3 :
  1634.           (
  1635.             GetAgentCaps :
  1636.               record
  1637.                 dwAddressID : DWORD;                  // TAPI v2.0
  1638.                 AgentCaps : TLINEAGENTCAPS;           // TAPI v2.0
  1639.               end;
  1640.           );
  1641.         4 :
  1642.           (
  1643.             GetAgentStatus :
  1644.               record
  1645.                 dwAddressID : DWORD;                  // TAPI v2.0
  1646.                 AgentStatus : TLINEAGENTSTATUS;       // TAPI v2.0
  1647.               end;
  1648.           );
  1649.         5 :
  1650.           (
  1651.             AgentSpecific :
  1652.               record
  1653.                 dwAddressID,                          // TAPI v2.0
  1654.                 dwAgentExtensionIDIndex,              // TAPI v2.0
  1655.                 dwSize : DWORD;                       // TAPI v2.0
  1656.                 Params : array[0..0] of Byte;         // TAPI v2.0
  1657.               end;
  1658.           );
  1659.         6 :
  1660.           (
  1661.             GetAgentActivityList :
  1662.               record
  1663.                 dwAddressID : DWORD;                  // TAPI v2.0
  1664.                 ActivityList : TLINEAGENTACTIVITYLIST;// TAPI v2.0
  1665.               end;
  1666.           );
  1667.         7 :
  1668.           (
  1669.             GetAgentGroupList :
  1670.               record
  1671.                 dwAddressID : DWORD;                  // TAPI v2.0
  1672.                 GroupList : TLINEAGENTGROUPLIST;      // TAPI v2.0
  1673.               end;
  1674.           );
  1675.     end;
  1676. {$ENDIF}
  1677.   LPLINEREQMAKECALL = ^TLINEREQMAKECALL;
  1678.   PLINEREQMAKECALL = ^TLINEREQMAKECALL;
  1679.   TLINEREQMAKECALL =
  1680.     record
  1681.       szDestAddress : array[0..TAPIMAXDESTADDRESSSIZE - 1] of Char;
  1682.       szAppName     : array[0..TAPIMAXAPPNAMESIZE - 1] of Char;
  1683.       szCalledParty : array[0..TAPIMAXCALLEDPARTYSIZE - 1] of Char;
  1684.       szComment     : array[0..TAPIMAXCOMMENTSIZE - 1] of Char;
  1685.     end;
  1686. {$IFDEF Tapi_Ver20}
  1687.   LPLINEREQMAKECALLW = ^TLINEREQMAKECALLW;
  1688.   PLINEREQMAKECALLW = ^TLINEREQMAKECALLW;
  1689.   TLINEREQMAKECALLW =
  1690.     record
  1691.       szDestAddress : array[0..TAPIMAXDESTADDRESSSIZE - 1] of WideChar;
  1692.       szAppName     : array[0..TAPIMAXAPPNAMESIZE - 1] of WideChar;
  1693.       szCalledParty : array[0..TAPIMAXCALLEDPARTYSIZE - 1] of WideChar;
  1694.       szComment     : array[0..TAPIMAXCOMMENTSIZE - 1] of WideChar;
  1695.     end;
  1696. {$ENDIF}
  1697.   LPLINEREQMEDIACALL = ^TLINEREQMEDIACALL;
  1698.   PLINEREQMEDIACALL = ^TLINEREQMEDIACALL;
  1699.   TLINEREQMEDIACALL =
  1700.     record
  1701.       hWnd          : HWND;
  1702.       wRequestID    : WPARAM;
  1703.       szDeviceClass : array[0..TAPIMAXDEVICECLASSSIZE - 1] of Char;
  1704.       ucDeviceID    : array[0..TAPIMAXDEVICEIDSIZE - 1] of Byte;
  1705.       dwSize,
  1706.       dwSecure      : DWORD;
  1707.       szDestAddress : array[0..TAPIMAXDESTADDRESSSIZE] of Char;
  1708.       szAppName     : array[0..TAPIMAXAPPNAMESIZE] of Char;
  1709.       szCalledParty : array[0..TAPIMAXCALLEDPARTYSIZE] of Char;
  1710.       szComment     : array[0..TAPIMAXCOMMENTSIZE] of Char;
  1711.     end;
  1712. {$IFDEF Tapi_Ver20}
  1713.   LPLINEREQMEDIACALLW = ^TLINEREQMEDIACALLW;
  1714.   PLINEREQMEDIACALLW = ^TLINEREQMEDIACALLW;
  1715.   TLINEREQMEDIACALLW =
  1716.     record
  1717.       hWnd          : HWND;
  1718.       wRequestID    : WPARAM;
  1719.       szDeviceClass : array[0..TAPIMAXDEVICECLASSSIZE - 1] of WideChar;
  1720.       ucDeviceID    : array[0..TAPIMAXDEVICEIDSIZE - 1] of Byte;
  1721.       dwSize,
  1722.       dwSecure      : DWORD;
  1723.       szDestAddress : array[0..TAPIMAXDESTADDRESSSIZE] of WideChar;
  1724.       szAppName     : array[0..TAPIMAXAPPNAMESIZE] of WideChar;
  1725.       szCalledParty : array[0..TAPIMAXCALLEDPARTYSIZE] of WideChar;
  1726.       szComment     : array[0..TAPIMAXCOMMENTSIZE] of WideChar;
  1727.     end;
  1728. {$ENDIF}
  1729.   LPLINETERMCAPS = ^TLINETERMCAPS;
  1730.   PLINETERMCAPS = ^TLINETERMCAPS;
  1731.   TLINETERMCAPS =
  1732.     record
  1733.       dwTermDev,
  1734.       dwTermModes,
  1735.       dwTermSharing : DWORD;
  1736.     end;
  1737.   LPLINETRANSLATECAPS = ^TLINETRANSLATECAPS;
  1738.   PLINETRANSLATECAPS = ^TLINETRANSLATECAPS;
  1739.   TLINETRANSLATECAPS =
  1740.     record
  1741.       dwTotalSize,
  1742.       dwNeededSize,
  1743.       dwUsedSize,
  1744.       dwNumLocations,
  1745.       dwLocationListSize,
  1746.       dwLocationListOffset,
  1747.       dwCurrentLocationID,
  1748.       dwNumCards,
  1749.       dwCardListSize,
  1750.       dwCardListOffset,
  1751.       dwCurrentPreferredCardID : DWORD;
  1752.     end;
  1753.   LPLINETRANSLATEOUTPUT = ^TLINETRANSLATEOUTPUT;
  1754.   PLINETRANSLATEOUTPUT = ^TLINETRANSLATEOUTPUT;
  1755.   TLINETRANSLATEOUTPUT =
  1756.     record
  1757.       dwTotalSize,
  1758.       dwNeededSize,
  1759.       dwUsedSize,
  1760.       dwDialableStringSize,
  1761.       dwDialableStringOffset,
  1762.       dwDisplayableStringSize,
  1763.       dwDisplayableStringOffset,
  1764.       dwCurrentCountry,
  1765.       dwDestCountry,
  1766.       dwTranslateResults : DWORD;
  1767.     end;
  1768.   LPPHONEBUTTONINFO = ^TPHONEBUTTONINFO;
  1769.   PPHONEBUTTONINFO = ^TPHONEBUTTONINFO;
  1770.   TPHONEBUTTONINFO =
  1771.     record
  1772.       dwTotalSize,
  1773.       dwNeededSize,
  1774.       dwUsedSize,
  1775.       dwButtonMode,
  1776.       dwButtonFunction,
  1777.       dwButtonTextSize,
  1778.       dwButtonTextOffset,
  1779.       dwDevSpecificSize,
  1780.       dwDevSpecificOffset,
  1781.       dwButtonState : DWORD;                             // TAPI v1.4
  1782.     end;
  1783.   LPPHONECAPS = ^TPHONECAPS;
  1784.   PPHONECAPS = ^TPHONECAPS;
  1785.   TPHONECAPS =
  1786.     record
  1787.       dwTotalSize,
  1788.       dwNeededSize,
  1789.       dwUsedSize,
  1790.       dwProviderInfoSize,
  1791.       dwProviderInfoOffset,
  1792.       dwPhoneInfoSize,
  1793.       dwPhoneInfoOffset,
  1794.       dwPermanentPhoneID,
  1795.       dwPhoneNameSize,
  1796.       dwPhoneNameOffset,
  1797.       dwStringFormat,
  1798.       dwPhoneStates,
  1799.       dwHookSwitchDevs,
  1800.       dwHandsetHookSwitchModes,
  1801.       dwSpeakerHookSwitchModes,
  1802.       dwHeadsetHookSwitchModes,
  1803.       dwVolumeFlags,
  1804.       dwGainFlags,
  1805.       dwDisplayNumRows,
  1806.       dwDisplayNumColumns,
  1807.       dwNumRingModes,
  1808.       dwNumButtonLamps,
  1809.       dwButtonModesSize,
  1810.       dwButtonModesOffset,
  1811.       dwButtonFunctionsSize,
  1812.       dwButtonFunctionsOffset,
  1813.       dwLampModesSize,
  1814.       dwLampModesOffset,
  1815.       dwNumSetData,
  1816.       dwSetDataSize,
  1817.       dwSetDataOffset,
  1818.       dwNumGetData,
  1819.       dwGetDataSize,
  1820.       dwGetDataOffset,
  1821.       dwDevSpecificSize,
  1822.       dwDevSpecificOffset : DWORD;
  1823. {$IFDEF Tapi_Ver20}
  1824.       dwDeviceClassesSize,                            // TAPI v2.0
  1825.       dwDeviceClassesOffset,                          // TAPI v2.0