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