home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / tapi.h < prev    next >
C/C++ Source or Header  |  2000-02-01  |  174KB  |  5,264 lines

  1. /*++ BUILD Version: 0000    // Increment this if a change has global effects
  2.  
  3. The  Telephony  API  is jointly copyrighted by Intel and Microsoft.  You are
  4. granted  a royalty free worldwide, unlimited license to make copies, and use
  5. the   API/SPI  for  making  applications/drivers  that  interface  with  the
  6. specification provided that this paragraph and the Intel/Microsoft copyright
  7. statement is maintained as is in the text and source code files.
  8.  
  9. Copyright 1995-97 Microsoft, all rights reserved.
  10. Portions copyright 1992, 1993 Intel/Microsoft, all rights reserved.
  11.  
  12. Module Name:
  13.  
  14.     tapi.h
  15.  
  16. Notes:
  17.  
  18.     Additions to the Telephony Application Programming Interface (TAPI) since
  19.     version 1.0 are noted by version number (e.g. "TAPI v1.4").
  20.  
  21. --*/
  22.  
  23. #ifndef TAPI_H
  24. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  25. #define TAPI_H
  26.  
  27.  
  28.  
  29. //
  30. //  -- TAPI VERSION INFO -- TAPI VERSION INFO -- TAPI VERSION INFO --
  31. //
  32. // To build  a TAPI 1.4 application put a define as below in your source
  33. // file before you include TAPI.H:
  34. //
  35. // #define TAPI_CURRENT_VERSION 0x00010004
  36. //
  37. //
  38.  
  39. #ifndef TAPI_CURRENT_VERSION
  40. #define TAPI_CURRENT_VERSION 0x00020002
  41. #endif
  42.  
  43. #include <windows.h>
  44. #if WIN32
  45. #include <basetsd.h>
  46. #endif
  47.  
  48. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  49. #include <oaidl.h>
  50. #endif
  51.  
  52. #pragma pack(1)
  53. // Type definitions of the data types used in tapi
  54.  
  55. #ifdef __cplusplus
  56. extern "C" {            /* Assume C declarations for C++ */
  57. #endif  /* __cplusplus */
  58.  
  59.  
  60. //
  61. // TAPI type definitions
  62. //
  63.  
  64. #define DECLARE_OPAQUE32(name)  typedef DWORD name
  65.  
  66. DECLARE_OPAQUE32(HCALL);
  67. typedef HCALL FAR * LPHCALL;
  68.  
  69. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  70. DECLARE_OPAQUE32(HCALLHUB);                                     // TAPI v3.0
  71. typedef HCALLHUB FAR * LPHCALLHUB;                              // TAPI v3.0
  72. #endif
  73.  
  74. DECLARE_OPAQUE32(HLINE);
  75. typedef HLINE FAR * LPHLINE;
  76.  
  77. DECLARE_OPAQUE32(HPHONE);
  78. typedef HPHONE FAR * LPHPHONE;
  79.  
  80. DECLARE_OPAQUE32(HLINEAPP);
  81. typedef HLINEAPP FAR * LPHLINEAPP;
  82.  
  83. DECLARE_OPAQUE32(HPHONEAPP);
  84. typedef HPHONEAPP FAR * LPHPHONEAPP;
  85.  
  86. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  87. DECLARE_OPAQUE32(HAGENTSESSION);                                // TAPI v2.2
  88. typedef HAGENTSESSION FAR * LPHAGENTSESSION;                    // TAPI v2.2
  89.  
  90. DECLARE_OPAQUE32(HAGENT);                                       // TAPI v2.2
  91. typedef HAGENT FAR * LPHAGENT;                                  // TAPI v2.2
  92. #endif
  93.  
  94. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  95. DECLARE_OPAQUE32(HPRIVATECHANNEL);                              // TAPI v3.0
  96. typedef HPRIVATECHANNEL FAR * LPHPRIVATECHANNEL;                // TAPI v3.0
  97. #endif
  98.  
  99. typedef HICON FAR * LPHICON;
  100.  
  101. typedef void (CALLBACK * LINECALLBACK)(
  102.     DWORD               hDevice,
  103.     DWORD               dwMessage,
  104.     DWORD_PTR           dwInstance,
  105.     DWORD_PTR           dwParam1,
  106.     DWORD_PTR           dwParam2,
  107.     DWORD_PTR           dwParam3
  108.     );
  109.  
  110. typedef void (CALLBACK * PHONECALLBACK)(
  111.     DWORD               hDevice,
  112.     DWORD               dwMessage,
  113.     DWORD_PTR           dwInstance,
  114.     DWORD_PTR           dwParam1,
  115.     DWORD_PTR           dwParam2,
  116.     DWORD_PTR           dwParam3
  117.     );
  118.  
  119.  
  120. // Messages for Phones and Lines
  121.  
  122. #define LINE_ADDRESSSTATE                       0L
  123. #define LINE_CALLINFO                           1L
  124. #define LINE_CALLSTATE                          2L
  125. #define LINE_CLOSE                              3L
  126. #define LINE_DEVSPECIFIC                        4L
  127. #define LINE_DEVSPECIFICFEATURE                 5L
  128. #define LINE_GATHERDIGITS                       6L
  129. #define LINE_GENERATE                           7L
  130. #define LINE_LINEDEVSTATE                       8L
  131. #define LINE_MONITORDIGITS                      9L
  132. #define LINE_MONITORMEDIA                       10L
  133. #define LINE_MONITORTONE                        11L
  134. #define LINE_REPLY                              12L
  135. #define LINE_REQUEST                            13L
  136. #define PHONE_BUTTON                            14L
  137. #define PHONE_CLOSE                             15L
  138. #define PHONE_DEVSPECIFIC                       16L
  139. #define PHONE_REPLY                             17L
  140. #define PHONE_STATE                             18L
  141. #define LINE_CREATE                             19L             // TAPI v1.4
  142. #define PHONE_CREATE                            20L             // TAPI v1.4
  143.  
  144. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  145. #define LINE_AGENTSPECIFIC                      21L             // TAPI v2.0
  146. #define LINE_AGENTSTATUS                        22L             // TAPI v2.0
  147. #define LINE_APPNEWCALL                         23L             // TAPI v2.0
  148. #define LINE_PROXYREQUEST                       24L             // TAPI v2.0
  149. #define LINE_REMOVE                             25L             // TAPI v2.0
  150. #define PHONE_REMOVE                            26L             // TAPI v2.0
  151. #endif
  152.  
  153. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  154. #define LINE_AGENTSESSIONSTATUS                 27L             // TAPI v2.2
  155. #define LINE_QUEUESTATUS                        28L             // TAPI v2.2
  156. #define LINE_AGENTSTATUSEX                      29L             // TAPI v2.2
  157. #define LINE_GROUPSTATUS                        30L             // TAPI v2.2
  158. #define LINE_PROXYSTATUS                        31L             // TAPI v2.2
  159. #endif
  160.  
  161. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  162. #define LINE_APPNEWCALLHUB                      32L             // TAPI v3.0
  163. #define LINE_CALLHUBCLOSE                       33L             // TAPI v3.0
  164. #define LINE_DEVSPECIFICEX                      34L             // TAPI v3.0
  165. #endif
  166.  
  167. #define INITIALIZE_NEGOTIATION                  0xFFFFFFFFUL
  168.  
  169. #define LINEADDRCAPFLAGS_FWDNUMRINGS            0x00000001
  170. #define LINEADDRCAPFLAGS_PICKUPGROUPID          0x00000002
  171. #define LINEADDRCAPFLAGS_SECURE                 0x00000004
  172. #define LINEADDRCAPFLAGS_BLOCKIDDEFAULT         0x00000008
  173. #define LINEADDRCAPFLAGS_BLOCKIDOVERRIDE        0x00000010
  174. #define LINEADDRCAPFLAGS_DIALED                 0x00000020
  175. #define LINEADDRCAPFLAGS_ORIGOFFHOOK            0x00000040
  176. #define LINEADDRCAPFLAGS_DESTOFFHOOK            0x00000080
  177. #define LINEADDRCAPFLAGS_FWDCONSULT             0x00000100
  178. #define LINEADDRCAPFLAGS_SETUPCONFNULL          0x00000200
  179. #define LINEADDRCAPFLAGS_AUTORECONNECT          0x00000400
  180. #define LINEADDRCAPFLAGS_COMPLETIONID           0x00000800
  181. #define LINEADDRCAPFLAGS_TRANSFERHELD           0x00001000
  182. #define LINEADDRCAPFLAGS_TRANSFERMAKE           0x00002000
  183. #define LINEADDRCAPFLAGS_CONFERENCEHELD         0x00004000
  184. #define LINEADDRCAPFLAGS_CONFERENCEMAKE         0x00008000
  185. #define LINEADDRCAPFLAGS_PARTIALDIAL            0x00010000
  186. #define LINEADDRCAPFLAGS_FWDSTATUSVALID         0x00020000
  187. #define LINEADDRCAPFLAGS_FWDINTEXTADDR          0x00040000
  188. #define LINEADDRCAPFLAGS_FWDBUSYNAADDR          0x00080000
  189. #define LINEADDRCAPFLAGS_ACCEPTTOALERT          0x00100000
  190. #define LINEADDRCAPFLAGS_CONFDROP               0x00200000
  191. #define LINEADDRCAPFLAGS_PICKUPCALLWAIT         0x00400000
  192. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  193. #define LINEADDRCAPFLAGS_PREDICTIVEDIALER       0x00800000      // TAPI v2.0
  194. #define LINEADDRCAPFLAGS_QUEUE                  0x01000000      // TAPI v2.0
  195. #define LINEADDRCAPFLAGS_ROUTEPOINT             0x02000000      // TAPI v2.0
  196. #define LINEADDRCAPFLAGS_HOLDMAKESNEW           0x04000000      // TAPI v2.0
  197. #define LINEADDRCAPFLAGS_NOINTERNALCALLS        0x08000000      // TAPI v2.0
  198. #define LINEADDRCAPFLAGS_NOEXTERNALCALLS        0x10000000      // TAPI v2.0
  199. #define LINEADDRCAPFLAGS_SETCALLINGID           0x20000000      // TAPI v2.0
  200. #endif
  201. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  202. #define LINEADDRCAPFLAGS_ACDGROUP               0x40000000      // TAPI v2.2
  203. #endif
  204. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  205. #define LINEADDRCAPFLAGS_NOPSTNADDRESSTRANSLATION 0x80000000    // TAPI v3.0
  206. #endif
  207.  
  208. #define LINEADDRESSMODE_ADDRESSID               0x00000001
  209. #define LINEADDRESSMODE_DIALABLEADDR            0x00000002
  210.  
  211. #define LINEADDRESSSHARING_PRIVATE              0x00000001
  212. #define LINEADDRESSSHARING_BRIDGEDEXCL          0x00000002
  213. #define LINEADDRESSSHARING_BRIDGEDNEW           0x00000004
  214. #define LINEADDRESSSHARING_BRIDGEDSHARED        0x00000008
  215. #define LINEADDRESSSHARING_MONITORED            0x00000010
  216.  
  217. #define LINEADDRESSSTATE_OTHER                  0x00000001
  218. #define LINEADDRESSSTATE_DEVSPECIFIC            0x00000002
  219. #define LINEADDRESSSTATE_INUSEZERO              0x00000004
  220. #define LINEADDRESSSTATE_INUSEONE               0x00000008
  221. #define LINEADDRESSSTATE_INUSEMANY              0x00000010
  222. #define LINEADDRESSSTATE_NUMCALLS               0x00000020
  223. #define LINEADDRESSSTATE_FORWARD                0x00000040
  224. #define LINEADDRESSSTATE_TERMINALS              0x00000080
  225. #define LINEADDRESSSTATE_CAPSCHANGE             0x00000100      // TAPI v1.4
  226.  
  227. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  228. #define LINEADDRESSTYPE_PHONENUMBER             0x00000001
  229. #define LINEADDRESSTYPE_SDP                     0x00000002
  230. #define LINEADDRESSTYPE_EMAILNAME               0x00000004
  231. #define LINEADDRESSTYPE_DOMAINNAME              0x00000008
  232. #define LINEADDRESSTYPE_IPADDRESS               0x00000010
  233. #endif
  234.  
  235. #define LINEADDRFEATURE_FORWARD                 0x00000001
  236. #define LINEADDRFEATURE_MAKECALL                0x00000002
  237. #define LINEADDRFEATURE_PICKUP                  0x00000004
  238. #define LINEADDRFEATURE_SETMEDIACONTROL         0x00000008
  239. #define LINEADDRFEATURE_SETTERMINAL             0x00000010
  240. #define LINEADDRFEATURE_SETUPCONF               0x00000020
  241. #define LINEADDRFEATURE_UNCOMPLETECALL          0x00000040
  242. #define LINEADDRFEATURE_UNPARK                  0x00000080
  243. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  244. #define LINEADDRFEATURE_PICKUPHELD              0x00000100      // TAPI v2.0
  245. #define LINEADDRFEATURE_PICKUPGROUP             0x00000200      // TAPI v2.0
  246. #define LINEADDRFEATURE_PICKUPDIRECT            0x00000400      // TAPI v2.0
  247. #define LINEADDRFEATURE_PICKUPWAITING           0x00000800      // TAPI v2.0
  248. #define LINEADDRFEATURE_FORWARDFWD              0x00001000      // TAPI v2.0
  249. #define LINEADDRFEATURE_FORWARDDND              0x00002000      // TAPI v2.0
  250. #endif
  251.  
  252. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  253. #define LINEAGENTFEATURE_SETAGENTGROUP          0x00000001      // TAPI v2.0
  254. #define LINEAGENTFEATURE_SETAGENTSTATE          0x00000002      // TAPI v2.0
  255. #define LINEAGENTFEATURE_SETAGENTACTIVITY       0x00000004      // TAPI v2.0
  256. #define LINEAGENTFEATURE_AGENTSPECIFIC          0x00000008      // TAPI v2.0
  257. #define LINEAGENTFEATURE_GETAGENTACTIVITYLIST   0x00000010      // TAPI v2.0
  258. #define LINEAGENTFEATURE_GETAGENTGROUP          0x00000020      // TAPI v2.0
  259.  
  260. #define LINEAGENTSTATE_LOGGEDOFF                0x00000001      // TAPI v2.0
  261. #define LINEAGENTSTATE_NOTREADY                 0x00000002      // TAPI v2.0
  262. #define LINEAGENTSTATE_READY                    0x00000004      // TAPI v2.0
  263. #define LINEAGENTSTATE_BUSYACD                  0x00000008      // TAPI v2.0
  264. #define LINEAGENTSTATE_BUSYINCOMING             0x00000010      // TAPI v2.0
  265. #define LINEAGENTSTATE_BUSYOUTBOUND             0x00000020      // TAPI v2.0
  266. #define LINEAGENTSTATE_BUSYOTHER                0x00000040      // TAPI v2.0
  267. #define LINEAGENTSTATE_WORKINGAFTERCALL         0x00000080      // TAPI v2.0
  268. #define LINEAGENTSTATE_UNKNOWN                  0x00000100      // TAPI v2.0
  269. #define LINEAGENTSTATE_UNAVAIL                  0x00000200      // TAPI v2.0
  270.  
  271. #define LINEAGENTSTATUS_GROUP                   0x00000001      // TAPI v2.0
  272. #define LINEAGENTSTATUS_STATE                   0x00000002      // TAPI v2.0
  273. #define LINEAGENTSTATUS_NEXTSTATE               0x00000004      // TAPI v2.0
  274. #define LINEAGENTSTATUS_ACTIVITY                0x00000008      // TAPI v2.0
  275. #define LINEAGENTSTATUS_ACTIVITYLIST            0x00000010      // TAPI v2.0
  276. #define LINEAGENTSTATUS_GROUPLIST               0x00000020      // TAPI v2.0
  277. #define LINEAGENTSTATUS_CAPSCHANGE              0x00000040      // TAPI v2.0
  278. #define LINEAGENTSTATUS_VALIDSTATES             0x00000080      // TAPI v2.0
  279. #define LINEAGENTSTATUS_VALIDNEXTSTATES         0x00000100      // TAPI v2.0
  280. #endif
  281.  
  282. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  283. #define LINEAGENTSTATEEX_NOTREADY               0x00000001      // TAPI v2.2
  284. #define LINEAGENTSTATEEX_READY                  0x00000002      // TAPI v2.2
  285. #define LINEAGENTSTATEEX_BUSYACD                0x00000004      // TAPI v2.2
  286. #define LINEAGENTSTATEEX_BUSYINCOMING           0x00000008      // TAPI v2.2
  287. #define LINEAGENTSTATEEX_BUSYOUTGOING           0x00000010      // TAPI v2.2
  288. #define LINEAGENTSTATEEX_UNKNOWN                0x00000020      // TAPI v2.2
  289. #define LINEAGENTSTATEEX_RELEASED               0x00000040      // TAPI v2.2
  290.  
  291. #define LINEAGENTSTATUSEX_NEWAGENT              0x00000001      // TAPI v2.2
  292. #define LINEAGENTSTATUSEX_STATE                 0x00000002      // TAPI v2.2
  293. #define LINEAGENTSTATUSEX_UPDATEINFO            0x00000004      // TAPI v2.2
  294. //#define LINEAGENTSTATUSEX_DESTROYED             0x00000004      // TAPI v2.2
  295.  
  296. #define LINEAGENTSESSIONSTATE_NOTREADY          0x00000001      // TAPI v2.2
  297. #define LINEAGENTSESSIONSTATE_READY             0x00000002      // TAPI v2.2
  298. #define LINEAGENTSESSIONSTATE_BUSYONCALL        0x00000004      // TAPI v2.2
  299. #define LINEAGENTSESSIONSTATE_BUSYWRAPUP        0x00000008      // TAPI v2.2
  300. #define LINEAGENTSESSIONSTATE_ENDED             0x00000010      // TAPI v2.2
  301. #define LINEAGENTSESSIONSTATE_RELEASED          0x00000020      // TAPI v2.2
  302.  
  303. #define LINEAGENTSESSIONSTATUS_NEWSESSION       0x00000001      // TAPI v2.2
  304. #define LINEAGENTSESSIONSTATUS_STATE            0x00000002      // TAPI v2.2
  305. #define LINEAGENTSESSIONSTATUS_UPDATEINFO       0x00000004      // TAPI v2.2
  306. //#define LINEAGENTSESSIONSTATUS_DESTROYED        0x00000008      // TAPI v2.2
  307.  
  308. #define LINEQUEUESTATUS_UPDATEINFO              0x00000001      // TAPI v2.2
  309. #define LINEQUEUESTATUS_NEWQUEUE                0x00000002      // TAPI v2.2
  310. #define LINEQUEUESTATUS_QUEUEREMOVED            0x00000004      // TAPI v2.2
  311.  
  312. #define LINEGROUPSTATUS_NEWGROUP                0x00000001      // TAPI v2.2
  313. #define LINEGROUPSTATUS_GROUPREMOVED            0x00000002      // TAPI v2.2
  314.  
  315. #define LINEPROXYSTATUS_OPEN                    0x00000001      // TAPI v2.2
  316. #define LINEPROXYSTATUS_CLOSE                   0x00000002      // TAPI v2.2
  317. #define LINEPROXYSTATUS_ALLOPENFORACD           0x00000004      // TAPI v2.2
  318. #endif
  319.  
  320. #define LINEANSWERMODE_NONE                     0x00000001
  321. #define LINEANSWERMODE_DROP                     0x00000002
  322. #define LINEANSWERMODE_HOLD                     0x00000004
  323.  
  324. #define LINEBEARERMODE_VOICE                    0x00000001
  325. #define LINEBEARERMODE_SPEECH                   0x00000002
  326. #define LINEBEARERMODE_MULTIUSE                 0x00000004
  327. #define LINEBEARERMODE_DATA                     0x00000008
  328. #define LINEBEARERMODE_ALTSPEECHDATA            0x00000010
  329. #define LINEBEARERMODE_NONCALLSIGNALING         0x00000020
  330. #define LINEBEARERMODE_PASSTHROUGH              0x00000040      // TAPI v1.4
  331. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  332. #define LINEBEARERMODE_RESTRICTEDDATA           0x00000080      // TAPI v2.0
  333. #endif
  334.  
  335. #define LINEBUSYMODE_STATION                    0x00000001
  336. #define LINEBUSYMODE_TRUNK                      0x00000002
  337. #define LINEBUSYMODE_UNKNOWN                    0x00000004
  338. #define LINEBUSYMODE_UNAVAIL                    0x00000008
  339.  
  340. #define LINECALLCOMPLCOND_BUSY                  0x00000001
  341. #define LINECALLCOMPLCOND_NOANSWER              0x00000002
  342.  
  343. #define LINECALLCOMPLMODE_CAMPON                0x00000001
  344. #define LINECALLCOMPLMODE_CALLBACK              0x00000002
  345. #define LINECALLCOMPLMODE_INTRUDE               0x00000004
  346. #define LINECALLCOMPLMODE_MESSAGE               0x00000008
  347.  
  348. #define LINECALLFEATURE_ACCEPT                  0x00000001
  349. #define LINECALLFEATURE_ADDTOCONF               0x00000002
  350. #define LINECALLFEATURE_ANSWER                  0x00000004
  351. #define LINECALLFEATURE_BLINDTRANSFER           0x00000008
  352. #define LINECALLFEATURE_COMPLETECALL            0x00000010
  353. #define LINECALLFEATURE_COMPLETETRANSF          0x00000020
  354. #define LINECALLFEATURE_DIAL                    0x00000040
  355. #define LINECALLFEATURE_DROP                    0x00000080
  356. #define LINECALLFEATURE_GATHERDIGITS            0x00000100
  357. #define LINECALLFEATURE_GENERATEDIGITS          0x00000200
  358. #define LINECALLFEATURE_GENERATETONE            0x00000400
  359. #define LINECALLFEATURE_HOLD                    0x00000800
  360. #define LINECALLFEATURE_MONITORDIGITS           0x00001000
  361. #define LINECALLFEATURE_MONITORMEDIA            0x00002000
  362. #define LINECALLFEATURE_MONITORTONES            0x00004000
  363. #define LINECALLFEATURE_PARK                    0x00008000
  364. #define LINECALLFEATURE_PREPAREADDCONF          0x00010000
  365. #define LINECALLFEATURE_REDIRECT                0x00020000
  366. #define LINECALLFEATURE_REMOVEFROMCONF          0x00040000
  367. #define LINECALLFEATURE_SECURECALL              0x00080000
  368. #define LINECALLFEATURE_SENDUSERUSER            0x00100000
  369. #define LINECALLFEATURE_SETCALLPARAMS           0x00200000
  370. #define LINECALLFEATURE_SETMEDIACONTROL         0x00400000
  371. #define LINECALLFEATURE_SETTERMINAL             0x00800000
  372. #define LINECALLFEATURE_SETUPCONF               0x01000000
  373. #define LINECALLFEATURE_SETUPTRANSFER           0x02000000
  374. #define LINECALLFEATURE_SWAPHOLD                0x04000000
  375. #define LINECALLFEATURE_UNHOLD                  0x08000000
  376. #define LINECALLFEATURE_RELEASEUSERUSERINFO     0x10000000      // TAPI v1.4
  377. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  378. #define LINECALLFEATURE_SETTREATMENT            0x20000000      // TAPI v2.0
  379. #define LINECALLFEATURE_SETQOS                  0x40000000      // TAPI v2.0
  380. #define LINECALLFEATURE_SETCALLDATA             0x80000000      // TAPI v2.0
  381. #endif
  382.  
  383. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  384. #define LINECALLFEATURE2_NOHOLDCONFERENCE       0x00000001      // TAPI v2.0
  385. #define LINECALLFEATURE2_ONESTEPTRANSFER        0x00000002      // TAPI v2.0
  386. #define LINECALLFEATURE2_COMPLCAMPON            0x00000004      // TAPI v2.0
  387. #define LINECALLFEATURE2_COMPLCALLBACK          0x00000008      // TAPI v2.0
  388. #define LINECALLFEATURE2_COMPLINTRUDE           0x00000010      // TAPI v2.0
  389. #define LINECALLFEATURE2_COMPLMESSAGE           0x00000020      // TAPI v2.0
  390. #define LINECALLFEATURE2_TRANSFERNORM           0x00000040      // TAPI v2.0
  391. #define LINECALLFEATURE2_TRANSFERCONF           0x00000080      // TAPI v2.0
  392. #define LINECALLFEATURE2_PARKDIRECT             0x00000100      // TAPI v2.0
  393. #define LINECALLFEATURE2_PARKNONDIRECT          0x00000200      // TAPI v2.0
  394. #endif
  395.  
  396. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  397. #define LINECALLHUBTRACKING_NONE                0x00000000      // TAPI v3.0
  398. #define LINECALLHUBTRACKING_PROVIDERLEVEL       0x00000001      // TAPI v3.0
  399. #define LINECALLHUBTRACKING_ALLCALLS            0x00000002      // TAPI v3.0
  400. #endif
  401.  
  402. #define LINECALLINFOSTATE_OTHER                 0x00000001
  403. #define LINECALLINFOSTATE_DEVSPECIFIC           0x00000002
  404. #define LINECALLINFOSTATE_BEARERMODE            0x00000004
  405. #define LINECALLINFOSTATE_RATE                  0x00000008
  406. #define LINECALLINFOSTATE_MEDIAMODE             0x00000010
  407. #define LINECALLINFOSTATE_APPSPECIFIC           0x00000020
  408. #define LINECALLINFOSTATE_CALLID                0x00000040
  409. #define LINECALLINFOSTATE_RELATEDCALLID         0x00000080
  410. #define LINECALLINFOSTATE_ORIGIN                0x00000100
  411. #define LINECALLINFOSTATE_REASON                0x00000200
  412. #define LINECALLINFOSTATE_COMPLETIONID          0x00000400
  413. #define LINECALLINFOSTATE_NUMOWNERINCR          0x00000800
  414. #define LINECALLINFOSTATE_NUMOWNERDECR          0x00001000
  415. #define LINECALLINFOSTATE_NUMMONITORS           0x00002000
  416. #define LINECALLINFOSTATE_TRUNK                 0x00004000
  417. #define LINECALLINFOSTATE_CALLERID              0x00008000
  418. #define LINECALLINFOSTATE_CALLEDID              0x00010000
  419. #define LINECALLINFOSTATE_CONNECTEDID           0x00020000
  420. #define LINECALLINFOSTATE_REDIRECTIONID         0x00040000
  421. #define LINECALLINFOSTATE_REDIRECTINGID         0x00080000
  422. #define LINECALLINFOSTATE_DISPLAY               0x00100000
  423. #define LINECALLINFOSTATE_USERUSERINFO          0x00200000
  424. #define LINECALLINFOSTATE_HIGHLEVELCOMP         0x00400000
  425. #define LINECALLINFOSTATE_LOWLEVELCOMP          0x00800000
  426. #define LINECALLINFOSTATE_CHARGINGINFO          0x01000000
  427. #define LINECALLINFOSTATE_TERMINAL              0x02000000
  428. #define LINECALLINFOSTATE_DIALPARAMS            0x04000000
  429. #define LINECALLINFOSTATE_MONITORMODES          0x08000000
  430. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  431. #define LINECALLINFOSTATE_TREATMENT             0x10000000      // TAPI v2.0
  432. #define LINECALLINFOSTATE_QOS                   0x20000000      // TAPI v2.0
  433. #define LINECALLINFOSTATE_CALLDATA              0x40000000      // TAPI v2.0
  434. #endif
  435.  
  436. #define LINECALLORIGIN_OUTBOUND                 0x00000001
  437. #define LINECALLORIGIN_INTERNAL                 0x00000002
  438. #define LINECALLORIGIN_EXTERNAL                 0x00000004
  439. #define LINECALLORIGIN_UNKNOWN                  0x00000010
  440. #define LINECALLORIGIN_UNAVAIL                  0x00000020
  441. #define LINECALLORIGIN_CONFERENCE               0x00000040
  442. #define LINECALLORIGIN_INBOUND                  0x00000080      // TAPI v1.4
  443.  
  444. #define LINECALLPARAMFLAGS_SECURE               0x00000001
  445. #define LINECALLPARAMFLAGS_IDLE                 0x00000002
  446. #define LINECALLPARAMFLAGS_BLOCKID              0x00000004
  447. #define LINECALLPARAMFLAGS_ORIGOFFHOOK          0x00000008
  448. #define LINECALLPARAMFLAGS_DESTOFFHOOK          0x00000010
  449. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  450. #define LINECALLPARAMFLAGS_NOHOLDCONFERENCE     0x00000020      // TAPI v2.0
  451. #define LINECALLPARAMFLAGS_PREDICTIVEDIAL       0x00000040      // TAPI v2.0
  452. #define LINECALLPARAMFLAGS_ONESTEPTRANSFER      0x00000080      // TAPI v2.0
  453. #endif
  454.  
  455. #define LINECALLPARTYID_BLOCKED                 0x00000001
  456. #define LINECALLPARTYID_OUTOFAREA               0x00000002
  457. #define LINECALLPARTYID_NAME                    0x00000004
  458. #define LINECALLPARTYID_ADDRESS                 0x00000008
  459. #define LINECALLPARTYID_PARTIAL                 0x00000010
  460. #define LINECALLPARTYID_UNKNOWN                 0x00000020
  461. #define LINECALLPARTYID_UNAVAIL                 0x00000040
  462.  
  463. #define LINECALLPRIVILEGE_NONE                  0x00000001
  464. #define LINECALLPRIVILEGE_MONITOR               0x00000002
  465. #define LINECALLPRIVILEGE_OWNER                 0x00000004
  466.  
  467. #define LINECALLREASON_DIRECT                   0x00000001
  468. #define LINECALLREASON_FWDBUSY                  0x00000002
  469. #define LINECALLREASON_FWDNOANSWER              0x00000004
  470. #define LINECALLREASON_FWDUNCOND                0x00000008
  471. #define LINECALLREASON_PICKUP                   0x00000010
  472. #define LINECALLREASON_UNPARK                   0x00000020
  473. #define LINECALLREASON_REDIRECT                 0x00000040
  474. #define LINECALLREASON_CALLCOMPLETION           0x00000080
  475. #define LINECALLREASON_TRANSFER                 0x00000100
  476. #define LINECALLREASON_REMINDER                 0x00000200
  477. #define LINECALLREASON_UNKNOWN                  0x00000400
  478. #define LINECALLREASON_UNAVAIL                  0x00000800
  479. #define LINECALLREASON_INTRUDE                  0x00001000      // TAPI v1.4
  480. #define LINECALLREASON_PARKED                   0x00002000      // TAPI v1.4
  481. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  482. #define LINECALLREASON_CAMPEDON                 0x00004000      // TAPI v2.0
  483. #define LINECALLREASON_ROUTEREQUEST             0x00008000      // TAPI v2.0
  484. #endif
  485.  
  486. #define LINECALLSELECT_LINE                     0x00000001
  487. #define LINECALLSELECT_ADDRESS                  0x00000002
  488. #define LINECALLSELECT_CALL                     0x00000004
  489. #if (TAPI_CURRENT_VERSION >= 0x00020001)
  490. #define LINECALLSELECT_DEVICEID                 0x00000008      // TAPI v2.1
  491. #endif
  492. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  493. #define LINECALLSELECT_CALLID                   0x00000010      // TAPI v3.0
  494. #endif
  495.  
  496. #define LINECALLSTATE_IDLE                      0x00000001
  497. #define LINECALLSTATE_OFFERING                  0x00000002
  498. #define LINECALLSTATE_ACCEPTED                  0x00000004
  499. #define LINECALLSTATE_DIALTONE                  0x00000008
  500. #define LINECALLSTATE_DIALING                   0x00000010
  501. #define LINECALLSTATE_RINGBACK                  0x00000020
  502. #define LINECALLSTATE_BUSY                      0x00000040
  503. #define LINECALLSTATE_SPECIALINFO               0x00000080
  504. #define LINECALLSTATE_CONNECTED                 0x00000100
  505. #define LINECALLSTATE_PROCEEDING                0x00000200
  506. #define LINECALLSTATE_ONHOLD                    0x00000400
  507. #define LINECALLSTATE_CONFERENCED               0x00000800
  508. #define LINECALLSTATE_ONHOLDPENDCONF            0x00001000
  509. #define LINECALLSTATE_ONHOLDPENDTRANSFER        0x00002000
  510. #define LINECALLSTATE_DISCONNECTED              0x00004000
  511. #define LINECALLSTATE_UNKNOWN                   0x00008000
  512.  
  513. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  514. #define LINECALLTREATMENT_SILENCE               0x00000001      // TAPI v2.0
  515. #define LINECALLTREATMENT_RINGBACK              0x00000002      // TAPI v2.0
  516. #define LINECALLTREATMENT_BUSY                  0x00000003      // TAPI v2.0
  517. #define LINECALLTREATMENT_MUSIC                 0x00000004      // TAPI v2.0
  518. #endif
  519.  
  520. #define LINECARDOPTION_PREDEFINED               0x00000001      // TAPI v1.4
  521. #define LINECARDOPTION_HIDDEN                   0x00000002      // TAPI v1.4
  522.  
  523. #define LINECONNECTEDMODE_ACTIVE                0x00000001      // TAPI v1.4
  524. #define LINECONNECTEDMODE_INACTIVE              0x00000002      // TAPI v1.4
  525. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  526. #define LINECONNECTEDMODE_ACTIVEHELD            0x00000004      // TAPI v2.0
  527. #define LINECONNECTEDMODE_INACTIVEHELD          0x00000008      // TAPI v2.0
  528. #define LINECONNECTEDMODE_CONFIRMED             0x00000010      // TAPI v2.0
  529. #endif
  530.  
  531. #define LINEDEVCAPFLAGS_CROSSADDRCONF           0x00000001
  532. #define LINEDEVCAPFLAGS_HIGHLEVCOMP             0x00000002
  533. #define LINEDEVCAPFLAGS_LOWLEVCOMP              0x00000004
  534. #define LINEDEVCAPFLAGS_MEDIACONTROL            0x00000008
  535. #define LINEDEVCAPFLAGS_MULTIPLEADDR            0x00000010
  536. #define LINEDEVCAPFLAGS_CLOSEDROP               0x00000020
  537. #define LINEDEVCAPFLAGS_DIALBILLING             0x00000040
  538. #define LINEDEVCAPFLAGS_DIALQUIET               0x00000080
  539. #define LINEDEVCAPFLAGS_DIALDIALTONE            0x00000100
  540. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  541. #define LINEDEVCAPFLAGS_MSP                     0x00000200      // TAPI v3.0
  542. #define LINEDEVCAPFLAGS_CALLHUB                 0x00000400      // TAPI v3.0
  543. #define LINEDEVCAPFLAGS_CALLHUBTRACKING         0x00000800      // TAPI v3.0
  544. #define LINEDEVCAPFLAGS_PRIVATEOBJECTS          0x00001000      // TAPI v3.0
  545. #endif
  546.  
  547. #define LINEDEVSTATE_OTHER                      0x00000001
  548. #define LINEDEVSTATE_RINGING                    0x00000002
  549. #define LINEDEVSTATE_CONNECTED                  0x00000004
  550. #define LINEDEVSTATE_DISCONNECTED               0x00000008
  551. #define LINEDEVSTATE_MSGWAITON                  0x00000010
  552. #define LINEDEVSTATE_MSGWAITOFF                 0x00000020
  553. #define LINEDEVSTATE_INSERVICE                  0x00000040
  554. #define LINEDEVSTATE_OUTOFSERVICE               0x00000080
  555. #define LINEDEVSTATE_MAINTENANCE                0x00000100
  556. #define LINEDEVSTATE_OPEN                       0x00000200
  557. #define LINEDEVSTATE_CLOSE                      0x00000400
  558. #define LINEDEVSTATE_NUMCALLS                   0x00000800
  559. #define LINEDEVSTATE_NUMCOMPLETIONS             0x00001000
  560. #define LINEDEVSTATE_TERMINALS                  0x00002000
  561. #define LINEDEVSTATE_ROAMMODE                   0x00004000
  562. #define LINEDEVSTATE_BATTERY                    0x00008000
  563. #define LINEDEVSTATE_SIGNAL                     0x00010000
  564. #define LINEDEVSTATE_DEVSPECIFIC                0x00020000
  565. #define LINEDEVSTATE_REINIT                     0x00040000
  566. #define LINEDEVSTATE_LOCK                       0x00080000
  567. #define LINEDEVSTATE_CAPSCHANGE                 0x00100000      // TAPI v1.4
  568. #define LINEDEVSTATE_CONFIGCHANGE               0x00200000      // TAPI v1.4
  569. #define LINEDEVSTATE_TRANSLATECHANGE            0x00400000      // TAPI v1.4
  570. #define LINEDEVSTATE_COMPLCANCEL                0x00800000      // TAPI v1.4
  571. #define LINEDEVSTATE_REMOVED                    0x01000000      // TAPI v1.4
  572.  
  573. #define LINEDEVSTATUSFLAGS_CONNECTED            0x00000001
  574. #define LINEDEVSTATUSFLAGS_MSGWAIT              0x00000002
  575. #define LINEDEVSTATUSFLAGS_INSERVICE            0x00000004
  576. #define LINEDEVSTATUSFLAGS_LOCKED               0x00000008
  577.  
  578. #define LINEDIALTONEMODE_NORMAL                 0x00000001
  579. #define LINEDIALTONEMODE_SPECIAL                0x00000002
  580. #define LINEDIALTONEMODE_INTERNAL               0x00000004
  581. #define LINEDIALTONEMODE_EXTERNAL               0x00000008
  582. #define LINEDIALTONEMODE_UNKNOWN                0x00000010
  583. #define LINEDIALTONEMODE_UNAVAIL                0x00000020
  584.  
  585. #define LINEDIGITMODE_PULSE                     0x00000001
  586. #define LINEDIGITMODE_DTMF                      0x00000002
  587. #define LINEDIGITMODE_DTMFEND                   0x00000004
  588.  
  589. #define LINEDISCONNECTMODE_NORMAL               0x00000001
  590. #define LINEDISCONNECTMODE_UNKNOWN              0x00000002
  591. #define LINEDISCONNECTMODE_REJECT               0x00000004
  592. #define LINEDISCONNECTMODE_PICKUP               0x00000008
  593. #define LINEDISCONNECTMODE_FORWARDED            0x00000010
  594. #define LINEDISCONNECTMODE_BUSY                 0x00000020
  595. #define LINEDISCONNECTMODE_NOANSWER             0x00000040
  596. #define LINEDISCONNECTMODE_BADADDRESS           0x00000080
  597. #define LINEDISCONNECTMODE_UNREACHABLE          0x00000100
  598. #define LINEDISCONNECTMODE_CONGESTION           0x00000200
  599. #define LINEDISCONNECTMODE_INCOMPATIBLE         0x00000400
  600. #define LINEDISCONNECTMODE_UNAVAIL              0x00000800
  601. #define LINEDISCONNECTMODE_NODIALTONE           0x00001000      // TAPI v1.4
  602. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  603. #define LINEDISCONNECTMODE_NUMBERCHANGED        0x00002000      // TAPI v2.0
  604. #define LINEDISCONNECTMODE_OUTOFORDER           0x00004000      // TAPI v2.0
  605. #define LINEDISCONNECTMODE_TEMPFAILURE          0x00008000      // TAPI v2.0
  606. #define LINEDISCONNECTMODE_QOSUNAVAIL           0x00010000      // TAPI v2.0
  607. #define LINEDISCONNECTMODE_BLOCKED              0x00020000      // TAPI v2.0
  608. #define LINEDISCONNECTMODE_DONOTDISTURB         0x00040000      // TAPI v2.0
  609. #define LINEDISCONNECTMODE_CANCELLED            0x00080000      // TAPI v2.0
  610. #endif
  611.  
  612. #define LINEERR_ALLOCATED                       0x80000001
  613. #define LINEERR_BADDEVICEID                     0x80000002
  614. #define LINEERR_BEARERMODEUNAVAIL               0x80000003
  615. #define LINEERR_CALLUNAVAIL                     0x80000005
  616. #define LINEERR_COMPLETIONOVERRUN               0x80000006
  617. #define LINEERR_CONFERENCEFULL                  0x80000007
  618. #define LINEERR_DIALBILLING                     0x80000008
  619. #define LINEERR_DIALDIALTONE                    0x80000009
  620. #define LINEERR_DIALPROMPT                      0x8000000A
  621. #define LINEERR_DIALQUIET                       0x8000000B
  622. #define LINEERR_INCOMPATIBLEAPIVERSION          0x8000000C
  623. #define LINEERR_INCOMPATIBLEEXTVERSION          0x8000000D
  624. #define LINEERR_INIFILECORRUPT                  0x8000000E
  625. #define LINEERR_INUSE                           0x8000000F
  626. #define LINEERR_INVALADDRESS                    0x80000010
  627. #define LINEERR_INVALADDRESSID                  0x80000011
  628. #define LINEERR_INVALADDRESSMODE                0x80000012
  629. #define LINEERR_INVALADDRESSSTATE               0x80000013
  630. #define LINEERR_INVALAPPHANDLE                  0x80000014
  631. #define LINEERR_INVALAPPNAME                    0x80000015
  632. #define LINEERR_INVALBEARERMODE                 0x80000016
  633. #define LINEERR_INVALCALLCOMPLMODE              0x80000017
  634. #define LINEERR_INVALCALLHANDLE                 0x80000018
  635. #define LINEERR_INVALCALLPARAMS                 0x80000019
  636. #define LINEERR_INVALCALLPRIVILEGE              0x8000001A
  637. #define LINEERR_INVALCALLSELECT                 0x8000001B
  638. #define LINEERR_INVALCALLSTATE                  0x8000001C
  639. #define LINEERR_INVALCALLSTATELIST              0x8000001D
  640. #define LINEERR_INVALCARD                       0x8000001E
  641. #define LINEERR_INVALCOMPLETIONID               0x8000001F
  642. #define LINEERR_INVALCONFCALLHANDLE             0x80000020
  643. #define LINEERR_INVALCONSULTCALLHANDLE          0x80000021
  644. #define LINEERR_INVALCOUNTRYCODE                0x80000022
  645. #define LINEERR_INVALDEVICECLASS                0x80000023
  646. #define LINEERR_INVALDEVICEHANDLE               0x80000024
  647. #define LINEERR_INVALDIALPARAMS                 0x80000025
  648. #define LINEERR_INVALDIGITLIST                  0x80000026
  649. #define LINEERR_INVALDIGITMODE                  0x80000027
  650. #define LINEERR_INVALDIGITS                     0x80000028
  651. #define LINEERR_INVALEXTVERSION                 0x80000029
  652. #define LINEERR_INVALGROUPID                    0x8000002A
  653. #define LINEERR_INVALLINEHANDLE                 0x8000002B
  654. #define LINEERR_INVALLINESTATE                  0x8000002C
  655. #define LINEERR_INVALLOCATION                   0x8000002D
  656. #define LINEERR_INVALMEDIALIST                  0x8000002E
  657. #define LINEERR_INVALMEDIAMODE                  0x8000002F
  658. #define LINEERR_INVALMESSAGEID                  0x80000030
  659. #define LINEERR_INVALPARAM                      0x80000032
  660. #define LINEERR_INVALPARKID                     0x80000033
  661. #define LINEERR_INVALPARKMODE                   0x80000034
  662. #define LINEERR_INVALPOINTER                    0x80000035
  663. #define LINEERR_INVALPRIVSELECT                 0x80000036
  664. #define LINEERR_INVALRATE                       0x80000037
  665. #define LINEERR_INVALREQUESTMODE                0x80000038
  666. #define LINEERR_INVALTERMINALID                 0x80000039
  667. #define LINEERR_INVALTERMINALMODE               0x8000003A
  668. #define LINEERR_INVALTIMEOUT                    0x8000003B
  669. #define LINEERR_INVALTONE                       0x8000003C
  670. #define LINEERR_INVALTONELIST                   0x8000003D
  671. #define LINEERR_INVALTONEMODE                   0x8000003E
  672. #define LINEERR_INVALTRANSFERMODE               0x8000003F
  673. #define LINEERR_LINEMAPPERFAILED                0x80000040
  674. #define LINEERR_NOCONFERENCE                    0x80000041
  675. #define LINEERR_NODEVICE                        0x80000042
  676. #define LINEERR_NODRIVER                        0x80000043
  677. #define LINEERR_NOMEM                           0x80000044
  678. #define LINEERR_NOREQUEST                       0x80000045
  679. #define LINEERR_NOTOWNER                        0x80000046
  680. #define LINEERR_NOTREGISTERED                   0x80000047
  681. #define LINEERR_OPERATIONFAILED                 0x80000048
  682. #define LINEERR_OPERATIONUNAVAIL                0x80000049
  683. #define LINEERR_RATEUNAVAIL                     0x8000004A
  684. #define LINEERR_RESOURCEUNAVAIL                 0x8000004B
  685. #define LINEERR_REQUESTOVERRUN                  0x8000004C
  686. #define LINEERR_STRUCTURETOOSMALL               0x8000004D
  687. #define LINEERR_TARGETNOTFOUND                  0x8000004E
  688. #define LINEERR_TARGETSELF                      0x8000004F
  689. #define LINEERR_UNINITIALIZED                   0x80000050
  690. #define LINEERR_USERUSERINFOTOOBIG              0x80000051
  691. #define LINEERR_REINIT                          0x80000052
  692. #define LINEERR_ADDRESSBLOCKED                  0x80000053
  693. #define LINEERR_BILLINGREJECTED                 0x80000054
  694. #define LINEERR_INVALFEATURE                    0x80000055
  695. #define LINEERR_NOMULTIPLEINSTANCE              0x80000056
  696. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  697. #define LINEERR_INVALAGENTID                    0x80000057      // TAPI v2.0
  698. #define LINEERR_INVALAGENTGROUP                 0x80000058      // TAPI v2.0
  699. #define LINEERR_INVALPASSWORD                   0x80000059      // TAPI v2.0
  700. #define LINEERR_INVALAGENTSTATE                 0x8000005A      // TAPI v2.0
  701. #define LINEERR_INVALAGENTACTIVITY              0x8000005B      // TAPI v2.0
  702. #define LINEERR_DIALVOICEDETECT                 0x8000005C      // TAPI v2.0
  703. #endif
  704. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  705. #define LINEERR_USERCANCELLED                   0x8000005D      // TAPI v2.2
  706. #endif
  707. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  708. #define LINEERR_INVALADDRESSTYPE                0x8000005E      // TAPI v3.0
  709. #endif
  710. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  711. #define LINEERR_INVALAGENTSESSIONSTATE          0x8000005F      // TAPI v2.2
  712. #define LINEERR_DISCONNECTED                    0X80000060
  713. #endif
  714.  
  715. #define LINEFEATURE_DEVSPECIFIC                 0x00000001
  716. #define LINEFEATURE_DEVSPECIFICFEAT             0x00000002
  717. #define LINEFEATURE_FORWARD                     0x00000004
  718. #define LINEFEATURE_MAKECALL                    0x00000008
  719. #define LINEFEATURE_SETMEDIACONTROL             0x00000010
  720. #define LINEFEATURE_SETTERMINAL                 0x00000020
  721. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  722. #define LINEFEATURE_SETDEVSTATUS                0x00000040      // TAPI v2.0
  723. #define LINEFEATURE_FORWARDFWD                  0x00000080      // TAPI v2.0
  724. #define LINEFEATURE_FORWARDDND                  0x00000100      // TAPI v2.0
  725. #endif
  726.  
  727. #define LINEFORWARDMODE_UNCOND                  0x00000001
  728. #define LINEFORWARDMODE_UNCONDINTERNAL          0x00000002
  729. #define LINEFORWARDMODE_UNCONDEXTERNAL          0x00000004
  730. #define LINEFORWARDMODE_UNCONDSPECIFIC          0x00000008
  731. #define LINEFORWARDMODE_BUSY                    0x00000010
  732. #define LINEFORWARDMODE_BUSYINTERNAL            0x00000020
  733. #define LINEFORWARDMODE_BUSYEXTERNAL            0x00000040
  734. #define LINEFORWARDMODE_BUSYSPECIFIC            0x00000080
  735. #define LINEFORWARDMODE_NOANSW                  0x00000100
  736. #define LINEFORWARDMODE_NOANSWINTERNAL          0x00000200
  737. #define LINEFORWARDMODE_NOANSWEXTERNAL          0x00000400
  738. #define LINEFORWARDMODE_NOANSWSPECIFIC          0x00000800
  739. #define LINEFORWARDMODE_BUSYNA                  0x00001000
  740. #define LINEFORWARDMODE_BUSYNAINTERNAL          0x00002000
  741. #define LINEFORWARDMODE_BUSYNAEXTERNAL          0x00004000
  742. #define LINEFORWARDMODE_BUSYNASPECIFIC          0x00008000
  743. #define LINEFORWARDMODE_UNKNOWN                 0x00010000      // TAPI v1.4
  744. #define LINEFORWARDMODE_UNAVAIL                 0x00020000      // TAPI v1.4
  745.  
  746. #define LINEGATHERTERM_BUFFERFULL               0x00000001
  747. #define LINEGATHERTERM_TERMDIGIT                0x00000002
  748. #define LINEGATHERTERM_FIRSTTIMEOUT             0x00000004
  749. #define LINEGATHERTERM_INTERTIMEOUT             0x00000008
  750. #define LINEGATHERTERM_CANCEL                   0x00000010
  751.  
  752. #define LINEGENERATETERM_DONE                   0x00000001
  753. #define LINEGENERATETERM_CANCEL                 0x00000002
  754.  
  755. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  756. //
  757. // These constants are mutually exclusive - there's no way to specify more
  758. // than one at a time (and it doesn't make sense, either) so they're
  759. // ordinal rather than bits.
  760. //
  761. #define LINEINITIALIZEEXOPTION_USEHIDDENWINDOW      0x00000001  // TAPI v2.0
  762. #define LINEINITIALIZEEXOPTION_USEEVENT             0x00000002  // TAPI v2.0
  763. #define LINEINITIALIZEEXOPTION_USECOMPLETIONPORT    0x00000003  // TAPI v2.0
  764. #endif
  765.  
  766. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  767. #define LINEINITIALIZEEXOPTION_CALLHUBTRACKING      0x80000000  // TAPI v3.0
  768. #endif
  769.  
  770. #define LINELOCATIONOPTION_PULSEDIAL            0x00000001      // TAPI v1.4
  771.  
  772. #define LINEMAPPER                              0xFFFFFFFF
  773.  
  774. #define LINEMEDIACONTROL_NONE                   0x00000001
  775. #define LINEMEDIACONTROL_START                  0x00000002
  776. #define LINEMEDIACONTROL_RESET                  0x00000004
  777. #define LINEMEDIACONTROL_PAUSE                  0x00000008
  778. #define LINEMEDIACONTROL_RESUME                 0x00000010
  779. #define LINEMEDIACONTROL_RATEUP                 0x00000020
  780. #define LINEMEDIACONTROL_RATEDOWN               0x00000040
  781. #define LINEMEDIACONTROL_RATENORMAL             0x00000080
  782. #define LINEMEDIACONTROL_VOLUMEUP               0x00000100
  783. #define LINEMEDIACONTROL_VOLUMEDOWN             0x00000200
  784. #define LINEMEDIACONTROL_VOLUMENORMAL           0x00000400
  785.  
  786. #define LINEMEDIAMODE_UNKNOWN                   0x00000002
  787. #define LINEMEDIAMODE_INTERACTIVEVOICE          0x00000004
  788. #define LINEMEDIAMODE_AUTOMATEDVOICE            0x00000008
  789. #define LINEMEDIAMODE_DATAMODEM                 0x00000010
  790. #define LINEMEDIAMODE_G3FAX                     0x00000020
  791. #define LINEMEDIAMODE_TDD                       0x00000040
  792. #define LINEMEDIAMODE_G4FAX                     0x00000080
  793. #define LINEMEDIAMODE_DIGITALDATA               0x00000100
  794. #define LINEMEDIAMODE_TELETEX                   0x00000200
  795. #define LINEMEDIAMODE_VIDEOTEX                  0x00000400
  796. #define LINEMEDIAMODE_TELEX                     0x00000800
  797. #define LINEMEDIAMODE_MIXED                     0x00001000
  798. #define LINEMEDIAMODE_ADSI                      0x00002000
  799. #define LINEMEDIAMODE_VOICEVIEW                 0x00004000      // TAPI v1.4
  800. #if (TAPI_CURRENT_VERSION >= 0x00020001)
  801. #define LINEMEDIAMODE_VIDEO                     0x00008000      // TAPI v2.1
  802. #endif
  803. #define LAST_LINEMEDIAMODE                      0x00008000
  804.  
  805. #define LINEOFFERINGMODE_ACTIVE                 0x00000001      // TAPI v1.4
  806. #define LINEOFFERINGMODE_INACTIVE               0x00000002      // TAPI v1.4
  807.  
  808. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  809. #define LINEOPENOPTION_SINGLEADDRESS            0x80000000      // TAPI v2.0
  810. #define LINEOPENOPTION_PROXY                    0x40000000      // TAPI v2.0
  811. #endif
  812.  
  813. #define LINEPARKMODE_DIRECTED                   0x00000001
  814. #define LINEPARKMODE_NONDIRECTED                0x00000002
  815.  
  816. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  817. #define LINEPROXYREQUEST_SETAGENTGROUP          0x00000001      // TAPI v2.0
  818. #define LINEPROXYREQUEST_SETAGENTSTATE          0x00000002      // TAPI v2.0
  819. #define LINEPROXYREQUEST_SETAGENTACTIVITY       0x00000003      // TAPI v2.0
  820. #define LINEPROXYREQUEST_GETAGENTCAPS           0x00000004      // TAPI v2.0
  821. #define LINEPROXYREQUEST_GETAGENTSTATUS         0x00000005      // TAPI v2.0
  822. #define LINEPROXYREQUEST_AGENTSPECIFIC          0x00000006      // TAPI v2.0
  823. #define LINEPROXYREQUEST_GETAGENTACTIVITYLIST   0x00000007      // TAPI v2.0
  824. #define LINEPROXYREQUEST_GETAGENTGROUPLIST      0x00000008      // TAPI v2.0
  825. #endif
  826.  
  827. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  828. #define LINEPROXYREQUEST_CREATEAGENT                0x00000009  // TAPI v2.2
  829. #define LINEPROXYREQUEST_SETAGENTMEASUREMENTPERIOD  0x0000000A  // TAPI v2.2
  830. #define LINEPROXYREQUEST_GETAGENTINFO               0x0000000B  // TAPI v2.2
  831. #define LINEPROXYREQUEST_CREATEAGENTSESSION         0x0000000C  // TAPI v2.2
  832. #define LINEPROXYREQUEST_GETAGENTSESSIONLIST        0x0000000D  // TAPI v2.2
  833. #define LINEPROXYREQUEST_SETAGENTSESSIONSTATE       0x0000000E  // TAPI v2.2
  834. #define LINEPROXYREQUEST_GETAGENTSESSIONINFO        0x0000000F  // TAPI v2.2
  835. #define LINEPROXYREQUEST_GETQUEUELIST               0x00000010  // TAPI v2.2
  836. #define LINEPROXYREQUEST_SETQUEUEMEASUREMENTPERIOD  0x00000011  // TAPI v2.2
  837. #define LINEPROXYREQUEST_GETQUEUEINFO               0x00000012  // TAPI v2.2
  838. #define LINEPROXYREQUEST_GETGROUPLIST               0x00000013  // TAPI v2.2
  839. #define LINEPROXYREQUEST_SETAGENTSTATEEX            0x00000014  // TAPI v2.2
  840. #endif
  841.  
  842. #define LINEREMOVEFROMCONF_NONE                 0x00000001
  843. #define LINEREMOVEFROMCONF_LAST                 0x00000002
  844. #define LINEREMOVEFROMCONF_ANY                  0x00000003
  845.  
  846. #define LINEREQUESTMODE_MAKECALL                0x00000001
  847. #define LINEREQUESTMODE_MEDIACALL               0x00000002
  848. #define LINEREQUESTMODE_DROP                    0x00000004
  849. #define LAST_LINEREQUESTMODE                    LINEREQUESTMODE_MEDIACALL
  850.  
  851. #define LINEROAMMODE_UNKNOWN                    0x00000001
  852. #define LINEROAMMODE_UNAVAIL                    0x00000002
  853. #define LINEROAMMODE_HOME                       0x00000004
  854. #define LINEROAMMODE_ROAMA                      0x00000008
  855. #define LINEROAMMODE_ROAMB                      0x00000010
  856.  
  857. #define LINESPECIALINFO_NOCIRCUIT               0x00000001
  858. #define LINESPECIALINFO_CUSTIRREG               0x00000002
  859. #define LINESPECIALINFO_REORDER                 0x00000004
  860. #define LINESPECIALINFO_UNKNOWN                 0x00000008
  861. #define LINESPECIALINFO_UNAVAIL                 0x00000010
  862.  
  863. #define LINETERMDEV_PHONE                       0x00000001
  864. #define LINETERMDEV_HEADSET                     0x00000002
  865. #define LINETERMDEV_SPEAKER                     0x00000004
  866.  
  867. #define LINETERMMODE_BUTTONS                    0x00000001
  868. #define LINETERMMODE_LAMPS                      0x00000002
  869. #define LINETERMMODE_DISPLAY                    0x00000004
  870. #define LINETERMMODE_RINGER                     0x00000008
  871. #define LINETERMMODE_HOOKSWITCH                 0x00000010
  872. #define LINETERMMODE_MEDIATOLINE                0x00000020
  873. #define LINETERMMODE_MEDIAFROMLINE              0x00000040
  874. #define LINETERMMODE_MEDIABIDIRECT              0x00000080
  875.  
  876. #define LINETERMSHARING_PRIVATE                 0x00000001
  877. #define LINETERMSHARING_SHAREDEXCL              0x00000002
  878. #define LINETERMSHARING_SHAREDCONF              0x00000004
  879.  
  880. #define LINETOLLLISTOPTION_ADD                  0x00000001
  881. #define LINETOLLLISTOPTION_REMOVE               0x00000002
  882.  
  883. #define LINETONEMODE_CUSTOM                     0x00000001
  884. #define LINETONEMODE_RINGBACK                   0x00000002
  885. #define LINETONEMODE_BUSY                       0x00000004
  886. #define LINETONEMODE_BEEP                       0x00000008
  887. #define LINETONEMODE_BILLING                    0x00000010
  888.  
  889. #define LINETRANSFERMODE_TRANSFER               0x00000001
  890. #define LINETRANSFERMODE_CONFERENCE             0x00000002
  891.  
  892. #define LINETRANSLATEOPTION_CARDOVERRIDE        0x00000001
  893. #define LINETRANSLATEOPTION_CANCELCALLWAITING   0x00000002      // TAPI v1.4
  894. #define LINETRANSLATEOPTION_FORCELOCAL          0x00000004      // TAPI v1.4
  895. #define LINETRANSLATEOPTION_FORCELD             0x00000008      // TAPI v1.4
  896.  
  897. #define LINETRANSLATERESULT_CANONICAL           0x00000001
  898. #define LINETRANSLATERESULT_INTERNATIONAL       0x00000002
  899. #define LINETRANSLATERESULT_LONGDISTANCE        0x00000004
  900. #define LINETRANSLATERESULT_LOCAL               0x00000008
  901. #define LINETRANSLATERESULT_INTOLLLIST          0x00000010
  902. #define LINETRANSLATERESULT_NOTINTOLLLIST       0x00000020
  903. #define LINETRANSLATERESULT_DIALBILLING         0x00000040
  904. #define LINETRANSLATERESULT_DIALQUIET           0x00000080
  905. #define LINETRANSLATERESULT_DIALDIALTONE        0x00000100
  906. #define LINETRANSLATERESULT_DIALPROMPT          0x00000200
  907. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  908. #define LINETRANSLATERESULT_VOICEDETECT         0x00000400      // TAPI v2.0
  909. #endif
  910. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  911. #define LINETRANSLATERESULT_NOTRANSLATION       0x00000800      // TAPI v3.0
  912. #endif
  913.  
  914. #define PHONEBUTTONFUNCTION_UNKNOWN             0x00000000
  915. #define PHONEBUTTONFUNCTION_CONFERENCE          0x00000001
  916. #define PHONEBUTTONFUNCTION_TRANSFER            0x00000002
  917. #define PHONEBUTTONFUNCTION_DROP                0x00000003
  918. #define PHONEBUTTONFUNCTION_HOLD                0x00000004
  919. #define PHONEBUTTONFUNCTION_RECALL              0x00000005
  920. #define PHONEBUTTONFUNCTION_DISCONNECT          0x00000006
  921. #define PHONEBUTTONFUNCTION_CONNECT             0x00000007
  922. #define PHONEBUTTONFUNCTION_MSGWAITON           0x00000008
  923. #define PHONEBUTTONFUNCTION_MSGWAITOFF          0x00000009
  924. #define PHONEBUTTONFUNCTION_SELECTRING          0x0000000A
  925. #define PHONEBUTTONFUNCTION_ABBREVDIAL          0x0000000B
  926. #define PHONEBUTTONFUNCTION_FORWARD             0x0000000C
  927. #define PHONEBUTTONFUNCTION_PICKUP              0x0000000D
  928. #define PHONEBUTTONFUNCTION_RINGAGAIN           0x0000000E
  929. #define PHONEBUTTONFUNCTION_PARK                0x0000000F
  930. #define PHONEBUTTONFUNCTION_REJECT              0x00000010
  931. #define PHONEBUTTONFUNCTION_REDIRECT            0x00000011
  932. #define PHONEBUTTONFUNCTION_MUTE                0x00000012
  933. #define PHONEBUTTONFUNCTION_VOLUMEUP            0x00000013
  934. #define PHONEBUTTONFUNCTION_VOLUMEDOWN          0x00000014
  935. #define PHONEBUTTONFUNCTION_SPEAKERON           0x00000015
  936. #define PHONEBUTTONFUNCTION_SPEAKEROFF          0x00000016
  937. #define PHONEBUTTONFUNCTION_FLASH               0x00000017
  938. #define PHONEBUTTONFUNCTION_DATAON              0x00000018
  939. #define PHONEBUTTONFUNCTION_DATAOFF             0x00000019
  940. #define PHONEBUTTONFUNCTION_DONOTDISTURB        0x0000001A
  941. #define PHONEBUTTONFUNCTION_INTERCOM            0x0000001B
  942. #define PHONEBUTTONFUNCTION_BRIDGEDAPP          0x0000001C
  943. #define PHONEBUTTONFUNCTION_BUSY                0x0000001D
  944. #define PHONEBUTTONFUNCTION_CALLAPP             0x0000001E
  945. #define PHONEBUTTONFUNCTION_DATETIME            0x0000001F
  946. #define PHONEBUTTONFUNCTION_DIRECTORY           0x00000020
  947. #define PHONEBUTTONFUNCTION_COVER               0x00000021
  948. #define PHONEBUTTONFUNCTION_CALLID              0x00000022
  949. #define PHONEBUTTONFUNCTION_LASTNUM             0x00000023
  950. #define PHONEBUTTONFUNCTION_NIGHTSRV            0x00000024
  951. #define PHONEBUTTONFUNCTION_SENDCALLS           0x00000025
  952. #define PHONEBUTTONFUNCTION_MSGINDICATOR        0x00000026
  953. #define PHONEBUTTONFUNCTION_REPDIAL             0x00000027
  954. #define PHONEBUTTONFUNCTION_SETREPDIAL          0x00000028
  955. #define PHONEBUTTONFUNCTION_SYSTEMSPEED         0x00000029
  956. #define PHONEBUTTONFUNCTION_STATIONSPEED        0x0000002A
  957. #define PHONEBUTTONFUNCTION_CAMPON              0x0000002B
  958. #define PHONEBUTTONFUNCTION_SAVEREPEAT          0x0000002C
  959. #define PHONEBUTTONFUNCTION_QUEUECALL           0x0000002D
  960. #define PHONEBUTTONFUNCTION_NONE                0x0000002E
  961.  
  962. #define PHONEBUTTONMODE_DUMMY                   0x00000001
  963. #define PHONEBUTTONMODE_CALL                    0x00000002
  964. #define PHONEBUTTONMODE_FEATURE                 0x00000004
  965. #define PHONEBUTTONMODE_KEYPAD                  0x00000008
  966. #define PHONEBUTTONMODE_LOCAL                   0x00000010
  967. #define PHONEBUTTONMODE_DISPLAY                 0x00000020
  968.  
  969. #define PHONEBUTTONSTATE_UP                     0x00000001
  970. #define PHONEBUTTONSTATE_DOWN                   0x00000002
  971. #define PHONEBUTTONSTATE_UNKNOWN                0x00000004      // TAPI v1.4
  972. #define PHONEBUTTONSTATE_UNAVAIL                0x00000008      // TAPI v1.4
  973.  
  974. #define PHONEERR_ALLOCATED                      0x90000001
  975. #define PHONEERR_BADDEVICEID                    0x90000002
  976. #define PHONEERR_INCOMPATIBLEAPIVERSION         0x90000003
  977. #define PHONEERR_INCOMPATIBLEEXTVERSION         0x90000004
  978. #define PHONEERR_INIFILECORRUPT                 0x90000005
  979. #define PHONEERR_INUSE                          0x90000006
  980. #define PHONEERR_INVALAPPHANDLE                 0x90000007
  981. #define PHONEERR_INVALAPPNAME                   0x90000008
  982. #define PHONEERR_INVALBUTTONLAMPID              0x90000009
  983. #define PHONEERR_INVALBUTTONMODE                0x9000000A
  984. #define PHONEERR_INVALBUTTONSTATE               0x9000000B
  985. #define PHONEERR_INVALDATAID                    0x9000000C
  986. #define PHONEERR_INVALDEVICECLASS               0x9000000D
  987. #define PHONEERR_INVALEXTVERSION                0x9000000E
  988. #define PHONEERR_INVALHOOKSWITCHDEV             0x9000000F
  989. #define PHONEERR_INVALHOOKSWITCHMODE            0x90000010
  990. #define PHONEERR_INVALLAMPMODE                  0x90000011
  991. #define PHONEERR_INVALPARAM                     0x90000012
  992. #define PHONEERR_INVALPHONEHANDLE               0x90000013
  993. #define PHONEERR_INVALPHONESTATE                0x90000014
  994. #define PHONEERR_INVALPOINTER                   0x90000015
  995. #define PHONEERR_INVALPRIVILEGE                 0x90000016
  996. #define PHONEERR_INVALRINGMODE                  0x90000017
  997. #define PHONEERR_NODEVICE                       0x90000018
  998. #define PHONEERR_NODRIVER                       0x90000019
  999. #define PHONEERR_NOMEM                          0x9000001A
  1000. #define PHONEERR_NOTOWNER                       0x9000001B
  1001. #define PHONEERR_OPERATIONFAILED                0x9000001C
  1002. #define PHONEERR_OPERATIONUNAVAIL               0x9000001D
  1003. #define PHONEERR_RESOURCEUNAVAIL                0x9000001F
  1004. #define PHONEERR_REQUESTOVERRUN                 0x90000020
  1005. #define PHONEERR_STRUCTURETOOSMALL              0x90000021
  1006. #define PHONEERR_UNINITIALIZED                  0x90000022
  1007. #define PHONEERR_REINIT                         0x90000023
  1008. #define PHONEERR_DISCONNECTED                   0x90000024
  1009.  
  1010. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1011. #define PHONEFEATURE_GETBUTTONINFO              0x00000001      // TAPI v2.0
  1012. #define PHONEFEATURE_GETDATA                    0x00000002      // TAPI v2.0
  1013. #define PHONEFEATURE_GETDISPLAY                 0x00000004      // TAPI v2.0
  1014. #define PHONEFEATURE_GETGAINHANDSET             0x00000008      // TAPI v2.0
  1015. #define PHONEFEATURE_GETGAINSPEAKER             0x00000010      // TAPI v2.0
  1016. #define PHONEFEATURE_GETGAINHEADSET             0x00000020      // TAPI v2.0
  1017. #define PHONEFEATURE_GETHOOKSWITCHHANDSET       0x00000040      // TAPI v2.0
  1018. #define PHONEFEATURE_GETHOOKSWITCHSPEAKER       0x00000080      // TAPI v2.0
  1019. #define PHONEFEATURE_GETHOOKSWITCHHEADSET       0x00000100      // TAPI v2.0
  1020. #define PHONEFEATURE_GETLAMP                    0x00000200      // TAPI v2.0
  1021. #define PHONEFEATURE_GETRING                    0x00000400      // TAPI v2.0
  1022. #define PHONEFEATURE_GETVOLUMEHANDSET           0x00000800      // TAPI v2.0
  1023. #define PHONEFEATURE_GETVOLUMESPEAKER           0x00001000      // TAPI v2.0
  1024. #define PHONEFEATURE_GETVOLUMEHEADSET           0x00002000      // TAPI v2.0
  1025. #define PHONEFEATURE_SETBUTTONINFO              0x00004000      // TAPI v2.0
  1026. #define PHONEFEATURE_SETDATA                    0x00008000      // TAPI v2.0
  1027. #define PHONEFEATURE_SETDISPLAY                 0x00010000      // TAPI v2.0
  1028. #define PHONEFEATURE_SETGAINHANDSET             0x00020000      // TAPI v2.0
  1029. #define PHONEFEATURE_SETGAINSPEAKER             0x00040000      // TAPI v2.0
  1030. #define PHONEFEATURE_SETGAINHEADSET             0x00080000      // TAPI v2.0
  1031. #define PHONEFEATURE_SETHOOKSWITCHHANDSET       0x00100000      // TAPI v2.0
  1032. #define PHONEFEATURE_SETHOOKSWITCHSPEAKER       0x00200000      // TAPI v2.0
  1033. #define PHONEFEATURE_SETHOOKSWITCHHEADSET       0x00400000      // TAPI v2.0
  1034. #define PHONEFEATURE_SETLAMP                    0x00800000      // TAPI v2.0
  1035. #define PHONEFEATURE_SETRING                    0x01000000      // TAPI v2.0
  1036. #define PHONEFEATURE_SETVOLUMEHANDSET           0x02000000      // TAPI v2.0
  1037. #define PHONEFEATURE_SETVOLUMESPEAKER           0x04000000      // TAPI v2.0
  1038. #define PHONEFEATURE_SETVOLUMEHEADSET           0x08000000      // TAPI v2.0
  1039. #endif
  1040.  
  1041. #define PHONEHOOKSWITCHDEV_HANDSET              0x00000001
  1042. #define PHONEHOOKSWITCHDEV_SPEAKER              0x00000002
  1043. #define PHONEHOOKSWITCHDEV_HEADSET              0x00000004
  1044.  
  1045. #define PHONEHOOKSWITCHMODE_ONHOOK              0x00000001
  1046. #define PHONEHOOKSWITCHMODE_MIC                 0x00000002
  1047. #define PHONEHOOKSWITCHMODE_SPEAKER             0x00000004
  1048. #define PHONEHOOKSWITCHMODE_MICSPEAKER          0x00000008
  1049. #define PHONEHOOKSWITCHMODE_UNKNOWN             0x00000010
  1050.  
  1051. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1052. #define PHONEINITIALIZEEXOPTION_USEHIDDENWINDOW     0x00000001  // TAPI v2.0
  1053. #define PHONEINITIALIZEEXOPTION_USEEVENT            0x00000002  // TAPI v2.0
  1054. #define PHONEINITIALIZEEXOPTION_USECOMPLETIONPORT   0x00000003  // TAPI v2.0
  1055. #endif
  1056.  
  1057. #define PHONELAMPMODE_DUMMY                     0x00000001
  1058. #define PHONELAMPMODE_OFF                       0x00000002
  1059. #define PHONELAMPMODE_STEADY                    0x00000004
  1060. #define PHONELAMPMODE_WINK                      0x00000008
  1061. #define PHONELAMPMODE_FLASH                     0x00000010
  1062. #define PHONELAMPMODE_FLUTTER                   0x00000020
  1063. #define PHONELAMPMODE_BROKENFLUTTER             0x00000040
  1064. #define PHONELAMPMODE_UNKNOWN                   0x00000080
  1065.  
  1066. #define PHONEPRIVILEGE_MONITOR                  0x00000001
  1067. #define PHONEPRIVILEGE_OWNER                    0x00000002
  1068.  
  1069. #define PHONESTATE_OTHER                        0x00000001
  1070. #define PHONESTATE_CONNECTED                    0x00000002
  1071. #define PHONESTATE_DISCONNECTED                 0x00000004
  1072. #define PHONESTATE_OWNER                        0x00000008
  1073. #define PHONESTATE_MONITORS                     0x00000010
  1074. #define PHONESTATE_DISPLAY                      0x00000020
  1075. #define PHONESTATE_LAMP                         0x00000040
  1076. #define PHONESTATE_RINGMODE                     0x00000080
  1077. #define PHONESTATE_RINGVOLUME                   0x00000100
  1078. #define PHONESTATE_HANDSETHOOKSWITCH            0x00000200
  1079. #define PHONESTATE_HANDSETVOLUME                0x00000400
  1080. #define PHONESTATE_HANDSETGAIN                  0x00000800
  1081. #define PHONESTATE_SPEAKERHOOKSWITCH            0x00001000
  1082. #define PHONESTATE_SPEAKERVOLUME                0x00002000
  1083. #define PHONESTATE_SPEAKERGAIN                  0x00004000
  1084. #define PHONESTATE_HEADSETHOOKSWITCH            0x00008000
  1085. #define PHONESTATE_HEADSETVOLUME                0x00010000
  1086. #define PHONESTATE_HEADSETGAIN                  0x00020000
  1087. #define PHONESTATE_SUSPEND                      0x00040000
  1088. #define PHONESTATE_RESUME                       0x00080000
  1089. #define PHONESTATE_DEVSPECIFIC                  0x00100000
  1090. #define PHONESTATE_REINIT                       0x00200000
  1091. #define PHONESTATE_CAPSCHANGE                   0x00400000      // TAPI v1.4
  1092. #define PHONESTATE_REMOVED                      0x00800000      // TAPI v1.4
  1093.  
  1094. #define PHONESTATUSFLAGS_CONNECTED              0x00000001
  1095. #define PHONESTATUSFLAGS_SUSPENDED              0x00000002
  1096.  
  1097. #define STRINGFORMAT_ASCII                      0x00000001
  1098. #define STRINGFORMAT_DBCS                       0x00000002
  1099. #define STRINGFORMAT_UNICODE                    0x00000003
  1100. #define STRINGFORMAT_BINARY                     0x00000004
  1101.  
  1102. #define TAPI_REPLY                              WM_USER + 99
  1103.  
  1104. #define TAPIERR_CONNECTED                       0L
  1105. #define TAPIERR_DROPPED                         -1L
  1106. #define TAPIERR_NOREQUESTRECIPIENT              -2L
  1107. #define TAPIERR_REQUESTQUEUEFULL                -3L
  1108. #define TAPIERR_INVALDESTADDRESS                -4L
  1109. #define TAPIERR_INVALWINDOWHANDLE               -5L
  1110. #define TAPIERR_INVALDEVICECLASS                -6L
  1111. #define TAPIERR_INVALDEVICEID                   -7L
  1112. #define TAPIERR_DEVICECLASSUNAVAIL              -8L
  1113. #define TAPIERR_DEVICEIDUNAVAIL                 -9L
  1114. #define TAPIERR_DEVICEINUSE                     -10L
  1115. #define TAPIERR_DESTBUSY                        -11L
  1116. #define TAPIERR_DESTNOANSWER                    -12L
  1117. #define TAPIERR_DESTUNAVAIL                     -13L
  1118. #define TAPIERR_UNKNOWNWINHANDLE                -14L
  1119. #define TAPIERR_UNKNOWNREQUESTID                -15L
  1120. #define TAPIERR_REQUESTFAILED                   -16L
  1121. #define TAPIERR_REQUESTCANCELLED                -17L
  1122. #define TAPIERR_INVALPOINTER                    -18L
  1123. #define TAPIERR_NOTADMIN                        -19L
  1124.  
  1125.  
  1126. #define TAPIMAXDESTADDRESSSIZE                  80L
  1127. #define TAPIMAXAPPNAMESIZE                      40L
  1128. #define TAPIMAXCALLEDPARTYSIZE                  40L
  1129. #define TAPIMAXCOMMENTSIZE                      80L
  1130. #define TAPIMAXDEVICECLASSSIZE                  40L
  1131. #define TAPIMAXDEVICEIDSIZE                     40L
  1132.  
  1133.  
  1134. #ifndef GUID_DEFINED
  1135. #define GUID_DEFINED
  1136. typedef struct _GUID
  1137. {
  1138.     unsigned long  Data1;
  1139.     unsigned short Data2;
  1140.     unsigned short Data3;
  1141.     unsigned char  Data4[8];
  1142. } GUID;
  1143.  
  1144. #endif /* GUID_DEFINED */
  1145.  
  1146. #ifndef __LPGUID_DEFINED__
  1147. #define __LPGUID_DEFINED__
  1148. typedef GUID *LPGUID;
  1149. #endif
  1150.  
  1151. typedef struct lineaddresscaps_tag
  1152. {
  1153.     DWORD       dwTotalSize;
  1154.     DWORD       dwNeededSize;
  1155.     DWORD       dwUsedSize;
  1156.     DWORD       dwLineDeviceID;
  1157.     DWORD       dwAddressSize;
  1158.     DWORD       dwAddressOffset;
  1159.     DWORD       dwDevSpecificSize;
  1160.     DWORD       dwDevSpecificOffset;
  1161.     DWORD       dwAddressSharing;
  1162.     DWORD       dwAddressStates;
  1163.     DWORD       dwCallInfoStates;
  1164.     DWORD       dwCallerIDFlags;
  1165.     DWORD       dwCalledIDFlags;
  1166.     DWORD       dwConnectedIDFlags;
  1167.     DWORD       dwRedirectionIDFlags;
  1168.     DWORD       dwRedirectingIDFlags;
  1169.     DWORD       dwCallStates;
  1170.     DWORD       dwDialToneModes;
  1171.     DWORD       dwBusyModes;
  1172.     DWORD       dwSpecialInfo;
  1173.     DWORD       dwDisconnectModes;
  1174.     DWORD       dwMaxNumActiveCalls;
  1175.     DWORD       dwMaxNumOnHoldCalls;
  1176.     DWORD       dwMaxNumOnHoldPendingCalls;
  1177.     DWORD       dwMaxNumConference;
  1178.     DWORD       dwMaxNumTransConf;
  1179.     DWORD       dwAddrCapFlags;
  1180.     DWORD       dwCallFeatures;
  1181.     DWORD       dwRemoveFromConfCaps;
  1182.     DWORD       dwRemoveFromConfState;
  1183.     DWORD       dwTransferModes;
  1184.     DWORD       dwParkModes;
  1185.     DWORD       dwForwardModes;
  1186.     DWORD       dwMaxForwardEntries;
  1187.     DWORD       dwMaxSpecificEntries;
  1188.     DWORD       dwMinFwdNumRings;
  1189.     DWORD       dwMaxFwdNumRings;
  1190.     DWORD       dwMaxCallCompletions;
  1191.     DWORD       dwCallCompletionConds;
  1192.     DWORD       dwCallCompletionModes;
  1193.     DWORD       dwNumCompletionMessages;
  1194.     DWORD       dwCompletionMsgTextEntrySize;
  1195.     DWORD       dwCompletionMsgTextSize;
  1196.     DWORD       dwCompletionMsgTextOffset;
  1197.  
  1198.     DWORD       dwAddressFeatures;                              // TAPI v1.4
  1199.  
  1200. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1201.     DWORD       dwPredictiveAutoTransferStates;                 // TAPI v2.0
  1202.     DWORD       dwNumCallTreatments;                            // TAPI v2.0
  1203.     DWORD       dwCallTreatmentListSize;                        // TAPI v2.0
  1204.     DWORD       dwCallTreatmentListOffset;                      // TAPI v2.0
  1205.     DWORD       dwDeviceClassesSize;                            // TAPI v2.0
  1206.     DWORD       dwDeviceClassesOffset;                          // TAPI v2.0
  1207.     DWORD       dwMaxCallDataSize;                              // TAPI v2.0
  1208.     DWORD       dwCallFeatures2;                                // TAPI v2.0
  1209.     DWORD       dwMaxNoAnswerTimeout;                           // TAPI v2.0
  1210.     DWORD       dwConnectedModes;                               // TAPI v2.0
  1211.     DWORD       dwOfferingModes;                                // TAPI v2.0
  1212.     DWORD       dwAvailableMediaModes;                          // TAPI v2.0
  1213. #endif
  1214.  
  1215. } LINEADDRESSCAPS, FAR *LPLINEADDRESSCAPS;
  1216.  
  1217. typedef struct lineaddressstatus_tag
  1218. {
  1219.     DWORD       dwTotalSize;
  1220.     DWORD       dwNeededSize;
  1221.     DWORD       dwUsedSize;
  1222.     DWORD       dwNumInUse;
  1223.     DWORD       dwNumActiveCalls;
  1224.     DWORD       dwNumOnHoldCalls;
  1225.     DWORD       dwNumOnHoldPendCalls;
  1226.     DWORD       dwAddressFeatures;
  1227.     DWORD       dwNumRingsNoAnswer;
  1228.     DWORD       dwForwardNumEntries;
  1229.     DWORD       dwForwardSize;
  1230.     DWORD       dwForwardOffset;
  1231.     DWORD       dwTerminalModesSize;
  1232.     DWORD       dwTerminalModesOffset;
  1233.     DWORD       dwDevSpecificSize;
  1234.     DWORD       dwDevSpecificOffset;
  1235.  
  1236. } LINEADDRESSSTATUS, FAR *LPLINEADDRESSSTATUS;
  1237.  
  1238. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1239. typedef struct lineagentactivityentry_tag
  1240. {
  1241.     DWORD       dwID;                                           // TAPI v2.0
  1242.     DWORD       dwNameSize;                                     // TAPI v2.0
  1243.     DWORD       dwNameOffset;                                   // TAPI v2.0
  1244.  
  1245. } LINEAGENTACTIVITYENTRY, *LPLINEAGENTACTIVITYENTRY;
  1246.  
  1247. typedef struct lineagentactivitylist_tag
  1248. {
  1249.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1250.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1251.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1252.     DWORD       dwNumEntries;                                   // TAPI v2.0
  1253.     DWORD       dwListSize;                                     // TAPI v2.0
  1254.     DWORD       dwListOffset;                                   // TAPI v2.0
  1255.  
  1256. } LINEAGENTACTIVITYLIST, *LPLINEAGENTACTIVITYLIST;
  1257.  
  1258. typedef struct lineagentcaps_tag
  1259. {
  1260.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1261.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1262.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1263.     DWORD       dwAgentHandlerInfoSize;                         // TAPI v2.0
  1264.     DWORD       dwAgentHandlerInfoOffset;                       // TAPI v2.0
  1265.     DWORD       dwCapsVersion;                                  // TAPI v2.0
  1266.     DWORD       dwFeatures;                                     // TAPI v2.0
  1267.     DWORD       dwStates;                                       // TAPI v2.0
  1268.     DWORD       dwNextStates;                                   // TAPI v2.0
  1269.     DWORD       dwMaxNumGroupEntries;                           // TAPI v2.0
  1270.     DWORD       dwAgentStatusMessages;                          // TAPI v2.0
  1271.     DWORD       dwNumAgentExtensionIDs;                         // TAPI v2.0
  1272.     DWORD       dwAgentExtensionIDListSize;                     // TAPI v2.0
  1273.     DWORD       dwAgentExtensionIDListOffset;                   // TAPI v2.0
  1274.  
  1275. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  1276.     GUID        ProxyGUID;                                      // TAPI v2.2
  1277. #endif
  1278.  
  1279. } LINEAGENTCAPS, *LPLINEAGENTCAPS;
  1280.  
  1281. typedef struct lineagentgroupentry_tag
  1282. {
  1283.     struct
  1284.     {
  1285.         DWORD   dwGroupID1;                                     // TAPI v2.0
  1286.         DWORD   dwGroupID2;                                     // TAPI v2.0
  1287.         DWORD   dwGroupID3;                                     // TAPI v2.0
  1288.         DWORD   dwGroupID4;                                     // TAPI v2.0
  1289.  
  1290.     } GroupID;
  1291.  
  1292.     DWORD       dwNameSize;                                     // TAPI v2.0
  1293.     DWORD       dwNameOffset;                                   // TAPI v2.0
  1294.  
  1295. } LINEAGENTGROUPENTRY, *LPLINEAGENTGROUPENTRY;
  1296.  
  1297. typedef struct lineagentgrouplist_tag
  1298. {
  1299.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1300.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1301.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1302.     DWORD       dwNumEntries;                                   // TAPI v2.0
  1303.     DWORD       dwListSize;                                     // TAPI v2.0
  1304.     DWORD       dwListOffset;                                   // TAPI v2.0
  1305.  
  1306. } LINEAGENTGROUPLIST, *LPLINEAGENTGROUPLIST;
  1307.  
  1308. typedef struct lineagentstatus_tag
  1309. {
  1310.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1311.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1312.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1313.     DWORD       dwNumEntries;                                   // TAPI v2.0
  1314.     DWORD       dwGroupListSize;                                // TAPI v2.0
  1315.     DWORD       dwGroupListOffset;                              // TAPI v2.0
  1316.     DWORD       dwState;                                        // TAPI v2.0
  1317.     DWORD       dwNextState;                                    // TAPI v2.0
  1318.     DWORD       dwActivityID;                                   // TAPI v2.0
  1319.     DWORD       dwActivitySize;                                 // TAPI v2.0
  1320.     DWORD       dwActivityOffset;                               // TAPI v2.0
  1321.     DWORD       dwAgentFeatures;                                // TAPI v2.0
  1322.     DWORD       dwValidStates;                                  // TAPI v2.0
  1323.     DWORD       dwValidNextStates;                              // TAPI v2.0
  1324.  
  1325. } LINEAGENTSTATUS, *LPLINEAGENTSTATUS;
  1326.  
  1327. typedef struct lineappinfo_tag
  1328. {
  1329.     DWORD       dwMachineNameSize;                              // TAPI v2.0
  1330.     DWORD       dwMachineNameOffset;                            // TAPI v2.0
  1331.     DWORD       dwUserNameSize;                                 // TAPI v2.0
  1332.     DWORD       dwUserNameOffset;                               // TAPI v2.0
  1333.     DWORD       dwModuleFilenameSize;                           // TAPI v2.0
  1334.     DWORD       dwModuleFilenameOffset;                         // TAPI v2.0
  1335.     DWORD       dwFriendlyNameSize;                             // TAPI v2.0
  1336.     DWORD       dwFriendlyNameOffset;                           // TAPI v2.0
  1337.     DWORD       dwMediaModes;                                   // TAPI v2.0
  1338.     DWORD       dwAddressID;                                    // TAPI v2.0
  1339.  
  1340. } LINEAPPINFO, *LPLINEAPPINFO;
  1341. #endif
  1342.  
  1343. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  1344. typedef struct lineagententry_tag
  1345. {
  1346.     HAGENT      hAgent;                                         // TAPI v2.2
  1347.     DWORD       dwNameSize;                                     // TAPI v2.2
  1348.     DWORD       dwNameOffset;                                   // TAPI v2.2
  1349.     DWORD       dwIDSize;                                       // TAPI v2.2
  1350.     DWORD       dwIDOffset;                                     // TAPI v2.2
  1351.     DWORD       dwPINSize;                                      // TAPI v2.2
  1352.     DWORD       dwPINOffset;                                    // TAPI v2.2
  1353.  
  1354. } LINEAGENTENTRY, *LPLINEAGENTENTRY;
  1355.  
  1356. typedef struct lineagentlist_tag
  1357. {
  1358.     DWORD       dwTotalSize;                                    // TAPI v2.2
  1359.     DWORD       dwNeededSize;                                   // TAPI v2.2
  1360.     DWORD       dwUsedSize;                                     // TAPI v2.2
  1361.     DWORD       dwNumEntries;                                   // TAPI v2.2
  1362.     DWORD       dwListSize;                                     // TAPI v2.2
  1363.     DWORD       dwListOffset;                                   // TAPI v2.2
  1364.  
  1365. } LINEAGENTLIST, *LPLINEAGENTLIST;
  1366.  
  1367. typedef struct lineagentinfo_tag
  1368. {
  1369.     DWORD       dwTotalSize;                                    // TAPI v2.2
  1370.     DWORD       dwNeededSize;                                   // TAPI v2.2
  1371.     DWORD       dwUsedSize;                                     // TAPI v2.2
  1372.     DWORD       dwAgentState;                                   // TAPI v2.2
  1373.     DWORD       dwNextAgentState;                               // TAPI v2.2
  1374.     DWORD       dwMeasurementPeriod;                            // TAPI v2.2
  1375.     CURRENCY    cyOverallCallRate;                              // TAPI v2.2
  1376.     DWORD       dwNumberOfACDCalls;                             // TAPI v2.2
  1377.     DWORD       dwNumberOfIncomingCalls;                        // TAPI v2.2
  1378.     DWORD       dwNumberOfOutgoingCalls;                        // TAPI v2.2
  1379.     DWORD       dwTotalACDTalkTime;                             // TAPI v2.2
  1380.     DWORD       dwTotalACDCallTime;                             // TAPI v2.2
  1381.     DWORD       dwTotalACDWrapUpTime;                           // TAPI v2.2
  1382.  
  1383. } LINEAGENTINFO, *LPLINEAGENTINFO;
  1384.  
  1385. typedef struct lineagentsession_tag
  1386. {
  1387.     HAGENTSESSION   hAgentSession;                              // TAPI v2.2
  1388.     HAGENT          hAgent;                                     // TAPI v2.2
  1389.     GUID            GroupID;                                    // TAPI v2.2
  1390.     DWORD           dwWorkingAddressID;                         // TAPI v2.2
  1391.  
  1392. } LINEAGENTSESSIONENTRY  , *LPLINEAGENTSESSIONENTRY;
  1393.  
  1394. typedef struct lineagentsessionlist_tag
  1395. {
  1396.     DWORD       dwTotalSize;                                    // TAPI v2.2
  1397.     DWORD       dwNeededSize;                                   // TAPI v2.2
  1398.     DWORD       dwUsedSize;                                     // TAPI v2.2
  1399.     DWORD       dwNumEntries;                                   // TAPI v2.2
  1400.     DWORD       dwListSize;                                     // TAPI v2.2
  1401.     DWORD       dwListOffset;                                   // TAPI v2.2
  1402.  
  1403. } LINEAGENTSESSIONLIST, *LPLINEAGENTSESSIONLIST;
  1404.  
  1405. typedef struct lineagentsessioninfo_tag
  1406. {
  1407.     DWORD       dwTotalSize;                                    // TAPI v2.2
  1408.     DWORD       dwNeededSize;                                   // TAPI v2.2
  1409.     DWORD       dwUsedSize;                                     // TAPI v2.2
  1410.     DWORD       dwAgentSessionState;                            // TAPI v2.2
  1411.     DWORD       dwNextAgentSessionState;                        // TAPI v2.2
  1412.     DATE        dateSessionStartTime;                           // TAPI v2.2
  1413.     DWORD       dwSessionDuration;                              // TAPI v2.2
  1414.     DWORD       dwNumberOfCalls;                                // TAPI v2.2
  1415.     DWORD       dwTotalTalkTime;                                // TAPI v2.2
  1416.     DWORD       dwAverageTalkTime;                              // TAPI v2.2
  1417.     DWORD       dwTotalCallTime;                                // TAPI v2.2
  1418.     DWORD       dwAverageCallTime;                              // TAPI v2.2
  1419.     DWORD       dwTotalWrapUpTime;                              // TAPI v2.2
  1420.     DWORD       dwAverageWrapUpTime;                            // TAPI v2.2
  1421.     CURRENCY    cyACDCallRate;                                  // TAPI v2.2
  1422.     DWORD       dwLongestTimeToAnswer;                          // TAPI v2.2
  1423.     DWORD       dwAverageTimeToAnswer;                          // TAPI v2.2
  1424.  
  1425. } LINEAGENTSESSIONINFO, *LPLINEAGENTSESSIONINFO;
  1426.  
  1427. typedef struct linequeueentry_tag
  1428. {
  1429.     DWORD       dwQueueID;                                      // TAPI v2.2
  1430.     DWORD       dwNameSize;                                     // TAPI v2.2
  1431.     DWORD       dwNameOffset;                                   // TAPI v2.2
  1432.  
  1433. } LINEQUEUEENTRY, *LPLINEQUEUEENTRY;
  1434.  
  1435. typedef struct linequeuelist_tag
  1436. {
  1437.     DWORD       dwTotalSize;                                    // TAPI v2.2
  1438.     DWORD       dwNeededSize;                                   // TAPI v2.2
  1439.     DWORD       dwUsedSize;                                     // TAPI v2.2
  1440.     DWORD       dwNumEntries;                                   // TAPI v2.2
  1441.     DWORD       dwListSize;                                     // TAPI v2.2
  1442.     DWORD       dwListOffset;                                   // TAPI v2.2
  1443.  
  1444. } LINEQUEUELIST, *LPLINEQUEUELIST;
  1445.  
  1446. typedef struct linequeueinfo_tag
  1447. {
  1448.     DWORD       dwTotalSize;                                    // TAPI v2.2
  1449.     DWORD       dwNeededSize;                                   // TAPI v2.2
  1450.     DWORD       dwUsedSize;                                     // TAPI v2.2
  1451.     DWORD       dwMeasurementPeriod;                            // TAPI v2.2
  1452.     DWORD       dwTotalCallsQueued;                             // TAPI v2.2
  1453.     DWORD       dwCurrentCallsQueued;                           // TAPI v2.2
  1454.     DWORD       dwTotalCallsAbandoned;                          // TAPI v2.2
  1455.     DWORD       dwTotalCallsFlowedIn;                           // TAPI v2.2
  1456.     DWORD       dwTotalCallsFlowedOut;                          // TAPI v2.2
  1457.     DWORD       dwLongestEverWaitTime;                          // TAPI v2.2
  1458.     DWORD       dwCurrentLongestWaitTime;                       // TAPI v2.2
  1459.     DWORD       dwAverageWaitTime;                              // TAPI v2.2
  1460.     DWORD       dwFinalDisposition;                             // TAPI v2.2
  1461.  
  1462. } LINEQUEUEINFO, *LPLINEQUEUEINFO;
  1463.  
  1464. typedef struct lineproxyrequestlist_tag
  1465. {
  1466.     DWORD       dwTotalSize;                                    // TAPI v2.2
  1467.     DWORD       dwNeededSize;                                   // TAPI v2.2
  1468.     DWORD       dwUsedSize;                                     // TAPI v2.2
  1469.     DWORD       dwNumEntries;                                   // TAPI v2.2
  1470.     DWORD       dwListSize;                                     // TAPI v2.2
  1471.     DWORD       dwListOffset;                                   // TAPI v2.2
  1472.  
  1473. } LINEPROXYREQUESTLIST, *LPLINEPROXYREQUESTLIST;
  1474. #endif
  1475.  
  1476. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  1477. typedef struct linecallhubtrackinginfo_tag
  1478. {
  1479.     DWORD       dwTotalSize;                                    // TAPI v3.0
  1480.     DWORD       dwNeededSize;                                   // TAPI v3.0
  1481.     DWORD       dwUsedSize;                                     // TAPI v3.0
  1482.     DWORD       dwAvailableTracking;                            // TAPI v3.0
  1483.     DWORD       dwCurrentTracking;                              // TAPI v3.0
  1484.  
  1485. } LINECALLHUBTRACKINGINFO, FAR *LPLINECALLHUBTRACKINGINFO;
  1486. #endif
  1487.  
  1488. typedef struct linedialparams_tag
  1489. {
  1490.     DWORD       dwDialPause;
  1491.     DWORD       dwDialSpeed;
  1492.     DWORD       dwDigitDuration;
  1493.     DWORD       dwWaitForDialtone;
  1494.  
  1495. } LINEDIALPARAMS, FAR *LPLINEDIALPARAMS;
  1496.  
  1497. typedef struct linecallinfo_tag
  1498. {
  1499.     DWORD       dwTotalSize;
  1500.     DWORD       dwNeededSize;
  1501.     DWORD       dwUsedSize;
  1502.     HLINE       hLine;
  1503.     DWORD       dwLineDeviceID;
  1504.     DWORD       dwAddressID;
  1505.     DWORD       dwBearerMode;
  1506.     DWORD       dwRate;
  1507.     DWORD       dwMediaMode;
  1508.     DWORD       dwAppSpecific;
  1509.     DWORD       dwCallID;
  1510.     DWORD       dwRelatedCallID;
  1511.     DWORD       dwCallParamFlags;
  1512.     DWORD       dwCallStates;
  1513.     DWORD       dwMonitorDigitModes;
  1514.     DWORD       dwMonitorMediaModes;
  1515.     LINEDIALPARAMS  DialParams;
  1516.     DWORD       dwOrigin;
  1517.     DWORD       dwReason;
  1518.     DWORD       dwCompletionID;
  1519.     DWORD       dwNumOwners;
  1520.     DWORD       dwNumMonitors;
  1521.     DWORD       dwCountryCode;
  1522.     DWORD       dwTrunk;
  1523.     DWORD       dwCallerIDFlags;
  1524.     DWORD       dwCallerIDSize;
  1525.     DWORD       dwCallerIDOffset;
  1526.     DWORD       dwCallerIDNameSize;
  1527.     DWORD       dwCallerIDNameOffset;
  1528.     DWORD       dwCalledIDFlags;
  1529.     DWORD       dwCalledIDSize;
  1530.     DWORD       dwCalledIDOffset;
  1531.     DWORD       dwCalledIDNameSize;
  1532.     DWORD       dwCalledIDNameOffset;
  1533.     DWORD       dwConnectedIDFlags;
  1534.     DWORD       dwConnectedIDSize;
  1535.     DWORD       dwConnectedIDOffset;
  1536.     DWORD       dwConnectedIDNameSize;
  1537.     DWORD       dwConnectedIDNameOffset;
  1538.     DWORD       dwRedirectionIDFlags;
  1539.     DWORD       dwRedirectionIDSize;
  1540.     DWORD       dwRedirectionIDOffset;
  1541.     DWORD       dwRedirectionIDNameSize;
  1542.     DWORD       dwRedirectionIDNameOffset;
  1543.     DWORD       dwRedirectingIDFlags;
  1544.     DWORD       dwRedirectingIDSize;
  1545.     DWORD       dwRedirectingIDOffset;
  1546.     DWORD       dwRedirectingIDNameSize;
  1547.     DWORD       dwRedirectingIDNameOffset;
  1548.     DWORD       dwAppNameSize;
  1549.     DWORD       dwAppNameOffset;
  1550.     DWORD       dwDisplayableAddressSize;
  1551.     DWORD       dwDisplayableAddressOffset;
  1552.     DWORD       dwCalledPartySize;
  1553.     DWORD       dwCalledPartyOffset;
  1554.     DWORD       dwCommentSize;
  1555.     DWORD       dwCommentOffset;
  1556.     DWORD       dwDisplaySize;
  1557.     DWORD       dwDisplayOffset;
  1558.     DWORD       dwUserUserInfoSize;
  1559.     DWORD       dwUserUserInfoOffset;
  1560.     DWORD       dwHighLevelCompSize;
  1561.     DWORD       dwHighLevelCompOffset;
  1562.     DWORD       dwLowLevelCompSize;
  1563.     DWORD       dwLowLevelCompOffset;
  1564.     DWORD       dwChargingInfoSize;
  1565.     DWORD       dwChargingInfoOffset;
  1566.     DWORD       dwTerminalModesSize;
  1567.     DWORD       dwTerminalModesOffset;
  1568.     DWORD       dwDevSpecificSize;
  1569.     DWORD       dwDevSpecificOffset;
  1570.  
  1571. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1572.     DWORD       dwCallTreatment;                                // TAPI v2.0
  1573.     DWORD       dwCallDataSize;                                 // TAPI v2.0
  1574.     DWORD       dwCallDataOffset;                               // TAPI v2.0
  1575.     DWORD       dwSendingFlowspecSize;                          // TAPI v2.0
  1576.     DWORD       dwSendingFlowspecOffset;                        // TAPI v2.0
  1577.     DWORD       dwReceivingFlowspecSize;                        // TAPI v2.0
  1578.     DWORD       dwReceivingFlowspecOffset;                      // TAPI v2.0
  1579. #endif
  1580.  
  1581. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  1582.     DWORD       dwCallerIDAddressType;                          // TAPI v3.0
  1583.     DWORD       dwCalledIDAddressType;                          // TAPI v3.0
  1584.     DWORD       dwConnectedIDAddressType;                       // TAPI v3.0
  1585.     DWORD       dwRedirectionIDAddressType;                     // TAPI v3.0
  1586.     DWORD       dwRedirectingIDAddressType;                     // TAPI v3.0
  1587. #endif
  1588.  
  1589. } LINECALLINFO, FAR *LPLINECALLINFO;
  1590.  
  1591. typedef struct linecalllist_tag
  1592. {
  1593.     DWORD       dwTotalSize;
  1594.     DWORD       dwNeededSize;
  1595.     DWORD       dwUsedSize;
  1596.     DWORD       dwCallsNumEntries;
  1597.     DWORD       dwCallsSize;
  1598.     DWORD       dwCallsOffset;
  1599.  
  1600. } LINECALLLIST, FAR *LPLINECALLLIST;
  1601.  
  1602. typedef struct linecallparams_tag               // Defaults:
  1603. {
  1604.     DWORD       dwTotalSize;                    // ---------
  1605.     DWORD       dwBearerMode;                   // voice
  1606.     DWORD       dwMinRate;                      // (3.1kHz)
  1607.     DWORD       dwMaxRate;                      // (3.1kHz)
  1608.     DWORD       dwMediaMode;                    // interactiveVoice
  1609.     DWORD       dwCallParamFlags;               // 0
  1610.     DWORD       dwAddressMode;                  // addressID
  1611.     DWORD       dwAddressID;                    // (any available)
  1612.     LINEDIALPARAMS  DialParams;                 // (0, 0, 0, 0)
  1613.     DWORD       dwOrigAddressSize;              // 0
  1614.     DWORD       dwOrigAddressOffset;
  1615.     DWORD       dwDisplayableAddressSize;
  1616.     DWORD       dwDisplayableAddressOffset;
  1617.     DWORD       dwCalledPartySize;              // 0
  1618.     DWORD       dwCalledPartyOffset;
  1619.     DWORD       dwCommentSize;                  // 0
  1620.     DWORD       dwCommentOffset;
  1621.     DWORD       dwUserUserInfoSize;             // 0
  1622.     DWORD       dwUserUserInfoOffset;
  1623.     DWORD       dwHighLevelCompSize;            // 0
  1624.     DWORD       dwHighLevelCompOffset;
  1625.     DWORD       dwLowLevelCompSize;             // 0
  1626.     DWORD       dwLowLevelCompOffset;
  1627.     DWORD       dwDevSpecificSize;              // 0
  1628.     DWORD       dwDevSpecificOffset;
  1629.  
  1630. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1631.     DWORD       dwPredictiveAutoTransferStates;                 // TAPI v2.0
  1632.     DWORD       dwTargetAddressSize;                            // TAPI v2.0
  1633.     DWORD       dwTargetAddressOffset;                          // TAPI v2.0
  1634.     DWORD       dwSendingFlowspecSize;                          // TAPI v2.0
  1635.     DWORD       dwSendingFlowspecOffset;                        // TAPI v2.0
  1636.     DWORD       dwReceivingFlowspecSize;                        // TAPI v2.0
  1637.     DWORD       dwReceivingFlowspecOffset;                      // TAPI v2.0
  1638.     DWORD       dwDeviceClassSize;                              // TAPI v2.0
  1639.     DWORD       dwDeviceClassOffset;                            // TAPI v2.0
  1640.     DWORD       dwDeviceConfigSize;                             // TAPI v2.0
  1641.     DWORD       dwDeviceConfigOffset;                           // TAPI v2.0
  1642.     DWORD       dwCallDataSize;                                 // TAPI v2.0
  1643.     DWORD       dwCallDataOffset;                               // TAPI v2.0
  1644.     DWORD       dwNoAnswerTimeout;                              // TAPI v2.0
  1645.     DWORD       dwCallingPartyIDSize;                           // TAPI v2.0
  1646.     DWORD       dwCallingPartyIDOffset;                         // TAPI v2.0
  1647. #endif
  1648.  
  1649. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  1650.     DWORD       dwAddressType;                                  // TAPI v3.0
  1651. #endif
  1652.  
  1653. } LINECALLPARAMS, FAR *LPLINECALLPARAMS;
  1654.  
  1655. typedef struct linecallstatus_tag
  1656. {
  1657.     DWORD       dwTotalSize;
  1658.     DWORD       dwNeededSize;
  1659.     DWORD       dwUsedSize;
  1660.     DWORD       dwCallState;
  1661.     DWORD       dwCallStateMode;
  1662.     DWORD       dwCallPrivilege;
  1663.     DWORD       dwCallFeatures;
  1664.     DWORD       dwDevSpecificSize;
  1665.     DWORD       dwDevSpecificOffset;
  1666.  
  1667. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1668.     DWORD       dwCallFeatures2;                                // TAPI v2.0
  1669. #if WIN32
  1670.     SYSTEMTIME  tStateEntryTime;                                // TAPI v2.0
  1671. #else
  1672.     WORD        tStateEntryTime[8];                             // TAPI v2.0
  1673. #endif
  1674. #endif
  1675.  
  1676. } LINECALLSTATUS, FAR *LPLINECALLSTATUS;
  1677.  
  1678. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1679. typedef struct linecalltreatmententry_tag
  1680. {
  1681.     DWORD       dwCallTreatmentID;                              // TAPI v2.0
  1682.     DWORD       dwCallTreatmentNameSize;                        // TAPI v2.0
  1683.     DWORD       dwCallTreatmentNameOffset;                      // TAPI v2.0
  1684.  
  1685. } LINECALLTREATMENTENTRY, FAR *LPLINECALLTREATMENTENTRY;
  1686. #endif
  1687.  
  1688. typedef struct linecardentry_tag
  1689. {
  1690.     DWORD       dwPermanentCardID;
  1691.     DWORD       dwCardNameSize;
  1692.     DWORD       dwCardNameOffset;
  1693.     DWORD       dwCardNumberDigits;                             // TAPI v1.4
  1694.     DWORD       dwSameAreaRuleSize;                             // TAPI v1.4
  1695.     DWORD       dwSameAreaRuleOffset;                           // TAPI v1.4
  1696.     DWORD       dwLongDistanceRuleSize;                         // TAPI v1.4
  1697.     DWORD       dwLongDistanceRuleOffset;                       // TAPI v1.4
  1698.     DWORD       dwInternationalRuleSize;                        // TAPI v1.4
  1699.     DWORD       dwInternationalRuleOffset;                      // TAPI v1.4
  1700.     DWORD       dwOptions;                                      // TAPI v1.4
  1701.  
  1702. } LINECARDENTRY, FAR *LPLINECARDENTRY;
  1703.  
  1704. typedef struct linecountryentry_tag
  1705. {
  1706.     DWORD       dwCountryID;                                    // TAPI v1.4
  1707.     DWORD       dwCountryCode;                                  // TAPI v1.4
  1708.     DWORD       dwNextCountryID;                                // TAPI v1.4
  1709.     DWORD       dwCountryNameSize;                              // TAPI v1.4
  1710.     DWORD       dwCountryNameOffset;                            // TAPI v1.4
  1711.     DWORD       dwSameAreaRuleSize;                             // TAPI v1.4
  1712.     DWORD       dwSameAreaRuleOffset;                           // TAPI v1.4
  1713.     DWORD       dwLongDistanceRuleSize;                         // TAPI v1.4
  1714.     DWORD       dwLongDistanceRuleOffset;                       // TAPI v1.4
  1715.     DWORD       dwInternationalRuleSize;                        // TAPI v1.4
  1716.     DWORD       dwInternationalRuleOffset;                      // TAPI v1.4
  1717.  
  1718. } LINECOUNTRYENTRY, FAR *LPLINECOUNTRYENTRY;
  1719.  
  1720. typedef struct linecountrylist_tag
  1721. {
  1722.     DWORD       dwTotalSize;                                    // TAPI v1.4
  1723.     DWORD       dwNeededSize;                                   // TAPI v1.4
  1724.     DWORD       dwUsedSize;                                     // TAPI v1.4
  1725.     DWORD       dwNumCountries;                                 // TAPI v1.4
  1726.     DWORD       dwCountryListSize;                              // TAPI v1.4
  1727.     DWORD       dwCountryListOffset;                            // TAPI v1.4
  1728.  
  1729. } LINECOUNTRYLIST, FAR *LPLINECOUNTRYLIST;
  1730.  
  1731. typedef struct linedevcaps_tag
  1732. {
  1733.     DWORD       dwTotalSize;
  1734.     DWORD       dwNeededSize;
  1735.     DWORD       dwUsedSize;
  1736.     DWORD       dwProviderInfoSize;
  1737.     DWORD       dwProviderInfoOffset;
  1738.     DWORD       dwSwitchInfoSize;
  1739.     DWORD       dwSwitchInfoOffset;
  1740.     DWORD       dwPermanentLineID;
  1741.     DWORD       dwLineNameSize;
  1742.     DWORD       dwLineNameOffset;
  1743.     DWORD       dwStringFormat;
  1744.     DWORD       dwAddressModes;
  1745.     DWORD       dwNumAddresses;
  1746.     DWORD       dwBearerModes;
  1747.     DWORD       dwMaxRate;
  1748.     DWORD       dwMediaModes;
  1749.     DWORD       dwGenerateToneModes;
  1750.     DWORD       dwGenerateToneMaxNumFreq;
  1751.     DWORD       dwGenerateDigitModes;
  1752.     DWORD       dwMonitorToneMaxNumFreq;
  1753.     DWORD       dwMonitorToneMaxNumEntries;
  1754.     DWORD       dwMonitorDigitModes;
  1755.     DWORD       dwGatherDigitsMinTimeout;
  1756.     DWORD       dwGatherDigitsMaxTimeout;
  1757.     DWORD       dwMedCtlDigitMaxListSize;
  1758.     DWORD       dwMedCtlMediaMaxListSize;
  1759.     DWORD       dwMedCtlToneMaxListSize;
  1760.     DWORD       dwMedCtlCallStateMaxListSize;
  1761.     DWORD       dwDevCapFlags;
  1762.     DWORD       dwMaxNumActiveCalls;
  1763.     DWORD       dwAnswerMode;
  1764.     DWORD       dwRingModes;
  1765.     DWORD       dwLineStates;
  1766.     DWORD       dwUUIAcceptSize;
  1767.     DWORD       dwUUIAnswerSize;
  1768.     DWORD       dwUUIMakeCallSize;
  1769.     DWORD       dwUUIDropSize;
  1770.     DWORD       dwUUISendUserUserInfoSize;
  1771.     DWORD       dwUUICallInfoSize;
  1772.     LINEDIALPARAMS  MinDialParams;
  1773.     LINEDIALPARAMS  MaxDialParams;
  1774.     LINEDIALPARAMS  DefaultDialParams;
  1775.     DWORD       dwNumTerminals;
  1776.     DWORD       dwTerminalCapsSize;
  1777.     DWORD       dwTerminalCapsOffset;
  1778.     DWORD       dwTerminalTextEntrySize;
  1779.     DWORD       dwTerminalTextSize;
  1780.     DWORD       dwTerminalTextOffset;
  1781.     DWORD       dwDevSpecificSize;
  1782.     DWORD       dwDevSpecificOffset;
  1783.  
  1784.     DWORD       dwLineFeatures;                                 // TAPI v1.4
  1785.  
  1786. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1787.     DWORD       dwSettableDevStatus;                            // TAPI v2.0
  1788.     DWORD       dwDeviceClassesSize;                            // TAPI v2.0
  1789.     DWORD       dwDeviceClassesOffset;                          // TAPI v2.0
  1790. #endif
  1791.  
  1792. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  1793.     GUID        PermanentLineGuid;                              // TAPI v2.2
  1794. #endif
  1795.  
  1796. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  1797.     DWORD       dwAddressTypes;                                 // TAPI v3.0
  1798.     GUID        ProtocolGuid;                                   // TAPI v3.0
  1799.     DWORD       dwAvailableTracking;                            // TAPI v3.0
  1800. #endif
  1801.  
  1802. } LINEDEVCAPS, FAR *LPLINEDEVCAPS;
  1803.  
  1804. typedef struct linedevstatus_tag
  1805. {
  1806.     DWORD       dwTotalSize;
  1807.     DWORD       dwNeededSize;
  1808.     DWORD       dwUsedSize;
  1809.     DWORD       dwNumOpens;
  1810.     DWORD       dwOpenMediaModes;
  1811.     DWORD       dwNumActiveCalls;
  1812.     DWORD       dwNumOnHoldCalls;
  1813.     DWORD       dwNumOnHoldPendCalls;
  1814.     DWORD       dwLineFeatures;
  1815.     DWORD       dwNumCallCompletions;
  1816.     DWORD       dwRingMode;
  1817.     DWORD       dwSignalLevel;
  1818.     DWORD       dwBatteryLevel;
  1819.     DWORD       dwRoamMode;
  1820.     DWORD       dwDevStatusFlags;
  1821.     DWORD       dwTerminalModesSize;
  1822.     DWORD       dwTerminalModesOffset;
  1823.     DWORD       dwDevSpecificSize;
  1824.     DWORD       dwDevSpecificOffset;
  1825.  
  1826. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1827.     DWORD       dwAvailableMediaModes;                          // TAPI v2.0
  1828.     DWORD       dwAppInfoSize;                                  // TAPI v2.0
  1829.     DWORD       dwAppInfoOffset;                                // TAPI v2.0
  1830. #endif
  1831.  
  1832. } LINEDEVSTATUS, FAR *LPLINEDEVSTATUS;
  1833.  
  1834. typedef struct lineextensionid_tag
  1835. {
  1836.     DWORD       dwExtensionID0;
  1837.     DWORD       dwExtensionID1;
  1838.     DWORD       dwExtensionID2;
  1839.     DWORD       dwExtensionID3;
  1840.  
  1841. } LINEEXTENSIONID, FAR *LPLINEEXTENSIONID;
  1842.  
  1843. typedef struct lineforward_tag
  1844. {
  1845.     DWORD       dwForwardMode;
  1846.     DWORD       dwCallerAddressSize;
  1847.     DWORD       dwCallerAddressOffset;
  1848.     DWORD       dwDestCountryCode;
  1849.     DWORD       dwDestAddressSize;
  1850.     DWORD       dwDestAddressOffset;
  1851.  
  1852. } LINEFORWARD, FAR *LPLINEFORWARD;
  1853.  
  1854. typedef struct lineforwardlist_tag
  1855. {
  1856.     DWORD       dwTotalSize;
  1857.     DWORD       dwNumEntries;
  1858.     LINEFORWARD ForwardList[1];
  1859.  
  1860. } LINEFORWARDLIST, FAR *LPLINEFORWARDLIST;
  1861.  
  1862. typedef struct linegeneratetone_tag
  1863. {
  1864.     DWORD       dwFrequency;
  1865.     DWORD       dwCadenceOn;
  1866.     DWORD       dwCadenceOff;
  1867.     DWORD       dwVolume;
  1868.  
  1869. } LINEGENERATETONE, FAR *LPLINEGENERATETONE;
  1870.  
  1871. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1872. typedef struct lineinitializeexparams_tag
  1873. {
  1874.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1875.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1876.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1877.     DWORD       dwOptions;                                      // TAPI v2.0
  1878.  
  1879.     union
  1880.     {
  1881.         HANDLE  hEvent;                                         // TAPI v2.0
  1882.         HANDLE  hCompletionPort;                                // TAPI v2.0
  1883.  
  1884.     } Handles;
  1885.  
  1886.     DWORD       dwCompletionKey;                                // TAPI v2.0
  1887.  
  1888. } LINEINITIALIZEEXPARAMS, FAR *LPLINEINITIALIZEEXPARAMS;
  1889. #endif
  1890.  
  1891. typedef struct linelocationentry_tag
  1892. {
  1893.     DWORD       dwPermanentLocationID;
  1894.     DWORD       dwLocationNameSize;
  1895.     DWORD       dwLocationNameOffset;
  1896.     DWORD       dwCountryCode;
  1897.     DWORD       dwCityCodeSize;
  1898.     DWORD       dwCityCodeOffset;
  1899.     DWORD       dwPreferredCardID;
  1900.  
  1901.     DWORD       dwLocalAccessCodeSize;                          // TAPI v1.4
  1902.     DWORD       dwLocalAccessCodeOffset;                        // TAPI v1.4
  1903.     DWORD       dwLongDistanceAccessCodeSize;                   // TAPI v1.4
  1904.     DWORD       dwLongDistanceAccessCodeOffset;                 // TAPI v1.4
  1905.     DWORD       dwTollPrefixListSize;                           // TAPI v1.4
  1906.     DWORD       dwTollPrefixListOffset;                         // TAPI v1.4
  1907.     DWORD       dwCountryID;                                    // TAPI v1.4
  1908.     DWORD       dwOptions;                                      // TAPI v1.4
  1909.     DWORD       dwCancelCallWaitingSize;                        // TAPI v1.4
  1910.     DWORD       dwCancelCallWaitingOffset;                      // TAPI v1.4
  1911.  
  1912. } LINELOCATIONENTRY, FAR *LPLINELOCATIONENTRY;
  1913.  
  1914. typedef struct linemediacontrolcallstate_tag
  1915. {
  1916.     DWORD       dwCallStates;
  1917.     DWORD       dwMediaControl;
  1918.  
  1919. } LINEMEDIACONTROLCALLSTATE, FAR *LPLINEMEDIACONTROLCALLSTATE;
  1920.  
  1921. typedef struct linemediacontroldigit_tag
  1922. {
  1923.     DWORD       dwDigit;
  1924.     DWORD       dwDigitModes;
  1925.     DWORD       dwMediaControl;
  1926.  
  1927. } LINEMEDIACONTROLDIGIT, FAR *LPLINEMEDIACONTROLDIGIT;
  1928.  
  1929. typedef struct linemediacontrolmedia_tag
  1930. {
  1931.     DWORD       dwMediaModes;
  1932.     DWORD       dwDuration;
  1933.     DWORD       dwMediaControl;
  1934.  
  1935. } LINEMEDIACONTROLMEDIA, FAR *LPLINEMEDIACONTROLMEDIA;
  1936.  
  1937. typedef struct linemediacontroltone_tag
  1938. {
  1939.     DWORD       dwAppSpecific;
  1940.     DWORD       dwDuration;
  1941.     DWORD       dwFrequency1;
  1942.     DWORD       dwFrequency2;
  1943.     DWORD       dwFrequency3;
  1944.     DWORD       dwMediaControl;
  1945.  
  1946. } LINEMEDIACONTROLTONE, FAR *LPLINEMEDIACONTROLTONE;
  1947.  
  1948. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1949. typedef struct linemessage_tag
  1950. {
  1951.     DWORD       hDevice;                                        // TAPI v2.0
  1952.     DWORD       dwMessageID;                                    // TAPI v2.0
  1953.     DWORD_PTR   dwCallbackInstance;                             // TAPI v2.0
  1954.     DWORD_PTR   dwParam1;                                       // TAPI v2.0
  1955.     DWORD_PTR   dwParam2;                                       // TAPI v2.0
  1956.     DWORD_PTR   dwParam3;                                       // TAPI v2.0
  1957.  
  1958. } LINEMESSAGE, FAR *LPLINEMESSAGE;
  1959. #endif
  1960.  
  1961. typedef struct linemonitortone_tag
  1962. {
  1963.     DWORD       dwAppSpecific;
  1964.     DWORD       dwDuration;
  1965.     DWORD       dwFrequency1;
  1966.     DWORD       dwFrequency2;
  1967.     DWORD       dwFrequency3;
  1968.  
  1969. } LINEMONITORTONE, FAR *LPLINEMONITORTONE;
  1970.  
  1971. typedef struct lineproviderentry_tag
  1972. {
  1973.     DWORD       dwPermanentProviderID;                          // TAPI v1.4
  1974.     DWORD       dwProviderFilenameSize;                         // TAPI v1.4
  1975.     DWORD       dwProviderFilenameOffset;                       // TAPI v1.4
  1976.  
  1977. } LINEPROVIDERENTRY, FAR *LPLINEPROVIDERENTRY;
  1978.  
  1979. typedef struct lineproviderlist_tag
  1980. {
  1981.     DWORD       dwTotalSize;                                    // TAPI v1.4
  1982.     DWORD       dwNeededSize;                                   // TAPI v1.4
  1983.     DWORD       dwUsedSize;                                     // TAPI v1.4
  1984.     DWORD       dwNumProviders;                                 // TAPI v1.4
  1985.     DWORD       dwProviderListSize;                             // TAPI v1.4
  1986.     DWORD       dwProviderListOffset;                           // TAPI v1.4
  1987.  
  1988. } LINEPROVIDERLIST, FAR *LPLINEPROVIDERLIST;
  1989.  
  1990. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1991. typedef struct lineproxyrequest_tag
  1992. {
  1993.     DWORD       dwSize;                                         // TAPI v2.0
  1994.     DWORD       dwClientMachineNameSize;                        // TAPI v2.0
  1995.     DWORD       dwClientMachineNameOffset;                      // TAPI v2.0
  1996.     DWORD       dwClientUserNameSize;                           // TAPI v2.0
  1997.     DWORD       dwClientUserNameOffset;                         // TAPI v2.0
  1998.     DWORD       dwClientAppAPIVersion;                          // TAPI v2.0
  1999.     DWORD       dwRequestType;                                  // TAPI v2.0
  2000.  
  2001.     union
  2002.     {
  2003.     struct
  2004.     {
  2005.         DWORD                   dwAddressID;                    // TAPI v2.0
  2006.         LINEAGENTGROUPLIST      GroupList;                      // TAPI v2.0
  2007.  
  2008.     } SetAgentGroup;
  2009.  
  2010.     struct
  2011.     {
  2012.         DWORD                   dwAddressID;                    // TAPI v2.0
  2013.         DWORD                   dwAgentState;                   // TAPI v2.0
  2014.         DWORD                   dwNextAgentState;               // TAPI v2.0
  2015.  
  2016.     } SetAgentState;
  2017.  
  2018.     struct
  2019.     {
  2020.         DWORD                   dwAddressID;                    // TAPI v2.0
  2021.         DWORD                   dwActivityID;                   // TAPI v2.0
  2022.  
  2023.     } SetAgentActivity;
  2024.  
  2025.     struct
  2026.     {
  2027.         DWORD                   dwAddressID;                    // TAPI v2.0
  2028.         LINEAGENTCAPS           AgentCaps;                      // TAPI v2.0
  2029.  
  2030.     } GetAgentCaps;
  2031.  
  2032.     struct
  2033.     {
  2034.         DWORD                   dwAddressID;                    // TAPI v2.0
  2035.         LINEAGENTSTATUS         AgentStatus;                    // TAPI v2.0
  2036.  
  2037.     } GetAgentStatus;
  2038.  
  2039.     struct
  2040.     {
  2041.         DWORD                   dwAddressID;                    // TAPI v2.0
  2042.         DWORD                   dwAgentExtensionIDIndex;        // TAPI v2.0
  2043.         DWORD                   dwSize;                         // TAPI v2.0
  2044.         BYTE                    Params[1];                      // TAPI v2.0
  2045.  
  2046.     } AgentSpecific;
  2047.  
  2048.     struct
  2049.     {
  2050.         DWORD                   dwAddressID;                    // TAPI v2.0
  2051.         LINEAGENTACTIVITYLIST   ActivityList;                   // TAPI v2.0
  2052.  
  2053.     } GetAgentActivityList;
  2054.  
  2055.     struct
  2056.     {
  2057.         DWORD                   dwAddressID;                    // TAPI v2.0
  2058.         LINEAGENTGROUPLIST      GroupList;                      // TAPI v2.0
  2059.  
  2060.     } GetAgentGroupList;
  2061.  
  2062. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  2063.  
  2064.     struct
  2065.     {
  2066.         HAGENT                  hAgent;                         // TAPI v2.2
  2067.         DWORD                   dwAgentIDSize;                  // TAPI v2.2
  2068.         DWORD                   dwAgentIDOffset;                // TAPI v2.2
  2069.         DWORD                   dwAgentPINSize;                 // TAPI v2.2
  2070.         DWORD                   dwAgentPINOffset;
  2071.  
  2072.     } CreateAgent;
  2073.  
  2074.     struct
  2075.     {
  2076.         HAGENT                  hAgent;                         // TAPI v2.2
  2077.         DWORD                   dwAgentState;                   // TAPI v2.2
  2078.         DWORD                   dwNextAgentState;               // TAPI v2.2
  2079.  
  2080.     } SetAgentStateEx;
  2081.  
  2082.     struct
  2083.     {
  2084.         HAGENT                  hAgent;                         // TAPI v2.2
  2085.         DWORD                   dwMeasurementPeriod;            // TAPI v2.2
  2086.  
  2087.     } SetAgentMeasurementPeriod;
  2088.  
  2089.     struct
  2090.     {
  2091.         HAGENT                  hAgent;                         // TAPI v2.2
  2092.         LINEAGENTINFO           AgentInfo;                      // TAPI v2.2
  2093.  
  2094.     } GetAgentInfo;
  2095.  
  2096.     struct
  2097.     {
  2098.         HAGENTSESSION           hAgentSession;                  // TAPI v2.2
  2099.         DWORD                   dwAgentPINSize;
  2100.         DWORD                   dwAgentPINOffset;
  2101.         HAGENT                  hAgent;                         // TAPI v2.2
  2102.         GUID                    GroupID;                        // TAPI v2.2
  2103.         DWORD                   dwWorkingAddressID;             // TAPI v2.2
  2104.  
  2105.     } CreateAgentSession;
  2106.  
  2107.     struct
  2108.     {
  2109.         HAGENT                  hAgent;                         // TAPI v2.2
  2110.         LINEAGENTSESSIONLIST    SessionList;                    // TAPI v2.2
  2111.  
  2112.     } GetAgentSessionList;
  2113.  
  2114.     struct
  2115.     {
  2116.         HAGENTSESSION           hAgentSession;                  // TAPI v2.2
  2117.         LINEAGENTSESSIONINFO    SessionInfo;                    // TAPI v2.2
  2118.  
  2119.     } GetAgentSessionInfo;
  2120.  
  2121.     struct
  2122.     {
  2123.         HAGENTSESSION           hAgentSession;                  // TAPI v2.2
  2124.         DWORD                   dwAgentSessionState;            // TAPI v2.2
  2125.         DWORD                   dwNextAgentSessionState;        // TAPI v2.2
  2126.  
  2127.     } SetAgentSessionState;
  2128.  
  2129.     struct
  2130.     {
  2131.         GUID                    GroupID;                        // TAPI v2.2
  2132.         LINEQUEUELIST           QueueList;                      // TAPI v2.2
  2133.  
  2134.     } GetQueueList;
  2135.  
  2136.     struct
  2137.     {
  2138.         DWORD                   dwQueueID;                      // TAPI v2.2
  2139.         DWORD                   dwMeasurementPeriod;            // TAPI v2.2
  2140.  
  2141.     } SetQueueMeasurementPeriod;
  2142.  
  2143.  
  2144.     struct
  2145.     {
  2146.         DWORD                   dwQueueID;                      // TAPI v2.2
  2147.         LINEQUEUEINFO           QueueInfo;                      // TAPI v2.2
  2148.  
  2149.     } GetQueueInfo;
  2150.  
  2151.     struct
  2152.     {
  2153.         LINEAGENTGROUPLIST      GroupList;                      // TAPI v2.2
  2154.  
  2155.     } GetGroupList;
  2156.  
  2157. #endif
  2158.  
  2159.     }; //ProxyRequestType;
  2160.  
  2161.  
  2162. } LINEPROXYREQUEST, *LPLINEPROXYREQUEST;
  2163. #endif
  2164.  
  2165. typedef struct linereqmakecall_tag
  2166. {
  2167.     char        szDestAddress[TAPIMAXDESTADDRESSSIZE];
  2168.     char        szAppName[TAPIMAXAPPNAMESIZE];
  2169.     char        szCalledParty[TAPIMAXCALLEDPARTYSIZE];
  2170.     char        szComment[TAPIMAXCOMMENTSIZE];
  2171.  
  2172. } LINEREQMAKECALL, FAR *LPLINEREQMAKECALL;
  2173.  
  2174. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2175. typedef struct linereqmakecallW_tag
  2176. {
  2177.     WCHAR       szDestAddress[TAPIMAXDESTADDRESSSIZE];
  2178.     WCHAR       szAppName[TAPIMAXAPPNAMESIZE];
  2179.     WCHAR       szCalledParty[TAPIMAXCALLEDPARTYSIZE];
  2180.     WCHAR       szComment[TAPIMAXCOMMENTSIZE];
  2181.  
  2182. } LINEREQMAKECALLW, FAR *LPLINEREQMAKECALLW;
  2183. #endif
  2184.  
  2185. #ifdef UNICODE
  2186. #define LINEREQMAKECALL LINEREQMAKECALLW
  2187. #endif
  2188.  
  2189. typedef struct linereqmediacall_tag
  2190. {
  2191.     HWND        hWnd;
  2192.     WPARAM      wRequestID;
  2193.     char        szDeviceClass[TAPIMAXDEVICECLASSSIZE];
  2194.     unsigned char   ucDeviceID[TAPIMAXDEVICEIDSIZE];
  2195.     DWORD       dwSize;
  2196.     DWORD       dwSecure;
  2197.     char        szDestAddress[TAPIMAXDESTADDRESSSIZE];
  2198.     char        szAppName[TAPIMAXAPPNAMESIZE];
  2199.     char        szCalledParty[TAPIMAXCALLEDPARTYSIZE];
  2200.     char        szComment[TAPIMAXCOMMENTSIZE];
  2201.  
  2202. } LINEREQMEDIACALL, FAR *LPLINEREQMEDIACALL;
  2203.  
  2204. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2205. typedef struct linereqmediacallW_tag
  2206. {
  2207.     HWND        hWnd;
  2208.     WPARAM      wRequestID;
  2209.     WCHAR       szDeviceClass[TAPIMAXDEVICECLASSSIZE];
  2210.     unsigned char   ucDeviceID[TAPIMAXDEVICEIDSIZE];
  2211.     DWORD       dwSize;
  2212.     DWORD       dwSecure;
  2213.     WCHAR       szDestAddress[TAPIMAXDESTADDRESSSIZE];
  2214.     WCHAR       szAppName[TAPIMAXAPPNAMESIZE];
  2215.     WCHAR       szCalledParty[TAPIMAXCALLEDPARTYSIZE];
  2216.     WCHAR       szComment[TAPIMAXCOMMENTSIZE];
  2217.  
  2218. } LINEREQMEDIACALLW, FAR *LPLINEREQMEDIACALLW;
  2219. #endif
  2220.  
  2221. #ifdef UNICODE
  2222. #define LINEREQMEDIACALL LINEREQMEDIACALLW
  2223. #endif
  2224.  
  2225. typedef struct linetermcaps_tag
  2226. {
  2227.     DWORD       dwTermDev;
  2228.     DWORD       dwTermModes;
  2229.     DWORD       dwTermSharing;
  2230.  
  2231. } LINETERMCAPS, FAR *LPLINETERMCAPS;
  2232.  
  2233. typedef struct linetranslatecaps_tag
  2234. {
  2235.     DWORD       dwTotalSize;
  2236.     DWORD       dwNeededSize;
  2237.     DWORD       dwUsedSize;
  2238.     DWORD       dwNumLocations;
  2239.     DWORD       dwLocationListSize;
  2240.     DWORD       dwLocationListOffset;
  2241.     DWORD       dwCurrentLocationID;
  2242.     DWORD       dwNumCards;
  2243.     DWORD       dwCardListSize;
  2244.     DWORD       dwCardListOffset;
  2245.     DWORD       dwCurrentPreferredCardID;
  2246.  
  2247. } LINETRANSLATECAPS, FAR *LPLINETRANSLATECAPS;
  2248.  
  2249. typedef struct linetranslateoutput_tag
  2250. {
  2251.     DWORD       dwTotalSize;
  2252.     DWORD       dwNeededSize;
  2253.     DWORD       dwUsedSize;
  2254.     DWORD       dwDialableStringSize;
  2255.     DWORD       dwDialableStringOffset;
  2256.     DWORD       dwDisplayableStringSize;
  2257.     DWORD       dwDisplayableStringOffset;
  2258.     DWORD       dwCurrentCountry;
  2259.     DWORD       dwDestCountry;
  2260.     DWORD       dwTranslateResults;
  2261.  
  2262. } LINETRANSLATEOUTPUT, FAR *LPLINETRANSLATEOUTPUT;
  2263.  
  2264. typedef struct phonebuttoninfo_tag
  2265. {
  2266.     DWORD       dwTotalSize;
  2267.     DWORD       dwNeededSize;
  2268.     DWORD       dwUsedSize;
  2269.     DWORD       dwButtonMode;
  2270.     DWORD       dwButtonFunction;
  2271.     DWORD       dwButtonTextSize;
  2272.     DWORD       dwButtonTextOffset;
  2273.     DWORD       dwDevSpecificSize;
  2274.     DWORD       dwDevSpecificOffset;
  2275.  
  2276.     DWORD       dwButtonState;                                  // TAPI v1.4
  2277.  
  2278. } PHONEBUTTONINFO, FAR *LPPHONEBUTTONINFO;
  2279.  
  2280. typedef struct phonecaps_tag
  2281. {
  2282.     DWORD       dwTotalSize;
  2283.     DWORD       dwNeededSize;
  2284.     DWORD       dwUsedSize;
  2285.     DWORD       dwProviderInfoSize;
  2286.     DWORD       dwProviderInfoOffset;
  2287.     DWORD       dwPhoneInfoSize;
  2288.     DWORD       dwPhoneInfoOffset;
  2289.     DWORD       dwPermanentPhoneID;
  2290.     DWORD       dwPhoneNameSize;
  2291.     DWORD       dwPhoneNameOffset;
  2292.     DWORD       dwStringFormat;
  2293.     DWORD       dwPhoneStates;
  2294.     DWORD       dwHookSwitchDevs;
  2295.     DWORD       dwHandsetHookSwitchModes;
  2296.     DWORD       dwSpeakerHookSwitchModes;
  2297.     DWORD       dwHeadsetHookSwitchModes;
  2298.     DWORD       dwVolumeFlags;
  2299.     DWORD       dwGainFlags;
  2300.     DWORD       dwDisplayNumRows;
  2301.     DWORD       dwDisplayNumColumns;
  2302.     DWORD       dwNumRingModes;
  2303.     DWORD       dwNumButtonLamps;
  2304.     DWORD       dwButtonModesSize;
  2305.     DWORD       dwButtonModesOffset;
  2306.     DWORD       dwButtonFunctionsSize;
  2307.     DWORD       dwButtonFunctionsOffset;
  2308.     DWORD       dwLampModesSize;
  2309.     DWORD       dwLampModesOffset;
  2310.     DWORD       dwNumSetData;
  2311.     DWORD       dwSetDataSize;
  2312.     DWORD       dwSetDataOffset;
  2313.     DWORD       dwNumGetData;
  2314.     DWORD       dwGetDataSize;
  2315.     DWORD       dwGetDataOffset;
  2316.     DWORD       dwDevSpecificSize;
  2317.     DWORD       dwDevSpecificOffset;
  2318.  
  2319. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2320.     DWORD       dwDeviceClassesSize;                            // TAPI v2.0
  2321.     DWORD       dwDeviceClassesOffset;                          // TAPI v2.0
  2322.     DWORD       dwPhoneFeatures;                                // TAPI v2.0
  2323.     DWORD       dwSettableHandsetHookSwitchModes;               // TAPI v2.0
  2324.     DWORD       dwSettableSpeakerHookSwitchModes;               // TAPI v2.0
  2325.     DWORD       dwSettableHeadsetHookSwitchModes;               // TAPI v2.0
  2326.     DWORD       dwMonitoredHandsetHookSwitchModes;              // TAPI v2.0
  2327.     DWORD       dwMonitoredSpeakerHookSwitchModes;              // TAPI v2.0
  2328.     DWORD       dwMonitoredHeadsetHookSwitchModes;              // TAPI v2.0
  2329. #endif
  2330.  
  2331. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  2332.     GUID        PermanentPhoneGuid;                             // TAPI v2.2
  2333. #endif
  2334.  
  2335. } PHONECAPS, FAR *LPPHONECAPS;
  2336.  
  2337. typedef struct phoneextensionid_tag
  2338. {
  2339.     DWORD       dwExtensionID0;
  2340.     DWORD       dwExtensionID1;
  2341.     DWORD       dwExtensionID2;
  2342.     DWORD       dwExtensionID3;
  2343.  
  2344. } PHONEEXTENSIONID, FAR *LPPHONEEXTENSIONID;
  2345.  
  2346. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2347. typedef struct phoneinitializeexparams_tag
  2348. {
  2349.     DWORD       dwTotalSize;                                    // TAPI v2.0
  2350.     DWORD       dwNeededSize;                                   // TAPI v2.0
  2351.     DWORD       dwUsedSize;                                     // TAPI v2.0
  2352.     DWORD       dwOptions;                                      // TAPI v2.0
  2353.  
  2354.     union
  2355.     {
  2356.         HANDLE  hEvent;                                         // TAPI v2.0
  2357.         HANDLE  hCompletionPort;                                // TAPI v2.0
  2358.  
  2359.     } Handles;
  2360.  
  2361.     DWORD       dwCompletionKey;                                // TAPI v2.0
  2362.  
  2363. } PHONEINITIALIZEEXPARAMS, FAR *LPPHONEINITIALIZEEXPARAMS;
  2364.  
  2365. typedef struct phonemessage_tag
  2366. {
  2367.     DWORD       hDevice;                                        // TAPI v2.0
  2368.     DWORD       dwMessageID;                                    // TAPI v2.0
  2369.     DWORD_PTR   dwCallbackInstance;                             // TAPI v2.0
  2370.     DWORD_PTR   dwParam1;                                       // TAPI v2.0
  2371.     DWORD_PTR   dwParam2;                                       // TAPI v2.0
  2372.     DWORD_PTR   dwParam3;                                       // TAPI v2.0
  2373.  
  2374. } PHONEMESSAGE, FAR *LPPHONEMESSAGE;
  2375. #endif
  2376.  
  2377. typedef struct phonestatus_tag
  2378. {
  2379.     DWORD       dwTotalSize;
  2380.     DWORD       dwNeededSize;
  2381.     DWORD       dwUsedSize;
  2382.     DWORD       dwStatusFlags;
  2383.     DWORD       dwNumOwners;
  2384.     DWORD       dwNumMonitors;
  2385.     DWORD       dwRingMode;
  2386.     DWORD       dwRingVolume;
  2387.     DWORD       dwHandsetHookSwitchMode;
  2388.     DWORD       dwHandsetVolume;
  2389.     DWORD       dwHandsetGain;
  2390.     DWORD       dwSpeakerHookSwitchMode;
  2391.     DWORD       dwSpeakerVolume;
  2392.     DWORD       dwSpeakerGain;
  2393.     DWORD       dwHeadsetHookSwitchMode;
  2394.     DWORD       dwHeadsetVolume;
  2395.     DWORD       dwHeadsetGain;
  2396.     DWORD       dwDisplaySize;
  2397.     DWORD       dwDisplayOffset;
  2398.     DWORD       dwLampModesSize;
  2399.     DWORD       dwLampModesOffset;
  2400.     DWORD       dwOwnerNameSize;
  2401.     DWORD       dwOwnerNameOffset;
  2402.     DWORD       dwDevSpecificSize;
  2403.     DWORD       dwDevSpecificOffset;
  2404.  
  2405. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2406.     DWORD       dwPhoneFeatures;                                // TAPI v2.0
  2407. #endif
  2408.  
  2409. } PHONESTATUS, FAR *LPPHONESTATUS;
  2410.  
  2411. typedef struct varstring_tag
  2412. {
  2413.     DWORD       dwTotalSize;
  2414.     DWORD       dwNeededSize;
  2415.     DWORD       dwUsedSize;
  2416.     DWORD       dwStringFormat;
  2417.     DWORD       dwStringSize;
  2418.     DWORD       dwStringOffset;
  2419.  
  2420. } VARSTRING, FAR *LPVARSTRING;
  2421.  
  2422.  
  2423.  
  2424. LONG
  2425. WINAPI
  2426. lineAccept(
  2427.     HCALL               hCall,
  2428.     LPCSTR              lpsUserUserInfo,
  2429.     DWORD               dwSize
  2430.     );
  2431.  
  2432. LONG
  2433. WINAPI
  2434. lineAddProvider(                                                // TAPI v1.4
  2435.     LPCSTR              lpszProviderFilename,
  2436.     HWND                hwndOwner,
  2437.     LPDWORD             lpdwPermanentProviderID
  2438.     );
  2439.  
  2440. #if WIN32
  2441. LONG
  2442. WINAPI
  2443. lineAddProviderA(                                               // TAPI v1.4
  2444.     LPCSTR              lpszProviderFilename,
  2445.     HWND                hwndOwner,
  2446.     LPDWORD             lpdwPermanentProviderID
  2447.     );
  2448.  
  2449. LONG
  2450. WINAPI
  2451. lineAddProviderW(
  2452.     LPCWSTR             lpszProviderFilename,
  2453.     HWND                hwndOwner,
  2454.     LPDWORD             lpdwPermanentProviderID
  2455.     );
  2456.  
  2457. #ifdef UNICODE
  2458. #define lineAddProvider lineAddProviderW
  2459. #else
  2460. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2461. #define lineAddProvider lineAddProviderA
  2462. #endif
  2463. #endif
  2464.  
  2465. #endif
  2466.  
  2467.  
  2468. LONG
  2469. WINAPI
  2470. lineAddToConference(
  2471.     HCALL               hConfCall,
  2472.     HCALL               hConsultCall
  2473.     );
  2474.  
  2475. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2476. LONG
  2477. WINAPI
  2478. lineAgentSpecific(                                              // TAPI v2.0
  2479.     HLINE               hLine,
  2480.     DWORD               dwAddressID,
  2481.     DWORD               dwAgentExtensionIDIndex,
  2482.     LPVOID              lpParams,
  2483.     DWORD               dwSize
  2484.     );
  2485. #endif
  2486.  
  2487. LONG
  2488. WINAPI
  2489. lineAnswer(
  2490.     HCALL               hCall,
  2491.     LPCSTR              lpsUserUserInfo,
  2492.     DWORD               dwSize
  2493.     );
  2494.  
  2495. LONG
  2496. WINAPI
  2497. lineBlindTransfer(
  2498.     HCALL               hCall,
  2499.     LPCSTR              lpszDestAddress,
  2500.     DWORD               dwCountryCode
  2501.     );
  2502.  
  2503. #if WIN32
  2504. LONG
  2505. WINAPI
  2506. lineBlindTransferA(
  2507.     HCALL               hCall,
  2508.     LPCSTR              lpszDestAddress,
  2509.     DWORD               dwCountryCode
  2510.     );
  2511.  
  2512. LONG
  2513. WINAPI
  2514. lineBlindTransferW(
  2515.     HCALL               hCall,
  2516.     LPCWSTR             lpszDestAddressW,
  2517.     DWORD               dwCountryCode
  2518.     );
  2519.  
  2520. #ifdef UNICODE
  2521. #define lineBlindTransfer lineBlindTransferW
  2522. #else
  2523. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2524. #define lineBlindTransfer lineBlindTransferA
  2525. #endif
  2526. #endif
  2527. #endif
  2528.  
  2529. LONG
  2530. WINAPI
  2531. lineClose(
  2532.     HLINE               hLine
  2533.     );
  2534.  
  2535. LONG
  2536. WINAPI
  2537. lineCompleteCall(
  2538.     HCALL               hCall,
  2539.     LPDWORD             lpdwCompletionID,
  2540.     DWORD               dwCompletionMode,
  2541.     DWORD               dwMessageID
  2542.     );
  2543.  
  2544. LONG
  2545. WINAPI
  2546. lineCompleteTransfer(
  2547.     HCALL               hCall,
  2548.     HCALL               hConsultCall,
  2549.     LPHCALL             lphConfCall,
  2550.     DWORD               dwTransferMode
  2551.     );
  2552.  
  2553. LONG
  2554. WINAPI
  2555. lineConfigDialog(
  2556.     DWORD               dwDeviceID,
  2557.     HWND                hwndOwner,
  2558.     LPCSTR              lpszDeviceClass
  2559.     );
  2560.  
  2561. #if WIN32
  2562. LONG
  2563. WINAPI
  2564. lineConfigDialogA(
  2565.     DWORD               dwDeviceID,
  2566.     HWND                hwndOwner,
  2567.     LPCSTR              lpszDeviceClass
  2568.     );
  2569.  
  2570. LONG
  2571. WINAPI
  2572. lineConfigDialogW(
  2573.     DWORD               dwDeviceID,
  2574.     HWND                hwndOwner,
  2575.     LPCWSTR             lpszDeviceClass
  2576.     );
  2577.  
  2578. #ifdef UNICODE
  2579. #define lineConfigDialog lineConfigDialogW
  2580. #else
  2581. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2582. #define lineConfigDialog lineConfigDialogA
  2583. #endif
  2584. #endif
  2585. #endif
  2586.  
  2587. LONG
  2588. WINAPI
  2589. lineConfigDialogEdit(                                           // TAPI v1.4
  2590.     DWORD               dwDeviceID,
  2591.     HWND                hwndOwner,
  2592.     LPCSTR              lpszDeviceClass,
  2593.     LPVOID              const lpDeviceConfigIn,
  2594.     DWORD               dwSize,
  2595.     LPVARSTRING         lpDeviceConfigOut
  2596.     );
  2597.  
  2598. #if WIN32
  2599. LONG
  2600. WINAPI
  2601. lineConfigDialogEditA(                                          // TAPI v1.4
  2602.     DWORD               dwDeviceID,
  2603.     HWND                hwndOwner,
  2604.     LPCSTR              lpszDeviceClass,
  2605.     LPVOID              const lpDeviceConfigIn,
  2606.     DWORD               dwSize,
  2607.     LPVARSTRING         lpDeviceConfigOut
  2608.     );
  2609.  
  2610. LONG
  2611. WINAPI
  2612. lineConfigDialogEditW(
  2613.     DWORD               dwDeviceID,
  2614.     HWND                hwndOwner,
  2615.     LPCWSTR             lpszDeviceClass,
  2616.     LPVOID              const lpDeviceConfigIn,
  2617.     DWORD               dwSize,
  2618.     LPVARSTRING         lpDeviceConfigOut
  2619.     );
  2620.  
  2621. #ifdef UNICODE
  2622. #define lineConfigDialogEdit lineConfigDialogEditW
  2623. #else
  2624. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2625. #define lineConfigDialogEdit lineConfigDialogEditA
  2626. #endif
  2627. #endif
  2628. #endif
  2629.  
  2630. LONG
  2631. WINAPI
  2632. lineConfigProvider(                                             // TAPI v1.4
  2633.     HWND                hwndOwner,
  2634.     DWORD               dwPermanentProviderID
  2635.     );
  2636.  
  2637. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  2638. LONG
  2639. WINAPI
  2640. lineCreateAgentW(                                               // TAPI v2.2
  2641.     HLINE               hLine,
  2642.     LPWSTR              lpszAgentID,
  2643.     LPWSTR              lpszAgentPIN,
  2644.     LPHAGENT            lphAgent
  2645.     );
  2646.  
  2647. LONG
  2648. WINAPI
  2649. lineCreateAgentA(                                               // TAPI v2.2
  2650.     HLINE               hLine,
  2651.     LPSTR               lpszAgentID,
  2652.     LPSTR               lpszAgentPIN,
  2653.     LPHAGENT            lphAgent
  2654.     );
  2655.  
  2656. #ifdef UNICODE
  2657. #define lineCreateAgent lineCreateAgentW
  2658. #else
  2659. #define lineCreateAgent lineCreateAgentA
  2660. #endif
  2661.  
  2662. LONG
  2663. WINAPI
  2664. lineCreateAgentSessionW(                                        // TAPI v2.2
  2665.     HLINE               hLine,
  2666.     HAGENT              hAgent,
  2667.     LPWSTR              lpszAgentPIN,
  2668.     DWORD               dwWorkingAddressID,
  2669.     LPGUID              lpGroupID,
  2670.     LPHAGENTSESSION     lphAgentSession
  2671.     );
  2672.  
  2673. LONG
  2674. WINAPI
  2675. lineCreateAgentSessionA(                                        // TAPI v2.2
  2676.     HLINE               hLine,
  2677.     HAGENT              hAgent,
  2678.     LPSTR               lpszAgentPIN,
  2679.     DWORD               dwWorkingAddressID,
  2680.     LPGUID              lpGroupID,
  2681.     LPHAGENTSESSION     lphAgentSession
  2682.     );
  2683.  
  2684. #ifdef UNICODE
  2685. #define lineCreateAgent lineCreateAgentW
  2686. #else
  2687. #define lineCreateAgent lineCreateAgentA
  2688. #endif
  2689. #endif
  2690.  
  2691. LONG
  2692. WINAPI
  2693. lineDeallocateCall(
  2694.     HCALL               hCall
  2695.     );
  2696.  
  2697. LONG
  2698. WINAPI
  2699. lineDevSpecific(
  2700.     HLINE               hLine,
  2701.     DWORD               dwAddressID,
  2702.     HCALL               hCall,
  2703.     LPVOID              lpParams,
  2704.     DWORD               dwSize
  2705.     );
  2706.  
  2707. LONG
  2708. WINAPI
  2709. lineDevSpecificFeature(
  2710.     HLINE               hLine,
  2711.     DWORD               dwFeature,
  2712.     LPVOID              lpParams,
  2713.     DWORD               dwSize
  2714.     );
  2715.  
  2716. LONG
  2717. WINAPI
  2718. lineDial(
  2719.     HCALL               hCall,
  2720.     LPCSTR              lpszDestAddress,
  2721.     DWORD               dwCountryCode
  2722.     );
  2723.  
  2724. #if WIN32
  2725. LONG
  2726. WINAPI
  2727. lineDialA(
  2728.     HCALL               hCall,
  2729.     LPCSTR              lpszDestAddress,
  2730.     DWORD               dwCountryCode
  2731.     );
  2732.  
  2733. LONG
  2734. WINAPI
  2735. lineDialW(
  2736.     HCALL               hCall,
  2737.     LPCWSTR             lpszDestAddress,
  2738.     DWORD               dwCountryCode
  2739.     );
  2740.  
  2741. #ifdef UNICODE
  2742. #define lineDial lineDialW
  2743. #else
  2744. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2745. #define lineDial lineDialA
  2746. #endif
  2747. #endif
  2748. #endif
  2749.  
  2750. LONG
  2751. WINAPI
  2752. lineDrop(
  2753.     HCALL               hCall,
  2754.     LPCSTR              lpsUserUserInfo,
  2755.     DWORD               dwSize
  2756.     );
  2757.  
  2758. LONG
  2759. WINAPI
  2760. lineForward(
  2761.     HLINE               hLine,
  2762.     DWORD               bAllAddresses,
  2763.     DWORD               dwAddressID,
  2764.     LPLINEFORWARDLIST   const lpForwardList,
  2765.     DWORD               dwNumRingsNoAnswer,
  2766.     LPHCALL             lphConsultCall,
  2767.     LPLINECALLPARAMS    const lpCallParams
  2768.     );
  2769.  
  2770. #if WIN32
  2771. LONG
  2772. WINAPI
  2773. lineForwardA(
  2774.     HLINE               hLine,
  2775.     DWORD               bAllAddresses,
  2776.     DWORD               dwAddressID,
  2777.     LPLINEFORWARDLIST   const lpForwardList,
  2778.     DWORD               dwNumRingsNoAnswer,
  2779.     LPHCALL             lphConsultCall,
  2780.     LPLINECALLPARAMS    const lpCallParams
  2781.     );
  2782.  
  2783. LONG
  2784. WINAPI
  2785. lineForwardW(
  2786.     HLINE               hLine,
  2787.     DWORD               bAllAddresses,
  2788.     DWORD               dwAddressID,
  2789.     LPLINEFORWARDLIST   const lpForwardList,
  2790.     DWORD               dwNumRingsNoAnswer,
  2791.     LPHCALL             lphConsultCall,
  2792.     LPLINECALLPARAMS    const lpCallParams
  2793.     );
  2794.  
  2795. #ifdef UNICODE
  2796. #define lineForward lineForwardW
  2797. #else
  2798. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2799. #define lineForward lineForwardA
  2800. #endif
  2801. #endif
  2802. #endif
  2803.  
  2804. LONG
  2805. WINAPI
  2806. lineGatherDigits(
  2807.     HCALL               hCall,
  2808.     DWORD               dwDigitModes,
  2809.     LPSTR               lpsDigits,
  2810.     DWORD               dwNumDigits,
  2811.     LPCSTR              lpszTerminationDigits,
  2812.     DWORD               dwFirstDigitTimeout,
  2813.     DWORD               dwInterDigitTimeout
  2814.     );
  2815.  
  2816. #if WIN32
  2817. LONG
  2818. WINAPI
  2819. lineGatherDigitsA(
  2820.     HCALL               hCall,
  2821.     DWORD               dwDigitModes,
  2822.     LPSTR               lpsDigits,
  2823.     DWORD               dwNumDigits,
  2824.     LPCSTR              lpszTerminationDigits,
  2825.     DWORD               dwFirstDigitTimeout,
  2826.     DWORD               dwInterDigitTimeout
  2827.     );
  2828.  
  2829. LONG
  2830. WINAPI
  2831. lineGatherDigitsW(
  2832.     HCALL               hCall,
  2833.     DWORD               dwDigitModes,
  2834.     LPWSTR              lpsDigits,
  2835.     DWORD               dwNumDigits,
  2836.     LPCWSTR             lpszTerminationDigits,
  2837.     DWORD               dwFirstDigitTimeout,
  2838.     DWORD               dwInterDigitTimeout
  2839.     );
  2840.  
  2841. #ifdef UNICODE
  2842. #define lineGatherDigits lineGatherDigitsW
  2843. #else
  2844. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2845. #define lineGatherDigits lineGatherDigitsA
  2846. #endif
  2847. #endif
  2848. #endif
  2849.  
  2850. LONG
  2851. WINAPI
  2852. lineGenerateDigits(
  2853.     HCALL               hCall,
  2854.     DWORD               dwDigitMode,
  2855.     LPCSTR              lpszDigits,
  2856.     DWORD               dwDuration
  2857.     );
  2858.  
  2859. #if WIN32
  2860. LONG
  2861. WINAPI
  2862. lineGenerateDigitsA(
  2863.     HCALL               hCall,
  2864.     DWORD               dwDigitMode,
  2865.     LPCSTR              lpszDigits,
  2866.     DWORD               dwDuration
  2867.     );
  2868.  
  2869. LONG
  2870. WINAPI
  2871. lineGenerateDigitsW(
  2872.     HCALL               hCall,
  2873.     DWORD               dwDigitMode,
  2874.     LPCWSTR             lpszDigits,
  2875.     DWORD               dwDuration
  2876.     );
  2877.  
  2878. #ifdef UNICODE
  2879. #define lineGenerateDigits lineGenerateDigitsW
  2880. #else
  2881. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2882. #define lineGenerateDigits lineGenerateDigitsA
  2883. #endif
  2884. #endif
  2885. #endif
  2886.  
  2887. LONG
  2888. WINAPI
  2889. lineGenerateTone(
  2890.     HCALL               hCall,
  2891.     DWORD               dwToneMode,
  2892.     DWORD               dwDuration,
  2893.     DWORD               dwNumTones,
  2894.     LPLINEGENERATETONE  const lpTones
  2895.     );
  2896.  
  2897. LONG
  2898. WINAPI
  2899. lineGetAddressCaps(
  2900.     HLINEAPP            hLineApp,
  2901.     DWORD               dwDeviceID,
  2902.     DWORD               dwAddressID,
  2903.     DWORD               dwAPIVersion,
  2904.     DWORD               dwExtVersion,
  2905.     LPLINEADDRESSCAPS   lpAddressCaps
  2906.     );
  2907.  
  2908. #if WIN32
  2909. LONG
  2910. WINAPI
  2911. lineGetAddressCapsA(
  2912.     HLINEAPP            hLineApp,
  2913.     DWORD               dwDeviceID,
  2914.     DWORD               dwAddressID,
  2915.     DWORD               dwAPIVersion,
  2916.     DWORD               dwExtVersion,
  2917.     LPLINEADDRESSCAPS   lpAddressCaps
  2918.     );
  2919.  
  2920. LONG
  2921. WINAPI
  2922. lineGetAddressCapsW(
  2923.     HLINEAPP            hLineApp,
  2924.     DWORD               dwDeviceID,
  2925.     DWORD               dwAddressID,
  2926.     DWORD               dwAPIVersion,
  2927.     DWORD               dwExtVersion,
  2928.     LPLINEADDRESSCAPS   lpAddressCaps
  2929.     );
  2930.  
  2931. #ifdef UNICODE
  2932. #define lineGetAddressCaps lineGetAddressCapsW
  2933. #else
  2934. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2935. #define lineGetAddressCaps lineGetAddressCapsA
  2936. #endif
  2937. #endif
  2938. #endif
  2939.  
  2940. LONG
  2941. WINAPI
  2942. lineGetAddressID(
  2943.     HLINE               hLine,
  2944.     LPDWORD             lpdwAddressID,
  2945.     DWORD               dwAddressMode,
  2946.     LPCSTR              lpsAddress,
  2947.     DWORD               dwSize
  2948.     );
  2949.  
  2950. #if WIN32
  2951. LONG
  2952. WINAPI
  2953. lineGetAddressIDA(
  2954.     HLINE               hLine,
  2955.     LPDWORD             lpdwAddressID,
  2956.     DWORD               dwAddressMode,
  2957.     LPCSTR              lpsAddress,
  2958.     DWORD               dwSize
  2959.     );
  2960.  
  2961. LONG
  2962. WINAPI
  2963. lineGetAddressIDW(
  2964.     HLINE               hLine,
  2965.     LPDWORD             lpdwAddressID,
  2966.     DWORD               dwAddressMode,
  2967.     LPCWSTR             lpsAddress,
  2968.     DWORD               dwSize
  2969.     );
  2970.  
  2971. #ifdef UNICODE
  2972. #define lineGetAddressID lineGetAddressIDW
  2973. #else
  2974. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2975. #define lineGetAddressID lineGetAddressIDA
  2976. #endif
  2977. #endif
  2978. #endif
  2979.  
  2980. LONG
  2981. WINAPI
  2982. lineGetAddressStatus(
  2983.     HLINE               hLine,
  2984.     DWORD               dwAddressID,
  2985.     LPLINEADDRESSSTATUS lpAddressStatus
  2986.     );
  2987.  
  2988. #if WIN32
  2989. LONG
  2990. WINAPI
  2991. lineGetAddressStatusA(
  2992.     HLINE               hLine,
  2993.     DWORD               dwAddressID,
  2994.     LPLINEADDRESSSTATUS lpAddressStatus
  2995.     );
  2996.  
  2997. LONG
  2998. WINAPI
  2999. lineGetAddressStatusW(
  3000.     HLINE               hLine,
  3001.     DWORD               dwAddressID,
  3002.     LPLINEADDRESSSTATUS lpAddressStatus
  3003.     );
  3004.  
  3005. #ifdef UNICODE
  3006. #define lineGetAddressStatus lineGetAddressStatusW
  3007. #else
  3008. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3009. #define lineGetAddressStatus lineGetAddressStatusA
  3010. #endif
  3011. #endif
  3012. #endif
  3013.  
  3014. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3015. LONG
  3016. WINAPI
  3017. lineGetAgentActivityListA(                                      // TAPI v2.0
  3018.     HLINE                   hLine,
  3019.     DWORD                   dwAddressID,
  3020.     LPLINEAGENTACTIVITYLIST lpAgentActivityList
  3021.     );
  3022.  
  3023. LONG
  3024. WINAPI
  3025. lineGetAgentActivityListW(                                      // TAPI v2.0
  3026.     HLINE                   hLine,
  3027.     DWORD                   dwAddressID,
  3028.     LPLINEAGENTACTIVITYLIST lpAgentActivityList
  3029.     );
  3030.  
  3031. #ifdef UNICODE
  3032. #define lineGetAgentActivityList lineGetAgentActivityListW
  3033. #else
  3034. #define lineGetAgentActivityList lineGetAgentActivityListA
  3035. #endif
  3036.  
  3037.  
  3038. LONG
  3039. WINAPI
  3040. lineGetAgentCapsA(                                              // TAPI v2.0
  3041.     HLINEAPP            hLineApp,
  3042.     DWORD               dwDeviceID,
  3043.     DWORD               dwAddressID,
  3044.     DWORD               dwAppAPIVersion,
  3045.     LPLINEAGENTCAPS     lpAgentCaps
  3046.     );
  3047.  
  3048. LONG
  3049. WINAPI
  3050. lineGetAgentCapsW(                                              // TAPI v2.0
  3051.     HLINEAPP            hLineApp,
  3052.     DWORD               dwDeviceID,
  3053.     DWORD               dwAddressID,
  3054.     DWORD               dwAppAPIVersion,
  3055.     LPLINEAGENTCAPS     lpAgentCaps
  3056.     );
  3057.  
  3058. #ifdef UNICODE
  3059. #define lineGetAgentCaps lineGetAgentCapsW
  3060. #else
  3061. #define lineGetAgentCaps lineGetAgentCapsA
  3062. #endif
  3063.  
  3064.  
  3065. LONG
  3066. WINAPI
  3067. lineGetAgentGroupListA(                                         // TAPI v2.0
  3068.     HLINE                   hLine,
  3069.     DWORD                   dwAddressID,
  3070.     LPLINEAGENTGROUPLIST    lpAgentGroupList
  3071.     );
  3072.  
  3073. LONG
  3074. WINAPI
  3075. lineGetAgentGroupListW(                                         // TAPI v2.0
  3076.     HLINE                   hLine,
  3077.     DWORD                   dwAddressID,
  3078.     LPLINEAGENTGROUPLIST    lpAgentGroupList
  3079.     );
  3080.  
  3081. #ifdef UNICODE
  3082. #define lineGetAgentGroupList lineGetAgentGroupListW
  3083. #else
  3084. #define lineGetAgentGroupList lineGetAgentGroupListA
  3085. #endif
  3086.  
  3087. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  3088. LONG
  3089. WINAPI
  3090. lineGetAgentInfo(                                               // TAPI v2.2
  3091.     HLINE               hLine,
  3092.     HAGENT              hAgent,
  3093.     LPLINEAGENTINFO     lpAgentInfo
  3094.     );
  3095.  
  3096. LONG
  3097. WINAPI
  3098. lineGetAgentSessionInfo(                                        // TAPI v2.2
  3099.     HLINE                   hLine,
  3100.     HAGENTSESSION           hAgentSession,
  3101.     LPLINEAGENTSESSIONINFO  lpAgentSessionInfo
  3102.     );
  3103.  
  3104. LONG
  3105. WINAPI
  3106. lineGetAgentSessionList(                                        // TAPI v2.2
  3107.     HLINE                   hLine,
  3108.     HAGENT                  hAgent,
  3109.     LPLINEAGENTSESSIONLIST  lpAgentSessionList
  3110.     );
  3111. #endif
  3112.  
  3113. LONG
  3114. WINAPI
  3115. lineGetAgentStatusA(                                            // TAPI v2.0
  3116.     HLINE               hLine,
  3117.     DWORD               dwAddressID,
  3118.     LPLINEAGENTSTATUS   lpAgentStatus
  3119.     );
  3120.  
  3121. LONG
  3122. WINAPI
  3123. lineGetAgentStatusW(                                            // TAPI v2.0
  3124.     HLINE               hLine,
  3125.     DWORD               dwAddressID,
  3126.     LPLINEAGENTSTATUS   lpAgentStatus
  3127.     );
  3128.  
  3129. #ifdef UNICODE
  3130. #define lineGetAgentStatus lineGetAgentStatusW
  3131. #else
  3132. #define lineGetAgentStatus lineGetAgentStatusA
  3133. #endif
  3134. #endif
  3135.  
  3136. LONG
  3137. WINAPI
  3138. lineGetAppPriority(                                             // TAPI v1.4
  3139.     LPCSTR              lpszAppFilename,
  3140.     DWORD               dwMediaMode,
  3141.     LPLINEEXTENSIONID   lpExtensionID,
  3142.     DWORD               dwRequestMode,
  3143.     LPVARSTRING         lpExtensionName,
  3144.     LPDWORD             lpdwPriority
  3145.     );
  3146.  
  3147. #if WIN32
  3148. LONG
  3149. WINAPI
  3150. lineGetAppPriorityA(                                            // TAPI v1.4
  3151.     LPCSTR              lpszAppFilename,
  3152.     DWORD               dwMediaMode,
  3153.     LPLINEEXTENSIONID   lpExtensionID,
  3154.     DWORD               dwRequestMode,
  3155.     LPVARSTRING         lpExtensionName,
  3156.     LPDWORD             lpdwPriority
  3157.     );
  3158.  
  3159. LONG
  3160. WINAPI
  3161. lineGetAppPriorityW(                                            // TAPI v1.4
  3162.     LPCWSTR             lpszAppFilename,
  3163.     DWORD               dwMediaMode,
  3164.     LPLINEEXTENSIONID   lpExtensionID,
  3165.     DWORD               dwRequestMode,
  3166.     LPVARSTRING         lpExtensionName,
  3167.     LPDWORD             lpdwPriority
  3168.     );
  3169.  
  3170. #ifdef UNICODE
  3171. #define lineGetAppPriority lineGetAppPriorityW
  3172. #else
  3173. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3174. #define lineGetAppPriority lineGetAppPriorityA
  3175. #endif
  3176. #endif
  3177. #endif
  3178.  
  3179. LONG
  3180. WINAPI
  3181. lineGetCallInfo(
  3182.     HCALL               hCall,
  3183.     LPLINECALLINFO      lpCallInfo
  3184.     );
  3185.  
  3186. #if WIN32
  3187. LONG
  3188. WINAPI
  3189. lineGetCallInfoA(
  3190.     HCALL               hCall,
  3191.     LPLINECALLINFO      lpCallInfo
  3192.     );
  3193.  
  3194. LONG
  3195. WINAPI
  3196. lineGetCallInfoW(
  3197.     HCALL               hCall,
  3198.     LPLINECALLINFO      lpCallInfo
  3199.     );
  3200.  
  3201. #ifdef UNICODE
  3202. #define lineGetCallInfo lineGetCallInfoW
  3203. #else
  3204. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3205. #define lineGetCallInfo lineGetCallInfoA
  3206. #endif
  3207. #endif
  3208. #endif
  3209.  
  3210. LONG
  3211. WINAPI
  3212. lineGetCallStatus(
  3213.     HCALL               hCall,
  3214.     LPLINECALLSTATUS    lpCallStatus
  3215.     );
  3216.  
  3217. LONG
  3218. WINAPI
  3219. lineGetConfRelatedCalls(
  3220.     HCALL               hCall,
  3221.     LPLINECALLLIST      lpCallList
  3222.     );
  3223.  
  3224. LONG
  3225. WINAPI
  3226. lineGetCountry(                                                 // TAPI v1.4
  3227.     DWORD               dwCountryID,
  3228.     DWORD               dwAPIVersion,
  3229.     LPLINECOUNTRYLIST   lpLineCountryList
  3230.     );
  3231.  
  3232. #if WIN32
  3233. LONG
  3234. WINAPI
  3235. lineGetCountryA(                                                // TAPI v1.4
  3236.     DWORD               dwCountryID,
  3237.     DWORD               dwAPIVersion,
  3238.     LPLINECOUNTRYLIST   lpLineCountryList
  3239.     );
  3240.  
  3241. LONG
  3242. WINAPI
  3243. lineGetCountryW(                                                // TAPI v1.4
  3244.     DWORD               dwCountryID,
  3245.     DWORD               dwAPIVersion,
  3246.     LPLINECOUNTRYLIST   lpLineCountryList
  3247.     );
  3248.  
  3249. #ifdef UNICODE
  3250. #define lineGetCountry lineGetCountryW
  3251. #else
  3252. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3253. #define lineGetCountry lineGetCountryA
  3254. #endif
  3255. #endif
  3256. #endif
  3257.  
  3258. LONG
  3259. WINAPI
  3260. lineGetDevCaps(
  3261.     HLINEAPP            hLineApp,
  3262.     DWORD               dwDeviceID,
  3263.     DWORD               dwAPIVersion,
  3264.     DWORD               dwExtVersion,
  3265.     LPLINEDEVCAPS       lpLineDevCaps
  3266.     );
  3267.  
  3268. #if WIN32
  3269. LONG
  3270. WINAPI
  3271. lineGetDevCapsA(
  3272.     HLINEAPP            hLineApp,
  3273.     DWORD               dwDeviceID,
  3274.     DWORD               dwAPIVersion,
  3275.     DWORD               dwExtVersion,
  3276.     LPLINEDEVCAPS       lpLineDevCaps
  3277.     );
  3278.  
  3279. LONG
  3280. WINAPI
  3281. lineGetDevCapsW(
  3282.     HLINEAPP            hLineApp,
  3283.     DWORD               dwDeviceID,
  3284.     DWORD               dwAPIVersion,
  3285.     DWORD               dwExtVersion,
  3286.     LPLINEDEVCAPS       lpLineDevCaps
  3287.     );
  3288.  
  3289. #ifdef UNICODE
  3290. #define lineGetDevCaps lineGetDevCapsW
  3291. #else
  3292. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3293. #define lineGetDevCaps lineGetDevCapsA
  3294. #endif
  3295. #endif
  3296. #endif
  3297.  
  3298. LONG
  3299. WINAPI
  3300. lineGetDevConfig(
  3301.     DWORD               dwDeviceID,
  3302.     LPVARSTRING         lpDeviceConfig,
  3303.     LPCSTR              lpszDeviceClass
  3304.     );
  3305.  
  3306. #if WIN32
  3307. LONG
  3308. WINAPI
  3309. lineGetDevConfigA(
  3310.     DWORD               dwDeviceID,
  3311.     LPVARSTRING         lpDeviceConfig,
  3312.     LPCSTR              lpszDeviceClass
  3313.     );
  3314.  
  3315. LONG
  3316. WINAPI
  3317. lineGetDevConfigW(
  3318.     DWORD               dwDeviceID,
  3319.     LPVARSTRING         lpDeviceConfig,
  3320.     LPCWSTR             lpszDeviceClass
  3321.     );
  3322.  
  3323. #ifdef UNICODE
  3324. #define lineGetDevConfig lineGetDevConfigW
  3325. #else
  3326. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3327. #define lineGetDevConfig lineGetDevConfigA
  3328. #endif
  3329. #endif
  3330. #endif
  3331.  
  3332. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  3333. LONG
  3334. WINAPI
  3335. lineGetGroupListA(                                              // TAPI v2.2
  3336.     HLINE                   hLine,
  3337.     LPLINEAGENTGROUPLIST    lpGroupList
  3338.     );
  3339.  
  3340. LONG
  3341. WINAPI
  3342. lineGetGroupListW(                                              // TAPI v2.2
  3343.     HLINE                   hLine,
  3344.     LPLINEAGENTGROUPLIST    lpGroupList
  3345.     );
  3346.  
  3347. #ifdef UNICODE
  3348. #define lineGetGroupList lineGetGroupListW
  3349. #else
  3350. #define lineGetGroupList lineGetGroupListA
  3351. #endif
  3352. #endif
  3353.  
  3354. LONG
  3355. WINAPI
  3356. lineGetIcon(
  3357.     DWORD               dwDeviceID,
  3358.     LPCSTR              lpszDeviceClass,
  3359.     LPHICON             lphIcon
  3360.     );
  3361.  
  3362. #if WIN32
  3363. LONG
  3364. WINAPI
  3365. lineGetIconA(
  3366.     DWORD               dwDeviceID,
  3367.     LPCSTR              lpszDeviceClass,
  3368.     LPHICON             lphIcon
  3369.     );
  3370.  
  3371. LONG
  3372. WINAPI
  3373. lineGetIconW(
  3374.     DWORD               dwDeviceID,
  3375.     LPCWSTR             lpszDeviceClass,
  3376.     LPHICON             lphIcon
  3377.     );
  3378.  
  3379. #ifdef UNICODE
  3380. #define lineGetIcon lineGetIconW
  3381. #else
  3382. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3383. #define lineGetIcon lineGetIconA
  3384. #endif
  3385. #endif
  3386. #endif
  3387.  
  3388. LONG
  3389. WINAPI
  3390. lineGetID(
  3391.     HLINE               hLine,
  3392.     DWORD               dwAddressID,
  3393.     HCALL               hCall,
  3394.     DWORD               dwSelect,
  3395.     LPVARSTRING         lpDeviceID,
  3396.     LPCSTR              lpszDeviceClass
  3397.     );
  3398.  
  3399. #if WIN32
  3400. LONG
  3401. WINAPI
  3402. lineGetIDA(
  3403.     HLINE               hLine,
  3404.     DWORD               dwAddressID,
  3405.     HCALL               hCall,
  3406.     DWORD               dwSelect,
  3407.     LPVARSTRING         lpDeviceID,
  3408.     LPCSTR              lpszDeviceClass
  3409.     );
  3410.  
  3411. LONG
  3412. WINAPI
  3413. lineGetIDW(
  3414.     HLINE               hLine,
  3415.     DWORD               dwAddressID,
  3416.     HCALL               hCall,
  3417.     DWORD               dwSelect,
  3418.     LPVARSTRING         lpDeviceID,
  3419.     LPCWSTR             lpszDeviceClass
  3420.     );
  3421.  
  3422. #ifdef UNICODE
  3423. #define lineGetID lineGetIDW
  3424. #else
  3425. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3426. #define lineGetID lineGetIDA
  3427. #endif
  3428. #endif
  3429. #endif
  3430.  
  3431. LONG
  3432. WINAPI
  3433. lineGetLineDevStatus(
  3434.     HLINE               hLine,
  3435.     LPLINEDEVSTATUS     lpLineDevStatus
  3436.     );
  3437.  
  3438. #if WIN32
  3439. LONG
  3440. WINAPI
  3441. lineGetLineDevStatusA(
  3442.     HLINE               hLine,
  3443.     LPLINEDEVSTATUS     lpLineDevStatus
  3444.     );
  3445.  
  3446. LONG
  3447. WINAPI
  3448. lineGetLineDevStatusW(
  3449.     HLINE               hLine,
  3450.     LPLINEDEVSTATUS     lpLineDevStatus
  3451.     );
  3452.  
  3453. #ifdef UNICODE
  3454. #define lineGetDevStatus lineGetDevStatusW
  3455. #else
  3456. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3457. #define lineGetDevStatus lineGetDevStatusA
  3458. #endif
  3459. #endif
  3460. #endif
  3461.  
  3462. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3463. LONG
  3464. WINAPI
  3465. lineGetMessage(                                                 // TAPI v2.0
  3466.     HLINEAPP        hLineApp,
  3467.     LPLINEMESSAGE   lpMessage,
  3468.     DWORD           dwTimeout
  3469.     );
  3470. #endif
  3471.  
  3472. LONG
  3473. WINAPI
  3474. lineGetNewCalls(
  3475.     HLINE               hLine,
  3476.     DWORD               dwAddressID,
  3477.     DWORD               dwSelect,
  3478.     LPLINECALLLIST      lpCallList
  3479.     );
  3480.  
  3481. LONG
  3482. WINAPI
  3483. lineGetNumRings(
  3484.     HLINE               hLine,
  3485.     DWORD               dwAddressID,
  3486.     LPDWORD             lpdwNumRings
  3487.     );
  3488.  
  3489. LONG
  3490. WINAPI
  3491. lineGetProviderList(                                            // TAPI v1.4
  3492.     DWORD               dwAPIVersion,
  3493.     LPLINEPROVIDERLIST  lpProviderList
  3494.     );
  3495.  
  3496. #if WIN32
  3497. LONG
  3498. WINAPI
  3499. lineGetProviderListA(
  3500.     DWORD               dwAPIVersion,
  3501.     LPLINEPROVIDERLIST  lpProviderList
  3502.     );
  3503.  
  3504. LONG
  3505. WINAPI
  3506. lineGetProviderListW(
  3507.     DWORD               dwAPIVersion,
  3508.     LPLINEPROVIDERLIST  lpProviderList
  3509.     );
  3510.  
  3511. #ifdef UNICODE
  3512. #define lineGetProviderList lineGetProviderListW
  3513. #else
  3514. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3515. #define lineGetProviderList lineGetProviderListA
  3516. #endif
  3517. #endif
  3518. #endif
  3519.  
  3520. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  3521. LONG
  3522. WINAPI
  3523. lineGetProxyStatus(                                             // TAPI v2.2
  3524.     HLINEAPP                hLineApp,
  3525.     DWORD                   dwDeviceID,
  3526.     DWORD                   dwAppAPIVersion,
  3527.     LPLINEPROXYREQUESTLIST  lpLineProxyReqestList
  3528.     );
  3529.  
  3530. LONG
  3531. WINAPI
  3532. lineGetQueueInfo(                                               // TAPI v2.2
  3533.     HLINE               hLine,
  3534.     DWORD               dwQueueID,
  3535.     LPLINEQUEUEINFO     lpLineQueueInfo
  3536.     );
  3537.  
  3538. LONG
  3539. WINAPI
  3540. lineGetQueueListA(                                              // TAPI v2.2
  3541.     HLINE               hLine,
  3542.     LPGUID              lpGroupID,
  3543.     LPLINEQUEUELIST     lpQueueList
  3544.     );
  3545.  
  3546. LONG
  3547. WINAPI
  3548. lineGetQueueListW(                                              // TAPI v2.2
  3549.     HLINE               hLine,
  3550.     LPGUID              lpGroupID,
  3551.     LPLINEQUEUELIST     lpQueueList
  3552.     );
  3553.  
  3554. #ifdef UNICODE
  3555. #define lineGetQueueList lineGetQueueListW
  3556. #else
  3557. #define lineGetQueueList lineGetQueueListA
  3558. #endif
  3559. #endif
  3560.  
  3561. LONG
  3562. WINAPI
  3563. lineGetRequest(
  3564.     HLINEAPP            hLineApp,
  3565.     DWORD               dwRequestMode,
  3566.     LPVOID              lpRequestBuffer
  3567.     );
  3568.  
  3569. #if WIN32
  3570. LONG
  3571. WINAPI
  3572. lineGetRequestA(
  3573.     HLINEAPP            hLineApp,
  3574.     DWORD               dwRequestMode,
  3575.     LPVOID              lpRequestBuffer
  3576.     );
  3577.  
  3578. LONG
  3579. WINAPI
  3580. lineGetRequestW(
  3581.     HLINEAPP            hLineApp,
  3582.     DWORD               dwRequestMode,
  3583.     LPVOID              lpRequestBuffer
  3584.     );
  3585.  
  3586. #ifdef UNICODE
  3587. #define lineGetRequest lineGetRequestW
  3588. #else
  3589. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3590. #define lineGetRequest lineGetRequestA
  3591. #endif
  3592. #endif
  3593. #endif
  3594.  
  3595. LONG
  3596. WINAPI
  3597. lineGetStatusMessages(
  3598.     HLINE               hLine,
  3599.     LPDWORD             lpdwLineStates,
  3600.     LPDWORD             lpdwAddressStates
  3601.     );
  3602.  
  3603. LONG
  3604. WINAPI
  3605. lineGetTranslateCaps(
  3606.     HLINEAPP hLineApp,
  3607.     DWORD dwAPIVersion,
  3608.     LPLINETRANSLATECAPS lpTranslateCaps
  3609.     );
  3610.  
  3611. #if WIN32
  3612. LONG
  3613. WINAPI
  3614. lineGetTranslateCapsA(
  3615.     HLINEAPP hLineApp,
  3616.     DWORD dwAPIVersion,
  3617.     LPLINETRANSLATECAPS lpTranslateCaps
  3618.     );
  3619.  
  3620. LONG
  3621. WINAPI
  3622. lineGetTranslateCapsW(
  3623.     HLINEAPP hLineApp,
  3624.     DWORD dwAPIVersion,
  3625.     LPLINETRANSLATECAPS lpTranslateCaps
  3626.     );
  3627.  
  3628. #ifdef UNICODE
  3629. #define lineGetTranslateCaps lineGetTranslateCapsW
  3630. #else
  3631. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3632. #define lineGetTranslateCaps lineGetTranslateCapsA
  3633. #endif
  3634. #endif
  3635. #endif
  3636.  
  3637. LONG
  3638. WINAPI
  3639. lineHandoff(
  3640.     HCALL               hCall,
  3641.     LPCSTR              lpszFileName,
  3642.     DWORD               dwMediaMode
  3643.     );
  3644.  
  3645. #if WIN32
  3646. LONG
  3647. WINAPI
  3648. lineHandoffA(
  3649.     HCALL               hCall,
  3650.     LPCSTR              lpszFileName,
  3651.     DWORD               dwMediaMode
  3652.     );
  3653.  
  3654. LONG
  3655. WINAPI
  3656. lineHandoffW(
  3657.     HCALL               hCall,
  3658.     LPCWSTR             lpszFileName,
  3659.     DWORD               dwMediaMode
  3660.     );
  3661.  
  3662. #ifdef UNICODE
  3663. #define lineHandoff lineHandoffW
  3664. #else
  3665. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3666. #define lineHandoff lineHandoffA
  3667. #endif
  3668. #endif
  3669. #endif
  3670.  
  3671. LONG
  3672. WINAPI
  3673. lineHold(
  3674.     HCALL               hCall
  3675.     );
  3676.  
  3677. LONG
  3678. WINAPI
  3679. lineInitialize(
  3680.     LPHLINEAPP          lphLineApp,
  3681.     HINSTANCE           hInstance,
  3682.     LINECALLBACK        lpfnCallback,
  3683.     LPCSTR              lpszAppName,
  3684.     LPDWORD             lpdwNumDevs
  3685.     );
  3686.  
  3687. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3688. LONG
  3689. WINAPI
  3690. lineInitializeExA(                                               // TAPI v2.0
  3691.     LPHLINEAPP                  lphLineApp,
  3692.     HINSTANCE                   hInstance,
  3693.     LINECALLBACK                lpfnCallback,
  3694.     LPCSTR                      lpszFriendlyAppName,
  3695.     LPDWORD                     lpdwNumDevs,
  3696.     LPDWORD                     lpdwAPIVersion,
  3697.     LPLINEINITIALIZEEXPARAMS    lpLineInitializeExParams
  3698.     );
  3699.  
  3700. LONG
  3701. WINAPI
  3702. lineInitializeExW(                                               // TAPI v2.0
  3703.     LPHLINEAPP                  lphLineApp,
  3704.     HINSTANCE                   hInstance,
  3705.     LINECALLBACK                lpfnCallback,
  3706.     LPCWSTR                     lpszFriendlyAppName,
  3707.     LPDWORD                     lpdwNumDevs,
  3708.     LPDWORD                     lpdwAPIVersion,
  3709.     LPLINEINITIALIZEEXPARAMS    lpLineInitializeExParams
  3710.     );
  3711.  
  3712. #ifdef UNICODE
  3713. #define lineInitializeEx lineInitializeExW
  3714. #else
  3715. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3716. #define lineInitializeEx lineInitializeExA
  3717. #endif
  3718. #endif
  3719. #endif
  3720.  
  3721. LONG
  3722. WINAPI
  3723. lineMakeCall(
  3724.     HLINE               hLine,
  3725.     LPHCALL             lphCall,
  3726.     LPCSTR              lpszDestAddress,
  3727.     DWORD               dwCountryCode,
  3728.     LPLINECALLPARAMS    const lpCallParams
  3729.     );
  3730.  
  3731. #if WIN32
  3732. LONG
  3733. WINAPI
  3734. lineMakeCallA(
  3735.     HLINE               hLine,
  3736.     LPHCALL             lphCall,
  3737.     LPCSTR              lpszDestAddress,
  3738.     DWORD               dwCountryCode,
  3739.     LPLINECALLPARAMS    const lpCallParams
  3740.     );
  3741.  
  3742. LONG
  3743. WINAPI
  3744. lineMakeCallW(
  3745.     HLINE               hLine,
  3746.     LPHCALL             lphCall,
  3747.     LPCWSTR             lpszDestAddress,
  3748.     DWORD               dwCountryCode,
  3749.     LPLINECALLPARAMS    const lpCallParams
  3750.     );
  3751.  
  3752. #ifdef UNICODE
  3753. #define lineMakeCall lineMakeCallW
  3754. #else
  3755. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3756. #define lineMakeCall lineMakeCallA
  3757. #endif
  3758. #endif
  3759. #endif
  3760.  
  3761. LONG
  3762. WINAPI
  3763. lineMonitorDigits(
  3764.     HCALL               hCall,
  3765.     DWORD               dwDigitModes
  3766.     );
  3767.  
  3768. LONG
  3769. WINAPI
  3770. lineMonitorMedia(
  3771.     HCALL               hCall,
  3772.     DWORD               dwMediaModes
  3773.     );
  3774.  
  3775. LONG
  3776. WINAPI
  3777. lineMonitorTones(
  3778.     HCALL               hCall,
  3779.     LPLINEMONITORTONE   const lpToneList,
  3780.     DWORD               dwNumEntries
  3781.     );
  3782.  
  3783. LONG
  3784. WINAPI
  3785. lineNegotiateAPIVersion(
  3786.     HLINEAPP            hLineApp,
  3787.     DWORD               dwDeviceID,
  3788.     DWORD               dwAPILowVersion,
  3789.     DWORD               dwAPIHighVersion,
  3790.     LPDWORD             lpdwAPIVersion,
  3791.     LPLINEEXTENSIONID   lpExtensionID
  3792.     );
  3793.  
  3794. LONG
  3795. WINAPI
  3796. lineNegotiateExtVersion(
  3797.     HLINEAPP            hLineApp,
  3798.     DWORD               dwDeviceID,
  3799.     DWORD               dwAPIVersion,
  3800.     DWORD               dwExtLowVersion,
  3801.     DWORD               dwExtHighVersion,
  3802.     LPDWORD             lpdwExtVersion
  3803.     );
  3804.  
  3805. LONG
  3806. WINAPI
  3807. lineOpen(
  3808.     HLINEAPP hLineApp,
  3809.     DWORD dwDeviceID,
  3810.     LPHLINE lphLine,
  3811.     DWORD               dwAPIVersion,
  3812.     DWORD               dwExtVersion,
  3813.     DWORD_PTR           dwCallbackInstance,
  3814.     DWORD               dwPrivileges,
  3815.     DWORD               dwMediaModes,
  3816.     LPLINECALLPARAMS    const lpCallParams
  3817.     );
  3818.  
  3819. #if WIN32
  3820. LONG
  3821. WINAPI
  3822. lineOpenA(
  3823.     HLINEAPP hLineApp,
  3824.     DWORD dwDeviceID,
  3825.     LPHLINE lphLine,
  3826.     DWORD               dwAPIVersion,
  3827.     DWORD               dwExtVersion,
  3828.     DWORD_PTR           dwCallbackInstance,
  3829.     DWORD               dwPrivileges,
  3830.     DWORD               dwMediaModes,
  3831.     LPLINECALLPARAMS    const lpCallParams
  3832.     );
  3833.  
  3834. LONG
  3835. WINAPI
  3836. lineOpenW(
  3837.     HLINEAPP hLineApp,
  3838.     DWORD dwDeviceID,
  3839.     LPHLINE lphLine,
  3840.     DWORD               dwAPIVersion,
  3841.     DWORD               dwExtVersion,
  3842.     DWORD_PTR           dwCallbackInstance,
  3843.     DWORD               dwPrivileges,
  3844.     DWORD               dwMediaModes,
  3845.     LPLINECALLPARAMS    const lpCallParams
  3846.     );
  3847.  
  3848. #ifdef UNICODE
  3849. #define lineOpen lineOpenW
  3850. #else
  3851. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3852. #define lineOpen lineOpenA
  3853. #endif
  3854. #endif
  3855. #endif
  3856.  
  3857. LONG
  3858. WINAPI
  3859. linePark(
  3860.     HCALL               hCall,
  3861.     DWORD               dwParkMode,
  3862.     LPCSTR              lpszDirAddress,
  3863.     LPVARSTRING         lpNonDirAddress
  3864.     );
  3865.  
  3866. #if WIN32
  3867. LONG
  3868. WINAPI
  3869. lineParkA(
  3870.     HCALL               hCall,
  3871.     DWORD               dwParkMode,
  3872.     LPCSTR              lpszDirAddress,
  3873.     LPVARSTRING         lpNonDirAddress
  3874.     );
  3875.  
  3876. LONG
  3877. WINAPI
  3878. lineParkW(
  3879.     HCALL               hCall,
  3880.     DWORD               dwParkMode,
  3881.     LPCWSTR             lpszDirAddress,
  3882.     LPVARSTRING         lpNonDirAddress
  3883.     );
  3884.  
  3885. #ifdef UNICODE
  3886. #define linePark lineParkW
  3887. #else
  3888. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3889. #define linePark lineParkA
  3890. #endif
  3891. #endif
  3892. #endif
  3893.  
  3894. LONG
  3895. WINAPI
  3896. linePickup(
  3897.     HLINE               hLine,
  3898.     DWORD               dwAddressID,
  3899.     LPHCALL             lphCall,
  3900.     LPCSTR              lpszDestAddress,
  3901.     LPCSTR              lpszGroupID
  3902.     );
  3903.  
  3904. #if WIN32
  3905. LONG
  3906. WINAPI
  3907. linePickupA(
  3908.     HLINE               hLine,
  3909.     DWORD               dwAddressID,
  3910.     LPHCALL             lphCall,
  3911.     LPCSTR              lpszDestAddress,
  3912.     LPCSTR              lpszGroupID
  3913.     );
  3914.  
  3915. LONG
  3916. WINAPI
  3917. linePickupW(
  3918.     HLINE               hLine,
  3919.     DWORD               dwAddressID,
  3920.     LPHCALL             lphCall,
  3921.     LPCWSTR             lpszDestAddress,
  3922.     LPCWSTR             lpszGroupID
  3923.     );
  3924.  
  3925. #ifdef UNICODE
  3926. #define linePickup linePickupW
  3927. #else
  3928. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3929. #define linePickup linePickupA
  3930. #endif
  3931. #endif
  3932. #endif
  3933.  
  3934. LONG
  3935. WINAPI
  3936. linePrepareAddToConference(
  3937.     HCALL               hConfCall,
  3938.     LPHCALL             lphConsultCall,
  3939.     LPLINECALLPARAMS    const lpCallParams
  3940.     );
  3941.  
  3942. #if WIN32
  3943. LONG
  3944. WINAPI
  3945. linePrepareAddToConferenceA(
  3946.     HCALL               hConfCall,
  3947.     LPHCALL             lphConsultCall,
  3948.     LPLINECALLPARAMS    const lpCallParams
  3949.     );
  3950.  
  3951. LONG
  3952. WINAPI
  3953. linePrepareAddToConferenceW(
  3954.     HCALL               hConfCall,
  3955.     LPHCALL             lphConsultCall,
  3956.     LPLINECALLPARAMS    const lpCallParams
  3957.     );
  3958.  
  3959. #ifdef UNICODE
  3960. #define linePrepareAddToConference linePrepareAddToConferenceW
  3961. #else
  3962. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3963. #define linePrepareAddToConference linePrepareAddToConferenceA
  3964. #endif
  3965. #endif
  3966. #endif
  3967.  
  3968. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3969. LONG
  3970. WINAPI
  3971. lineProxyMessage(                                               // TAPI v2.0
  3972.     HLINE               hLine,
  3973.     HCALL               hCall,
  3974.     DWORD               dwMsg,
  3975.     DWORD               dwParam1,
  3976.     DWORD               dwParam2,
  3977.     DWORD               dwParam3
  3978.     );
  3979.  
  3980. LONG
  3981. WINAPI
  3982. lineProxyResponse(                                              // TAPI v2.0
  3983.     HLINE               hLine,
  3984.     LPLINEPROXYREQUEST  lpProxyRequest,
  3985.     DWORD               dwResult
  3986.     );
  3987. #endif
  3988.  
  3989. LONG
  3990. WINAPI
  3991. lineRedirect(
  3992.     HCALL               hCall,
  3993.     LPCSTR              lpszDestAddress,
  3994.     DWORD               dwCountryCode
  3995.     );
  3996.  
  3997. #if WIN32
  3998. LONG
  3999. WINAPI
  4000. lineRedirectA(
  4001.     HCALL               hCall,
  4002.     LPCSTR              lpszDestAddress,
  4003.     DWORD               dwCountryCode
  4004.     );
  4005.  
  4006. LONG
  4007. WINAPI
  4008. lineRedirectW(
  4009.     HCALL               hCall,
  4010.     LPCWSTR             lpszDestAddress,
  4011.     DWORD               dwCountryCode
  4012.     );
  4013.  
  4014. #ifdef UNICODE
  4015. #define lineRedirect lineRedirectW
  4016. #else
  4017. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4018. #define lineRedirect lineRedirectA
  4019. #endif
  4020. #endif
  4021. #endif
  4022.  
  4023. LONG
  4024. WINAPI
  4025. lineRegisterRequestRecipient(
  4026.     HLINEAPP            hLineApp,
  4027.     DWORD               dwRegistrationInstance,
  4028.     DWORD               dwRequestMode,
  4029.     DWORD               bEnable
  4030.     );
  4031.  
  4032. LONG
  4033. WINAPI
  4034. lineReleaseUserUserInfo(                                        // TAPI v1.4
  4035.     HCALL               hCall
  4036.     );
  4037.  
  4038. LONG
  4039. WINAPI
  4040. lineRemoveFromConference(
  4041.     HCALL               hCall
  4042.     );
  4043.  
  4044. LONG
  4045. WINAPI
  4046. lineRemoveProvider(                                             // TAPI v1.4
  4047.     DWORD               dwPermanentProviderID,
  4048.     HWND                hwndOwner
  4049.     );
  4050.  
  4051. LONG
  4052. WINAPI
  4053. lineSecureCall(
  4054.     HCALL               hCall
  4055.     );
  4056.  
  4057. LONG
  4058. WINAPI
  4059. lineSendUserUserInfo(
  4060.     HCALL               hCall,
  4061.     LPCSTR              lpsUserUserInfo,
  4062.     DWORD               dwSize
  4063.     );
  4064.  
  4065. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4066. LONG
  4067. WINAPI
  4068. lineSetAgentActivity(                                           // TAPI v2.0
  4069.     HLINE               hLine,
  4070.     DWORD               dwAddressID,
  4071.     DWORD               dwActivityID
  4072.     );
  4073.  
  4074. LONG
  4075. WINAPI
  4076. lineSetAgentGroup(                                              // TAPI v2.0
  4077.     HLINE                   hLine,
  4078.     DWORD                   dwAddressID,
  4079.     LPLINEAGENTGROUPLIST    lpAgentGroupList
  4080.     );
  4081.  
  4082. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  4083. LONG
  4084. WINAPI
  4085. lineSetAgentMeasurementPeriod(                                  // TAPI v2.2
  4086.     HLINE               hLine,
  4087.     HAGENT              hAgent,
  4088.     DWORD               dwMeasurementPeriod
  4089.     );
  4090.  
  4091. LONG
  4092. WINAPI
  4093. lineSetAgentSessionState(                                       // TAPI v2.2
  4094.     HLINE               hLine,
  4095.     HAGENTSESSION       hAgentSession,
  4096.     DWORD               dwAgentSessionState,
  4097.     DWORD               dwNextAgentSessionState
  4098.     );
  4099.  
  4100. LONG
  4101. WINAPI
  4102. lineSetAgentStateEx(                                            // TAPI v2.2
  4103.     HLINE               hLine,
  4104.     HAGENT              hAgent,
  4105.     DWORD               dwAgentState,
  4106.     DWORD               dwNextAgentState
  4107.     );
  4108. #endif
  4109.  
  4110. LONG
  4111. WINAPI
  4112. lineSetAgentState(                                              // TAPI v2.0
  4113.     HLINE               hLine,
  4114.     DWORD               dwAddressID,
  4115.     DWORD               dwAgentState,
  4116.     DWORD               dwNextAgentState
  4117.     );
  4118. #endif
  4119.  
  4120. LONG
  4121. WINAPI
  4122. lineSetAppPriority(                                             // TAPI v1.4
  4123.     LPCSTR              lpszAppFilename,
  4124.     DWORD               dwMediaMode,
  4125.     LPLINEEXTENSIONID   lpExtensionID,
  4126.     DWORD               dwRequestMode,
  4127.     LPCSTR              lpszExtensionName,
  4128.     DWORD               dwPriority
  4129.     );
  4130.  
  4131. #if WIN32
  4132. LONG
  4133. WINAPI
  4134. lineSetAppPriorityA(                                             // TAPI v1.4
  4135.     LPCSTR              lpszAppFilename,
  4136.     DWORD               dwMediaMode,
  4137.     LPLINEEXTENSIONID   lpExtensionID,
  4138.     DWORD               dwRequestMode,
  4139.     LPCSTR              lpszExtensionName,
  4140.     DWORD               dwPriority
  4141.     );
  4142.  
  4143. LONG
  4144. WINAPI
  4145. lineSetAppPriorityW(                                             // TAPI v1.4
  4146.     LPCWSTR             lpszAppFilename,
  4147.     DWORD               dwMediaMode,
  4148.     LPLINEEXTENSIONID   lpExtensionID,
  4149.     DWORD               dwRequestMode,
  4150.     LPCWSTR             lpszExtensionName,
  4151.     DWORD               dwPriority
  4152.     );
  4153.  
  4154. #ifdef UNICODE
  4155. #define lineSetAppPriority lineSetAppPriorityW
  4156. #else
  4157. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4158. #define lineSetAppPriority lineSetAppPriorityA
  4159. #endif
  4160. #endif
  4161. #endif
  4162.  
  4163. LONG
  4164. WINAPI
  4165. lineSetAppSpecific(
  4166.     HCALL               hCall,
  4167.     DWORD               dwAppSpecific
  4168.     );
  4169.  
  4170. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4171. LONG
  4172. WINAPI
  4173. lineSetCallData(                                                // TAPI v2.0
  4174.     HCALL               hCall,
  4175.     LPVOID              lpCallData,
  4176.     DWORD               dwSize
  4177.     );
  4178. #endif
  4179.  
  4180. LONG
  4181. WINAPI
  4182. lineSetCallParams(
  4183.     HCALL               hCall,
  4184.     DWORD               dwBearerMode,
  4185.     DWORD               dwMinRate,
  4186.     DWORD               dwMaxRate,
  4187.     LPLINEDIALPARAMS    const lpDialParams
  4188.     );
  4189.  
  4190. LONG
  4191. WINAPI
  4192. lineSetCallPrivilege(
  4193.     HCALL               hCall,
  4194.     DWORD               dwCallPrivilege
  4195.     );
  4196.  
  4197. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4198. LONG
  4199. WINAPI
  4200. lineSetCallQualityOfService(                                    // TAPI v2.0
  4201.     HCALL               hCall,
  4202.     LPVOID              lpSendingFlowspec,
  4203.     DWORD               dwSendingFlowspecSize,
  4204.     LPVOID              lpReceivingFlowspec,
  4205.     DWORD               dwReceivingFlowspecSize
  4206.     );
  4207.  
  4208. LONG
  4209. WINAPI
  4210. lineSetCallTreatment(                                           // TAPI v2.0
  4211.     HCALL               hCall,
  4212.     DWORD               dwTreatment
  4213.     );
  4214. #endif
  4215.  
  4216. LONG
  4217. WINAPI
  4218. lineSetCurrentLocation(
  4219.     HLINEAPP            hLineApp,
  4220.     DWORD               dwLocation
  4221.     );
  4222.  
  4223. LONG
  4224. WINAPI
  4225. lineSetDevConfig(
  4226.     DWORD               dwDeviceID,
  4227.     LPVOID              const lpDeviceConfig,
  4228.     DWORD               dwSize,
  4229.     LPCSTR              lpszDeviceClass
  4230.     );
  4231.  
  4232. #if WIN32
  4233. LONG
  4234. WINAPI
  4235. lineSetDevConfigA(
  4236.     DWORD               dwDeviceID,
  4237.     LPVOID              const lpDeviceConfig,
  4238.     DWORD               dwSize,
  4239.     LPCSTR              lpszDeviceClass
  4240.     );
  4241.  
  4242. LONG
  4243. WINAPI
  4244. lineSetDevConfigW(
  4245.     DWORD               dwDeviceID,
  4246.     LPVOID              const lpDeviceConfig,
  4247.     DWORD               dwSize,
  4248.     LPCWSTR             lpszDeviceClass
  4249.     );
  4250.  
  4251. #ifdef UNICODE
  4252. #define lineSetDevConfig lineSetDevConfigW
  4253. #else
  4254. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4255. #define lineSetDevConfig lineSetDevConfigA
  4256. #endif
  4257. #endif
  4258. #endif
  4259.  
  4260. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4261. LONG
  4262. WINAPI
  4263. lineSetLineDevStatus(                                           // TAPI v2.0
  4264.     HLINE               hLine,
  4265.     DWORD               dwStatusToChange,
  4266.     DWORD               fStatus
  4267.     );
  4268. #endif
  4269.  
  4270. LONG
  4271. WINAPI
  4272. lineSetMediaControl(
  4273.     HLINE                       hLine,
  4274.     DWORD                       dwAddressID,
  4275.     HCALL                       hCall,
  4276.     DWORD                       dwSelect,
  4277.     LPLINEMEDIACONTROLDIGIT     const lpDigitList,
  4278.     DWORD                       dwDigitNumEntries,
  4279.     LPLINEMEDIACONTROLMEDIA     const lpMediaList,
  4280.     DWORD                       dwMediaNumEntries,
  4281.     LPLINEMEDIACONTROLTONE      const lpToneList,
  4282.     DWORD                       dwToneNumEntries,
  4283.     LPLINEMEDIACONTROLCALLSTATE const lpCallStateList,
  4284.     DWORD                       dwCallStateNumEntries
  4285.     );
  4286.  
  4287. LONG
  4288. WINAPI
  4289. lineSetMediaMode(
  4290.     HCALL               hCall,
  4291.     DWORD               dwMediaModes
  4292.     );
  4293.  
  4294. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  4295. LONG
  4296. WINAPI
  4297. lineSetQueueMeasurementPeriod(                                  // TAPI v2.2
  4298.     HLINE               hLine,
  4299.     DWORD               dwQueueID,
  4300.     DWORD               dwMeasurementPeriod
  4301.     );
  4302. #endif
  4303.  
  4304. LONG
  4305. WINAPI
  4306. lineSetNumRings(
  4307.     HLINE               hLine,
  4308.     DWORD               dwAddressID,
  4309.     DWORD               dwNumRings
  4310.     );
  4311.  
  4312. LONG
  4313. WINAPI
  4314. lineSetStatusMessages(
  4315.     HLINE               hLine,
  4316.     DWORD               dwLineStates,
  4317.     DWORD               dwAddressStates
  4318.     );
  4319.  
  4320. LONG
  4321. WINAPI
  4322. lineSetTerminal(
  4323.     HLINE               hLine,
  4324.     DWORD               dwAddressID,
  4325.     HCALL               hCall,
  4326.     DWORD               dwSelect,
  4327.     DWORD               dwTerminalModes,
  4328.     DWORD               dwTerminalID,
  4329.     DWORD               bEnable
  4330.     );
  4331.  
  4332. LONG
  4333. WINAPI
  4334. lineSetTollList(
  4335.     HLINEAPP            hLineApp,
  4336.     DWORD               dwDeviceID,
  4337.     LPCSTR              lpszAddressIn,
  4338.     DWORD               dwTollListOption
  4339.     );
  4340.  
  4341. #if WIN32
  4342. LONG
  4343. WINAPI
  4344. lineSetTollListA(
  4345.     HLINEAPP            hLineApp,
  4346.     DWORD               dwDeviceID,
  4347.     LPCSTR              lpszAddressIn,
  4348.     DWORD               dwTollListOption
  4349.     );
  4350.  
  4351. LONG
  4352. WINAPI
  4353. lineSetTollListW(
  4354.     HLINEAPP            hLineApp,
  4355.     DWORD               dwDeviceID,
  4356.     LPCWSTR             lpszAddressInW,
  4357.     DWORD               dwTollListOption
  4358.     );
  4359.  
  4360. #ifdef UNICODE
  4361. #define lineSetTollList lineSetTollListW
  4362. #else
  4363. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4364. #define lineSetTollList lineSetTollListA
  4365. #endif
  4366. #endif
  4367. #endif
  4368.  
  4369. LONG
  4370. WINAPI
  4371. lineSetupConference(
  4372.     HCALL               hCall,
  4373.     HLINE               hLine,
  4374.     LPHCALL             lphConfCall,
  4375.     LPHCALL             lphConsultCall,
  4376.     DWORD               dwNumParties,
  4377.     LPLINECALLPARAMS    const lpCallParams
  4378.     );
  4379.  
  4380. #if WIN32
  4381. LONG
  4382. WINAPI
  4383. lineSetupConferenceA(
  4384.     HCALL               hCall,
  4385.     HLINE               hLine,
  4386.     LPHCALL             lphConfCall,
  4387.     LPHCALL             lphConsultCall,
  4388.     DWORD               dwNumParties,
  4389.     LPLINECALLPARAMS    const lpCallParams
  4390.     );
  4391.  
  4392. LONG
  4393. WINAPI
  4394. lineSetupConferenceW(
  4395.     HCALL               hCall,
  4396.     HLINE               hLine,
  4397.     LPHCALL             lphConfCall,
  4398.     LPHCALL             lphConsultCall,
  4399.     DWORD               dwNumParties,
  4400.     LPLINECALLPARAMS    const lpCallParams
  4401.     );
  4402.  
  4403. #ifdef UNICODE
  4404. #define lineSetupConference lineSetupConferenceW
  4405. #else
  4406. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4407. #define lineSetupConference lineSetupConferenceA
  4408. #endif
  4409. #endif
  4410. #endif
  4411.  
  4412. LONG
  4413. WINAPI
  4414. lineSetupTransfer(
  4415.     HCALL               hCall,
  4416.     LPHCALL             lphConsultCall,
  4417.     LPLINECALLPARAMS    const lpCallParams
  4418.     );
  4419.  
  4420. #if WIN32
  4421. LONG
  4422. WINAPI
  4423. lineSetupTransferA(
  4424.     HCALL               hCall,
  4425.     LPHCALL             lphConsultCall,
  4426.     LPLINECALLPARAMS    const lpCallParams
  4427.     );
  4428.  
  4429. LONG
  4430. WINAPI
  4431. lineSetupTransferW(
  4432.     HCALL               hCall,
  4433.     LPHCALL             lphConsultCall,
  4434.     LPLINECALLPARAMS    const lpCallParams
  4435.     );
  4436.  
  4437. #ifdef UNICODE
  4438. #define lineSetupTransfer lineSetupTransferW
  4439. #else
  4440. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4441. #define lineSetupTransfer lineSetupTransferA
  4442. #endif
  4443. #endif
  4444. #endif
  4445.  
  4446. LONG
  4447. WINAPI
  4448. lineShutdown(
  4449.     HLINEAPP            hLineApp
  4450.     );
  4451.  
  4452. LONG
  4453. WINAPI
  4454. lineSwapHold(
  4455.     HCALL               hActiveCall,
  4456.     HCALL               hHeldCall
  4457.     );
  4458.  
  4459. LONG
  4460. WINAPI
  4461. lineTranslateAddress(
  4462.     HLINEAPP                hLineApp,
  4463.     DWORD                   dwDeviceID,
  4464.     DWORD                   dwAPIVersion,
  4465.     LPCSTR                  lpszAddressIn,
  4466.     DWORD                   dwCard,
  4467.     DWORD                   dwTranslateOptions,
  4468.     LPLINETRANSLATEOUTPUT   lpTranslateOutput
  4469.     );
  4470.  
  4471. #if WIN32
  4472. LONG
  4473. WINAPI
  4474. lineTranslateAddressA(
  4475.     HLINEAPP                hLineApp,
  4476.     DWORD                   dwDeviceID,
  4477.     DWORD                   dwAPIVersion,
  4478.     LPCSTR                  lpszAddressIn,
  4479.     DWORD                   dwCard,
  4480.     DWORD                   dwTranslateOptions,
  4481.     LPLINETRANSLATEOUTPUT   lpTranslateOutput
  4482.     );
  4483.  
  4484. LONG
  4485. WINAPI
  4486. lineTranslateAddressW(
  4487.     HLINEAPP                hLineApp,
  4488.     DWORD                   dwDeviceID,
  4489.     DWORD                   dwAPIVersion,
  4490.     LPCWSTR                 lpszAddressIn,
  4491.     DWORD                   dwCard,
  4492.     DWORD                   dwTranslateOptions,
  4493.     LPLINETRANSLATEOUTPUT   lpTranslateOutput
  4494.     );
  4495.  
  4496. #ifdef UNICODE
  4497. #define lineTranslateAddress lineTranslateAddressW
  4498. #else
  4499. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4500. #define lineTranslateAddress lineTranslateAddressA
  4501. #endif
  4502. #endif
  4503. #endif
  4504.  
  4505. LONG
  4506. WINAPI
  4507. lineTranslateDialog(                                            // TAPI v1.4
  4508.     HLINEAPP            hLineApp,
  4509.     DWORD               dwDeviceID,
  4510.     DWORD               dwAPIVersion,
  4511.     HWND                hwndOwner,
  4512.     LPCSTR              lpszAddressIn
  4513.     );
  4514.  
  4515. #if WIN32
  4516. LONG
  4517. WINAPI
  4518. lineTranslateDialogA(                                            // TAPI v1.4
  4519.     HLINEAPP            hLineApp,
  4520.     DWORD               dwDeviceID,
  4521.     DWORD               dwAPIVersion,
  4522.     HWND                hwndOwner,
  4523.     LPCSTR              lpszAddressIn
  4524.     );
  4525.  
  4526. LONG
  4527. WINAPI
  4528. lineTranslateDialogW(
  4529.     HLINEAPP            hLineApp,
  4530.     DWORD               dwDeviceID,
  4531.     DWORD               dwAPIVersion,
  4532.     HWND                hwndOwner,
  4533.     LPCWSTR             lpszAddressIn
  4534.     );
  4535.  
  4536. #ifdef UNICODE
  4537. #define lineTranslateDialog lineTranslateDialogW
  4538. #else
  4539. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4540. #define lineTranslateDialog lineTranslateDialogA
  4541. #endif
  4542. #endif
  4543. #endif
  4544.  
  4545. LONG
  4546. WINAPI
  4547. lineUncompleteCall(
  4548.     HLINE               hLine,
  4549.     DWORD               dwCompletionID
  4550.     );
  4551.  
  4552. LONG
  4553. WINAPI
  4554. lineUnhold(
  4555.     HCALL               hCall
  4556.     );
  4557.  
  4558. LONG
  4559. WINAPI
  4560. lineUnpark(
  4561.     HLINE               hLine,
  4562.     DWORD               dwAddressID,
  4563.     LPHCALL             lphCall,
  4564.     LPCSTR              lpszDestAddress
  4565.     );
  4566.  
  4567. #if WIN32
  4568. LONG
  4569. WINAPI
  4570. lineUnparkA(
  4571.     HLINE               hLine,
  4572.     DWORD               dwAddressID,
  4573.     LPHCALL             lphCall,
  4574.     LPCSTR              lpszDestAddress
  4575.     );
  4576.  
  4577. LONG
  4578. WINAPI
  4579. lineUnparkW(
  4580.     HLINE               hLine,
  4581.     DWORD               dwAddressID,
  4582.     LPHCALL             lphCall,
  4583.     LPCWSTR             lpszDestAddress
  4584.     );
  4585.  
  4586. #ifdef UNICODE
  4587. #define lineUnpark lineUnparkW
  4588. #else
  4589. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4590. #define lineUnpark lineUnparkA
  4591. #endif
  4592. #endif
  4593. #endif
  4594.  
  4595.  
  4596.  
  4597. LONG
  4598. WINAPI
  4599. phoneClose(
  4600.     HPHONE              hPhone
  4601.     );
  4602.  
  4603. LONG
  4604. WINAPI
  4605. phoneConfigDialog(
  4606.     DWORD               dwDeviceID,
  4607.     HWND                hwndOwner,
  4608.     LPCSTR              lpszDeviceClass
  4609.     );
  4610.  
  4611. #if WIN32
  4612. LONG
  4613. WINAPI
  4614. phoneConfigDialogA(
  4615.     DWORD               dwDeviceID,
  4616.     HWND                hwndOwner,
  4617.     LPCSTR              lpszDeviceClass
  4618.     );
  4619.  
  4620. LONG
  4621. WINAPI
  4622. phoneConfigDialogW(
  4623.     DWORD               dwDeviceID,
  4624.     HWND                hwndOwner,
  4625.     LPCWSTR             lpszDeviceClass
  4626.     );
  4627.  
  4628. #ifdef UNICODE
  4629. #define phoneConfigDialog phoneConfigDialogW
  4630. #else
  4631. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4632. #define phoneConfigDialog phoneConfigDialogA
  4633. #endif
  4634. #endif
  4635. #endif
  4636.  
  4637. LONG
  4638. WINAPI
  4639. phoneDevSpecific(
  4640.     HPHONE              hPhone,
  4641.     LPVOID              lpParams,
  4642.     DWORD               dwSize
  4643.     );
  4644.  
  4645. LONG
  4646. WINAPI
  4647. phoneGetButtonInfo(
  4648.     HPHONE              hPhone,
  4649.     DWORD               dwButtonLampID,
  4650.     LPPHONEBUTTONINFO   lpButtonInfo
  4651.     );
  4652.  
  4653. #if WIN32
  4654. LONG
  4655. WINAPI
  4656. phoneGetButtonInfoA(
  4657.     HPHONE              hPhone,
  4658.     DWORD               dwButtonLampID,
  4659.     LPPHONEBUTTONINFO   lpButtonInfo
  4660.     );
  4661.  
  4662. LONG
  4663. WINAPI
  4664. phoneGetButtonInfoW(
  4665.     HPHONE              hPhone,
  4666.     DWORD               dwButtonLampID,
  4667.     LPPHONEBUTTONINFO   lpButtonInfo
  4668.     );
  4669.  
  4670. #ifdef UNICODE
  4671. #define phoneGetButtonInfo phoneGetButtonInfoW
  4672. #else
  4673. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4674. #define phoneGetButtonInfo phoneGetButtonInfoA
  4675. #endif
  4676. #endif
  4677. #endif
  4678.  
  4679. LONG
  4680. WINAPI
  4681. phoneGetData(
  4682.     HPHONE              hPhone,
  4683.     DWORD               dwDataID,
  4684.     LPVOID              lpData,
  4685.     DWORD               dwSize
  4686.     );
  4687.  
  4688. LONG
  4689. WINAPI
  4690. phoneGetDevCaps(
  4691.     HPHONEAPP           hPhoneApp,
  4692.     DWORD               dwDeviceID,
  4693.     DWORD               dwAPIVersion,
  4694.     DWORD               dwExtVersion,
  4695.     LPPHONECAPS         lpPhoneCaps
  4696.     );
  4697.  
  4698. #if WIN32
  4699. LONG
  4700. WINAPI
  4701. phoneGetDevCapsA(
  4702.     HPHONEAPP           hPhoneApp,
  4703.     DWORD               dwDeviceID,
  4704.     DWORD               dwAPIVersion,
  4705.     DWORD               dwExtVersion,
  4706.     LPPHONECAPS         lpPhoneCaps
  4707.     );
  4708.  
  4709. LONG
  4710. WINAPI
  4711. phoneGetDevCapsW(
  4712.     HPHONEAPP           hPhoneApp,
  4713.     DWORD               dwDeviceID,
  4714.     DWORD               dwAPIVersion,
  4715.     DWORD               dwExtVersion,
  4716.     LPPHONECAPS         lpPhoneCaps
  4717.     );
  4718.  
  4719. #ifdef UNICODE
  4720. #define phoneGetDevCaps phoneGetDevCapsW
  4721. #else
  4722. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4723. #define phoneGetDevCaps phoneGetDevCapsA
  4724. #endif
  4725. #endif
  4726. #endif
  4727.  
  4728. LONG
  4729. WINAPI
  4730. phoneGetDisplay(
  4731.     HPHONE              hPhone,
  4732.     LPVARSTRING         lpDisplay
  4733.     );
  4734.  
  4735. LONG
  4736. WINAPI
  4737. phoneGetGain(
  4738.     HPHONE              hPhone,
  4739.     DWORD               dwHookSwitchDev,
  4740.     LPDWORD             lpdwGain
  4741.     );
  4742.  
  4743. LONG
  4744. WINAPI
  4745. phoneGetHookSwitch(
  4746.     HPHONE              hPhone,
  4747.     LPDWORD             lpdwHookSwitchDevs
  4748.     );
  4749.  
  4750. LONG
  4751. WINAPI
  4752. phoneGetIcon(
  4753.     DWORD               dwDeviceID,
  4754.     LPCSTR              lpszDeviceClass,
  4755.     LPHICON             lphIcon
  4756.     );
  4757.  
  4758. #if WIN32
  4759. LONG
  4760. WINAPI
  4761. phoneGetIconA(
  4762.     DWORD               dwDeviceID,
  4763.     LPCSTR              lpszDeviceClass,
  4764.     LPHICON             lphIcon
  4765.     );
  4766.  
  4767. LONG
  4768. WINAPI
  4769. phoneGetIconW(
  4770.     DWORD               dwDeviceID,
  4771.     LPCWSTR             lpszDeviceClass,
  4772.     LPHICON             lphIcon
  4773.     );
  4774.  
  4775. #ifdef UNICODE
  4776. #define phoneGetIcon phoneGetIconW
  4777. #else
  4778. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4779. #define phoneGetIcon phoneGetIconA
  4780. #endif
  4781. #endif
  4782. #endif
  4783.  
  4784. LONG
  4785. WINAPI
  4786. phoneGetID(
  4787.     HPHONE              hPhone,
  4788.     LPVARSTRING         lpDeviceID,
  4789.     LPCSTR              lpszDeviceClass
  4790.     );
  4791.  
  4792. #if WIN32
  4793. LONG
  4794. WINAPI
  4795. phoneGetIDA(
  4796.     HPHONE              hPhone,
  4797.     LPVARSTRING         lpDeviceID,
  4798.     LPCSTR              lpszDeviceClass
  4799.     );
  4800.  
  4801. LONG
  4802. WINAPI
  4803. phoneGetIDW(
  4804.     HPHONE              hPhone,
  4805.     LPVARSTRING         lpDeviceID,
  4806.     LPCWSTR             lpszDeviceClass
  4807.     );
  4808.  
  4809. #ifdef UNICODE
  4810. #define phoneGetID phoneGetIDW
  4811. #else
  4812. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4813. #define phoneGetID phoneGetIDA
  4814. #endif
  4815. #endif
  4816. #endif
  4817.  
  4818. LONG
  4819. WINAPI
  4820. phoneGetLamp(
  4821.     HPHONE              hPhone,
  4822.     DWORD               dwButtonLampID,
  4823.     LPDWORD             lpdwLampMode
  4824.     );
  4825.  
  4826. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4827. LONG
  4828. WINAPI
  4829. phoneGetMessage(                                                // TAPI v2.0
  4830.     HPHONEAPP       hPhoneApp,
  4831.     LPPHONEMESSAGE  lpMessage,
  4832.     DWORD           dwTimeout
  4833.     );
  4834. #endif
  4835.  
  4836. LONG
  4837. WINAPI
  4838. phoneGetRing(
  4839.     HPHONE              hPhone,
  4840.     LPDWORD             lpdwRingMode,
  4841.     LPDWORD             lpdwVolume
  4842.     );
  4843.  
  4844. LONG
  4845. WINAPI
  4846. phoneGetStatus(
  4847.     HPHONE              hPhone,
  4848.     LPPHONESTATUS       lpPhoneStatus
  4849.     );
  4850.  
  4851. #if WIN32
  4852. LONG
  4853. WINAPI
  4854. phoneGetStatusA(
  4855.     HPHONE              hPhone,
  4856.     LPPHONESTATUS       lpPhoneStatus
  4857.     );
  4858.  
  4859. LONG
  4860. WINAPI
  4861. phoneGetStatusW(
  4862.     HPHONE              hPhone,
  4863.     LPPHONESTATUS       lpPhoneStatus
  4864.     );
  4865.  
  4866.  
  4867. #ifdef UNICODE
  4868. #define phoneGetStatus phoneGetStatusW
  4869. #else
  4870. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4871. #define phoneGetStatus phoneGetStatusA
  4872. #endif
  4873. #endif
  4874. #endif
  4875.  
  4876. LONG
  4877. WINAPI
  4878. phoneGetStatusMessages(
  4879.     HPHONE              hPhone,
  4880.     LPDWORD             lpdwPhoneStates,
  4881.     LPDWORD             lpdwButtonModes,
  4882.     LPDWORD             lpdwButtonStates
  4883.     );
  4884.  
  4885. LONG
  4886. WINAPI
  4887. phoneGetVolume(
  4888.     HPHONE              hPhone,
  4889.     DWORD               dwHookSwitchDev,
  4890.     LPDWORD             lpdwVolume
  4891.     );
  4892.  
  4893. LONG
  4894. WINAPI
  4895. phoneInitialize(
  4896.     LPHPHONEAPP         lphPhoneApp,
  4897.     HINSTANCE           hInstance,
  4898.     PHONECALLBACK       lpfnCallback,
  4899.     LPCSTR              lpszAppName,
  4900.     LPDWORD             lpdwNumDevs
  4901.     );
  4902.  
  4903.  
  4904. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4905. LONG
  4906. WINAPI
  4907. phoneInitializeExA(                                              // TAPI v2.0
  4908.     LPHPHONEAPP                 lphPhoneApp,
  4909.     HINSTANCE                   hInstance,
  4910.     PHONECALLBACK               lpfnCallback,
  4911.     LPCSTR                      lpszFriendlyAppName,
  4912.     LPDWORD                     lpdwNumDevs,
  4913.     LPDWORD                     lpdwAPIVersion,
  4914.     LPPHONEINITIALIZEEXPARAMS   lpPhoneInitializeExParams
  4915.     );
  4916.  
  4917. LONG
  4918. WINAPI
  4919. phoneInitializeExW(                                              // TAPI v2.0
  4920.     LPHPHONEAPP                 lphPhoneApp,
  4921.     HINSTANCE                   hInstance,
  4922.     PHONECALLBACK               lpfnCallback,
  4923.     LPCWSTR                     lpszFriendlyAppName,
  4924.     LPDWORD                     lpdwNumDevs,
  4925.     LPDWORD                     lpdwAPIVersion,
  4926.     LPPHONEINITIALIZEEXPARAMS   lpPhoneInitializeExParams
  4927.     );
  4928.  
  4929. #ifdef UNICODE
  4930. #define phoneInitializeEx phoneInitializeExW
  4931. #else
  4932. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4933. #define phoneInitializeEx phoneInitializeExA
  4934. #endif
  4935. #endif
  4936. #endif
  4937.  
  4938. LONG
  4939. WINAPI
  4940. phoneNegotiateAPIVersion(
  4941.     HPHONEAPP           hPhoneApp,
  4942.     DWORD               dwDeviceID,
  4943.     DWORD               dwAPILowVersion,
  4944.     DWORD               dwAPIHighVersion,
  4945.     LPDWORD             lpdwAPIVersion,
  4946.     LPPHONEEXTENSIONID  lpExtensionID
  4947.     );
  4948.  
  4949. LONG
  4950. WINAPI
  4951. phoneNegotiateExtVersion(
  4952.     HPHONEAPP           hPhoneApp,
  4953.     DWORD               dwDeviceID,
  4954.     DWORD               dwAPIVersion,
  4955.     DWORD               dwExtLowVersion,
  4956.     DWORD               dwExtHighVersion,
  4957.     LPDWORD             lpdwExtVersion
  4958.     );
  4959.  
  4960. LONG
  4961. WINAPI
  4962. phoneOpen(
  4963.     HPHONEAPP           hPhoneApp,
  4964.     DWORD               dwDeviceID,
  4965.     LPHPHONE            lphPhone,
  4966.     DWORD               dwAPIVersion,
  4967.     DWORD               dwExtVersion,
  4968.     DWORD_PTR           dwCallbackInstance,
  4969.     DWORD               dwPrivilege
  4970.     );
  4971.  
  4972. LONG
  4973. WINAPI
  4974. phoneSetButtonInfo(
  4975.     HPHONE              hPhone,
  4976.     DWORD               dwButtonLampID,
  4977.     LPPHONEBUTTONINFO   const lpButtonInfo
  4978.     );
  4979.  
  4980. #if WIN32
  4981. LONG
  4982. WINAPI
  4983. phoneSetButtonInfoA(
  4984.     HPHONE              hPhone,
  4985.     DWORD               dwButtonLampID,
  4986.     LPPHONEBUTTONINFO   const lpButtonInfo
  4987.     );
  4988.  
  4989. LONG
  4990. WINAPI
  4991. phoneSetButtonInfoW(
  4992.     HPHONE              hPhone,
  4993.     DWORD               dwButtonLampID,
  4994.     LPPHONEBUTTONINFO   const lpButtonInfo
  4995.     );
  4996.  
  4997. #ifdef UNICODE
  4998. #define phoneSetButtonInfo phoneSetButtonInfoW
  4999. #else
  5000. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  5001. #define phoneSetButtonInfo phoneSetButtonInfoA
  5002. #endif
  5003. #endif
  5004. #endif
  5005.  
  5006. LONG
  5007. WINAPI
  5008. phoneSetData(
  5009.     HPHONE              hPhone,
  5010.     DWORD               dwDataID,
  5011.     LPVOID              const lpData,
  5012.     DWORD               dwSize
  5013.     );
  5014.  
  5015. LONG
  5016. WINAPI
  5017. phoneSetDisplay(
  5018.     HPHONE              hPhone,
  5019.     DWORD               dwRow,
  5020.     DWORD               dwColumn,
  5021.     LPCSTR              lpsDisplay,
  5022.     DWORD               dwSize
  5023.     );
  5024.  
  5025. LONG
  5026. WINAPI
  5027. phoneSetGain(
  5028.     HPHONE              hPhone,
  5029.     DWORD               dwHookSwitchDev,
  5030.     DWORD               dwGain
  5031.     );
  5032.  
  5033. LONG
  5034. WINAPI
  5035. phoneSetHookSwitch(
  5036.     HPHONE              hPhone,
  5037.     DWORD               dwHookSwitchDevs,
  5038.     DWORD               dwHookSwitchMode
  5039.     );
  5040.  
  5041. LONG
  5042. WINAPI
  5043. phoneSetLamp(
  5044.     HPHONE              hPhone,
  5045.     DWORD               dwButtonLampID,
  5046.     DWORD               dwLampMode
  5047.     );
  5048.  
  5049. LONG
  5050. WINAPI
  5051. phoneSetRing(
  5052.     HPHONE              hPhone,
  5053.     DWORD               dwRingMode,
  5054.     DWORD               dwVolume
  5055.     );
  5056.  
  5057. LONG
  5058. WINAPI
  5059. phoneSetStatusMessages(
  5060.     HPHONE              hPhone,
  5061.     DWORD               dwPhoneStates,
  5062.     DWORD               dwButtonModes,
  5063.     DWORD               dwButtonStates
  5064.     );
  5065.  
  5066. LONG
  5067. WINAPI
  5068. phoneSetVolume(
  5069.     HPHONE              hPhone,
  5070.     DWORD               dwHookSwitchDev,
  5071.     DWORD               dwVolume
  5072.     );
  5073.  
  5074. LONG
  5075. WINAPI
  5076. phoneShutdown(
  5077.     HPHONEAPP           hPhoneApp
  5078.     );
  5079.  
  5080.  
  5081.  
  5082. LONG
  5083. WINAPI
  5084. tapiGetLocationInfo(
  5085.     LPSTR               lpszCountryCode,
  5086.     LPSTR               lpszCityCode
  5087.     );
  5088.  
  5089. #if WIN32
  5090. LONG
  5091. WINAPI
  5092. tapiGetLocationInfoA(
  5093.     LPSTR               lpszCountryCode,
  5094.     LPSTR               lpszCityCode
  5095.     );
  5096.  
  5097. LONG
  5098. WINAPI
  5099. tapiGetLocationInfoW(
  5100.     LPWSTR               lpszCountryCodeW,
  5101.     LPWSTR               lpszCityCodeW
  5102.     );
  5103.  
  5104. #ifdef UNICODE
  5105. #define tapiGetLocationInfo tapiGetLocationInfoW
  5106. #else
  5107. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  5108. #define tapiGetLocationInfo tapiGetLocationInfoA
  5109. #endif
  5110. #endif
  5111. #endif
  5112.  
  5113. LONG
  5114. WINAPI
  5115. tapiRequestDrop(
  5116.     HWND                hwnd,
  5117.     WPARAM              wRequestID
  5118.     );
  5119.  
  5120. LONG
  5121. WINAPI
  5122. tapiRequestMakeCall(
  5123.     LPCSTR              lpszDestAddress,
  5124.     LPCSTR              lpszAppName,
  5125.     LPCSTR              lpszCalledParty,
  5126.     LPCSTR              lpszComment
  5127.     );
  5128.  
  5129. #if WIN32
  5130. LONG
  5131. WINAPI
  5132. tapiRequestMakeCallA(
  5133.     LPCSTR              lpszDestAddress,
  5134.     LPCSTR              lpszAppName,
  5135.     LPCSTR              lpszCalledParty,
  5136.     LPCSTR              lpszComment
  5137.     );
  5138.  
  5139. LONG
  5140. WINAPI
  5141. tapiRequestMakeCallW(
  5142.     LPCWSTR              lpszDestAddress,
  5143.     LPCWSTR              lpszAppName,
  5144.     LPCWSTR              lpszCalledParty,
  5145.     LPCWSTR              lpszComment
  5146.     );
  5147.  
  5148. #ifdef UNICODE
  5149. #define tapiRequestMakeCall tapiRequestMakeCallW
  5150. #else
  5151. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  5152. #define tapiRequestMakeCall tapiRequestMakeCallA
  5153. #endif
  5154. #endif
  5155. #endif
  5156.  
  5157. LONG
  5158. WINAPI
  5159. tapiRequestMediaCall(
  5160.     HWND                hwnd,
  5161.     WPARAM              wRequestID,
  5162.     LPCSTR              lpszDeviceClass,
  5163.     LPCSTR              lpDeviceID,
  5164.     DWORD               dwSize,
  5165.     DWORD               dwSecure,
  5166.     LPCSTR              lpszDestAddress,
  5167.     LPCSTR              lpszAppName,
  5168.     LPCSTR              lpszCalledParty,
  5169.     LPCSTR              lpszComment
  5170.     );
  5171.  
  5172. #if WIN32
  5173. LONG
  5174. WINAPI
  5175. tapiRequestMediaCallA(
  5176.     HWND                hwnd,
  5177.     WPARAM              wRequestID,
  5178.     LPCSTR              lpszDeviceClass,
  5179.     LPCSTR              lpDeviceID,
  5180.     DWORD               dwSize,
  5181.     DWORD               dwSecure,
  5182.     LPCSTR              lpszDestAddress,
  5183.     LPCSTR              lpszAppName,
  5184.     LPCSTR              lpszCalledParty,
  5185.     LPCSTR              lpszComment
  5186.     );
  5187.  
  5188. LONG
  5189. WINAPI
  5190. tapiRequestMediaCallW(
  5191.     HWND                hwnd,
  5192.     WPARAM              wRequestID,
  5193.     LPCWSTR             lpszDeviceClass,
  5194.     LPCWSTR             lpDeviceID,
  5195.     DWORD               dwSize,
  5196.     DWORD               dwSecure,
  5197.     LPCWSTR             lpszDestAddress,
  5198.     LPCWSTR             lpszAppName,
  5199.     LPCWSTR             lpszCalledParty,
  5200.     LPCWSTR             lpszComment
  5201.     );
  5202.  
  5203. #ifdef UNICODE
  5204. #define tapiRequestMediaCall tapiRequestMediaCallW
  5205. #else
  5206. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  5207. #define tapiRequestMediaCall tapiRequestMediaCallA
  5208. #endif
  5209. #endif
  5210. #endif
  5211.  
  5212. /*
  5213.  
  5214. TAPIERROR_FORMATMESSAGE - macro to convert a TAPI error constant
  5215.     into a constant that FormatMessage will accept
  5216.  
  5217.         TAPIERR : Negative numbers and 0
  5218.             Map to : strip off high WORD
  5219.             Example: 0xFFFFFFFF (-1) becomes 0x0000FFFF
  5220.         LINEERR : Start at 0x80000000
  5221.             Map to : strip off 0x80000000 and add 0xE000
  5222.             Example: 0x80000004 becomes 0x0000E004
  5223.         PHONEERR: Start at 0x90000000
  5224.             Map to : strip off 0x90000000 and add 0xF000
  5225.             Example: 0x9000000A becomes 0x0000F00A
  5226.  
  5227.         pseudocode:
  5228.  
  5229.         if (__ErrCode__ is a TAPIERR)
  5230.             strip off high word
  5231.  
  5232.             else if (__ErrCode__ is a PHONEERR)
  5233.                 strip off 0x90000000
  5234.                 add 0xE000
  5235.  
  5236.                 else
  5237.                     strip off 0x80000000
  5238.                     add 0xF000
  5239.  
  5240. */
  5241.  
  5242. #define TAPIERROR_FORMATMESSAGE(__ErrCode__)                                                   \
  5243.                                                                                                \
  5244.                     ( ( (__ErrCode__) > 0xFFFF0000 ) ?                                         \
  5245.                                                                                                \
  5246.                             ( (__ErrCode__) & 0x0000FFFF ) :                                   \
  5247.                                                                                                \
  5248.                             ( ( (__ErrCode__) & 0x10000000 ) ?                                 \
  5249.                                                                                                \
  5250.                               ( (__ErrCode__) - 0x90000000 + 0xF000 ) :                        \
  5251.                                                                                                \
  5252.                               ( (__ErrCode__) - 0x80000000 + 0xE000 ) ) )
  5253.  
  5254.  
  5255.  
  5256. #ifdef __cplusplus
  5257. }                       /* End of extern "C" { */
  5258. #endif  /* __cplusplus */
  5259.  
  5260. #pragma pack()
  5261.  
  5262. #pragma option pop /*P_O_Pop*/
  5263. #endif // TAPI_H
  5264.