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