Tapi.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:171k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /*++ BUILD Version: 0000    // Increment this if a change has global effects
  2. The  Telephony  API  is jointly copyrighted by Intel and Microsoft.  You are
  3. granted  a royalty free worldwide, unlimited license to make copies, and use
  4. the   API/SPI  for  making  applications/drivers  that  interface  with  the
  5. specification provided that this paragraph and the Intel/Microsoft copyright
  6. statement is maintained as is in the text and source code files.
  7. Copyright (c) Microsoft Corporation, All rights reserved.
  8. Portions copyright 1992, 1993 Intel/Microsoft, all rights reserved.
  9. Module Name:
  10.     tapi.h
  11. Notes:
  12.     Additions to the Telephony Application Programming Interface (TAPI) since
  13.     version 1.0 are noted by version number (e.g. "TAPI v1.4").
  14. --*/
  15. #ifndef TAPI_H
  16. #define TAPI_H
  17. //
  18. //  -- TAPI VERSION INFO -- TAPI VERSION INFO -- TAPI VERSION INFO --
  19. //
  20. // To build  a TAPI 1.4 application put a define as below in your source
  21. // file before you include TAPI.H:
  22. //
  23. // #define TAPI_CURRENT_VERSION 0x00010004
  24. //
  25. //
  26. #ifndef TAPI_CURRENT_VERSION
  27. #define TAPI_CURRENT_VERSION 0x00020002
  28. #endif
  29. #include <windows.h>
  30. #if WIN32
  31. #include <basetsd.h>
  32. #endif
  33. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  34. #include <oaidl.h>
  35. #endif
  36. #pragma pack(1)
  37. // Type definitions of the data types used in tapi
  38. #ifdef __cplusplus
  39. extern "C" {            /* Assume C declarations for C++ */
  40. #endif  /* __cplusplus */
  41. //
  42. // TAPI type definitions
  43. //
  44. #define DECLARE_OPAQUE32(name)  typedef DWORD name
  45. DECLARE_OPAQUE32(HCALL);
  46. typedef HCALL FAR * LPHCALL;
  47. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  48. DECLARE_OPAQUE32(HCALLHUB);                                     // TAPI v3.0
  49. typedef HCALLHUB FAR * LPHCALLHUB;                              // TAPI v3.0
  50. #endif
  51. DECLARE_OPAQUE32(HLINE);
  52. typedef HLINE FAR * LPHLINE;
  53. DECLARE_OPAQUE32(HPHONE);
  54. typedef HPHONE FAR * LPHPHONE;
  55. DECLARE_OPAQUE32(HLINEAPP);
  56. typedef HLINEAPP FAR * LPHLINEAPP;
  57. DECLARE_OPAQUE32(HPHONEAPP);
  58. typedef HPHONEAPP FAR * LPHPHONEAPP;
  59. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  60. DECLARE_OPAQUE32(HAGENTSESSION);                                // TAPI v2.2
  61. typedef HAGENTSESSION FAR * LPHAGENTSESSION;                    // TAPI v2.2
  62. DECLARE_OPAQUE32(HAGENT);                                       // TAPI v2.2
  63. typedef HAGENT FAR * LPHAGENT;                                  // TAPI v2.2
  64. #endif
  65. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  66. DECLARE_OPAQUE32(HPRIVATECHANNEL);                              // TAPI v3.0
  67. typedef HPRIVATECHANNEL FAR * LPHPRIVATECHANNEL;                // TAPI v3.0
  68. #endif
  69. typedef HICON FAR * LPHICON;
  70. typedef void (CALLBACK * LINECALLBACK)(
  71.     DWORD               hDevice,
  72.     DWORD               dwMessage,
  73.     DWORD_PTR           dwInstance,
  74.     DWORD_PTR           dwParam1,
  75.     DWORD_PTR           dwParam2,
  76.     DWORD_PTR           dwParam3
  77.     );
  78. typedef void (CALLBACK * PHONECALLBACK)(
  79.     DWORD               hDevice,
  80.     DWORD               dwMessage,
  81.     DWORD_PTR           dwInstance,
  82.     DWORD_PTR           dwParam1,
  83.     DWORD_PTR           dwParam2,
  84.     DWORD_PTR           dwParam3
  85.     );
  86. // Messages for Phones and Lines
  87. #define LINE_ADDRESSSTATE                       0L
  88. #define LINE_CALLINFO                           1L
  89. #define LINE_CALLSTATE                          2L
  90. #define LINE_CLOSE                              3L
  91. #define LINE_DEVSPECIFIC                        4L
  92. #define LINE_DEVSPECIFICFEATURE                 5L
  93. #define LINE_GATHERDIGITS                       6L
  94. #define LINE_GENERATE                           7L
  95. #define LINE_LINEDEVSTATE                       8L
  96. #define LINE_MONITORDIGITS                      9L
  97. #define LINE_MONITORMEDIA                       10L
  98. #define LINE_MONITORTONE                        11L
  99. #define LINE_REPLY                              12L
  100. #define LINE_REQUEST                            13L
  101. #define PHONE_BUTTON                            14L
  102. #define PHONE_CLOSE                             15L
  103. #define PHONE_DEVSPECIFIC                       16L
  104. #define PHONE_REPLY                             17L
  105. #define PHONE_STATE                             18L
  106. #define LINE_CREATE                             19L             // TAPI v1.4
  107. #define PHONE_CREATE                            20L             // TAPI v1.4
  108. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  109. #define LINE_AGENTSPECIFIC                      21L             // TAPI v2.0
  110. #define LINE_AGENTSTATUS                        22L             // TAPI v2.0
  111. #define LINE_APPNEWCALL                         23L             // TAPI v2.0
  112. #define LINE_PROXYREQUEST                       24L             // TAPI v2.0
  113. #define LINE_REMOVE                             25L             // TAPI v2.0
  114. #define PHONE_REMOVE                            26L             // TAPI v2.0
  115. #endif
  116. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  117. #define LINE_AGENTSESSIONSTATUS                 27L             // TAPI v2.2
  118. #define LINE_QUEUESTATUS                        28L             // TAPI v2.2
  119. #define LINE_AGENTSTATUSEX                      29L             // TAPI v2.2
  120. #define LINE_GROUPSTATUS                        30L             // TAPI v2.2
  121. #define LINE_PROXYSTATUS                        31L             // TAPI v2.2
  122. #endif
  123. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  124. #define LINE_APPNEWCALLHUB                      32L             // TAPI v3.0
  125. #define LINE_CALLHUBCLOSE                       33L             // TAPI v3.0
  126. #define LINE_DEVSPECIFICEX                      34L             // TAPI v3.0
  127. #endif
  128. #define INITIALIZE_NEGOTIATION                  0xFFFFFFFFUL
  129. #define LINEADDRCAPFLAGS_FWDNUMRINGS            0x00000001
  130. #define LINEADDRCAPFLAGS_PICKUPGROUPID          0x00000002
  131. #define LINEADDRCAPFLAGS_SECURE                 0x00000004
  132. #define LINEADDRCAPFLAGS_BLOCKIDDEFAULT         0x00000008
  133. #define LINEADDRCAPFLAGS_BLOCKIDOVERRIDE        0x00000010
  134. #define LINEADDRCAPFLAGS_DIALED                 0x00000020
  135. #define LINEADDRCAPFLAGS_ORIGOFFHOOK            0x00000040
  136. #define LINEADDRCAPFLAGS_DESTOFFHOOK            0x00000080
  137. #define LINEADDRCAPFLAGS_FWDCONSULT             0x00000100
  138. #define LINEADDRCAPFLAGS_SETUPCONFNULL          0x00000200
  139. #define LINEADDRCAPFLAGS_AUTORECONNECT          0x00000400
  140. #define LINEADDRCAPFLAGS_COMPLETIONID           0x00000800
  141. #define LINEADDRCAPFLAGS_TRANSFERHELD           0x00001000
  142. #define LINEADDRCAPFLAGS_TRANSFERMAKE           0x00002000
  143. #define LINEADDRCAPFLAGS_CONFERENCEHELD         0x00004000
  144. #define LINEADDRCAPFLAGS_CONFERENCEMAKE         0x00008000
  145. #define LINEADDRCAPFLAGS_PARTIALDIAL            0x00010000
  146. #define LINEADDRCAPFLAGS_FWDSTATUSVALID         0x00020000
  147. #define LINEADDRCAPFLAGS_FWDINTEXTADDR          0x00040000
  148. #define LINEADDRCAPFLAGS_FWDBUSYNAADDR          0x00080000
  149. #define LINEADDRCAPFLAGS_ACCEPTTOALERT          0x00100000
  150. #define LINEADDRCAPFLAGS_CONFDROP               0x00200000
  151. #define LINEADDRCAPFLAGS_PICKUPCALLWAIT         0x00400000
  152. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  153. #define LINEADDRCAPFLAGS_PREDICTIVEDIALER       0x00800000      // TAPI v2.0
  154. #define LINEADDRCAPFLAGS_QUEUE                  0x01000000      // TAPI v2.0
  155. #define LINEADDRCAPFLAGS_ROUTEPOINT             0x02000000      // TAPI v2.0
  156. #define LINEADDRCAPFLAGS_HOLDMAKESNEW           0x04000000      // TAPI v2.0
  157. #define LINEADDRCAPFLAGS_NOINTERNALCALLS        0x08000000      // TAPI v2.0
  158. #define LINEADDRCAPFLAGS_NOEXTERNALCALLS        0x10000000      // TAPI v2.0
  159. #define LINEADDRCAPFLAGS_SETCALLINGID           0x20000000      // TAPI v2.0
  160. #endif
  161. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  162. #define LINEADDRCAPFLAGS_ACDGROUP               0x40000000      // TAPI v2.2
  163. #endif
  164. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  165. #define LINEADDRCAPFLAGS_NOPSTNADDRESSTRANSLATION 0x80000000    // TAPI v3.0
  166. #endif
  167. #define LINEADDRESSMODE_ADDRESSID               0x00000001
  168. #define LINEADDRESSMODE_DIALABLEADDR            0x00000002
  169. #define LINEADDRESSSHARING_PRIVATE              0x00000001
  170. #define LINEADDRESSSHARING_BRIDGEDEXCL          0x00000002
  171. #define LINEADDRESSSHARING_BRIDGEDNEW           0x00000004
  172. #define LINEADDRESSSHARING_BRIDGEDSHARED        0x00000008
  173. #define LINEADDRESSSHARING_MONITORED            0x00000010
  174. #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. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  184. #define LINEADDRESSTYPE_PHONENUMBER             0x00000001
  185. #define LINEADDRESSTYPE_SDP                     0x00000002
  186. #define LINEADDRESSTYPE_EMAILNAME               0x00000004
  187. #define LINEADDRESSTYPE_DOMAINNAME              0x00000008
  188. #define LINEADDRESSTYPE_IPADDRESS               0x00000010
  189. #endif
  190. #define LINEADDRFEATURE_FORWARD                 0x00000001
  191. #define LINEADDRFEATURE_MAKECALL                0x00000002
  192. #define LINEADDRFEATURE_PICKUP                  0x00000004
  193. #define LINEADDRFEATURE_SETMEDIACONTROL         0x00000008
  194. #define LINEADDRFEATURE_SETTERMINAL             0x00000010
  195. #define LINEADDRFEATURE_SETUPCONF               0x00000020
  196. #define LINEADDRFEATURE_UNCOMPLETECALL          0x00000040
  197. #define LINEADDRFEATURE_UNPARK                  0x00000080
  198. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  199. #define LINEADDRFEATURE_PICKUPHELD              0x00000100      // TAPI v2.0
  200. #define LINEADDRFEATURE_PICKUPGROUP             0x00000200      // TAPI v2.0
  201. #define LINEADDRFEATURE_PICKUPDIRECT            0x00000400      // TAPI v2.0
  202. #define LINEADDRFEATURE_PICKUPWAITING           0x00000800      // TAPI v2.0
  203. #define LINEADDRFEATURE_FORWARDFWD              0x00001000      // TAPI v2.0
  204. #define LINEADDRFEATURE_FORWARDDND              0x00002000      // TAPI v2.0
  205. #endif
  206. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  207. #define LINEAGENTFEATURE_SETAGENTGROUP          0x00000001      // TAPI v2.0
  208. #define LINEAGENTFEATURE_SETAGENTSTATE          0x00000002      // TAPI v2.0
  209. #define LINEAGENTFEATURE_SETAGENTACTIVITY       0x00000004      // TAPI v2.0
  210. #define LINEAGENTFEATURE_AGENTSPECIFIC          0x00000008      // TAPI v2.0
  211. #define LINEAGENTFEATURE_GETAGENTACTIVITYLIST   0x00000010      // TAPI v2.0
  212. #define LINEAGENTFEATURE_GETAGENTGROUP          0x00000020      // TAPI v2.0
  213. #define LINEAGENTSTATE_LOGGEDOFF                0x00000001      // TAPI v2.0
  214. #define LINEAGENTSTATE_NOTREADY                 0x00000002      // TAPI v2.0
  215. #define LINEAGENTSTATE_READY                    0x00000004      // TAPI v2.0
  216. #define LINEAGENTSTATE_BUSYACD                  0x00000008      // TAPI v2.0
  217. #define LINEAGENTSTATE_BUSYINCOMING             0x00000010      // TAPI v2.0
  218. #define LINEAGENTSTATE_BUSYOUTBOUND             0x00000020      // TAPI v2.0
  219. #define LINEAGENTSTATE_BUSYOTHER                0x00000040      // TAPI v2.0
  220. #define LINEAGENTSTATE_WORKINGAFTERCALL         0x00000080      // TAPI v2.0
  221. #define LINEAGENTSTATE_UNKNOWN                  0x00000100      // TAPI v2.0
  222. #define LINEAGENTSTATE_UNAVAIL                  0x00000200      // TAPI v2.0
  223. #define LINEAGENTSTATUS_GROUP                   0x00000001      // TAPI v2.0
  224. #define LINEAGENTSTATUS_STATE                   0x00000002      // TAPI v2.0
  225. #define LINEAGENTSTATUS_NEXTSTATE               0x00000004      // TAPI v2.0
  226. #define LINEAGENTSTATUS_ACTIVITY                0x00000008      // TAPI v2.0
  227. #define LINEAGENTSTATUS_ACTIVITYLIST            0x00000010      // TAPI v2.0
  228. #define LINEAGENTSTATUS_GROUPLIST               0x00000020      // TAPI v2.0
  229. #define LINEAGENTSTATUS_CAPSCHANGE              0x00000040      // TAPI v2.0
  230. #define LINEAGENTSTATUS_VALIDSTATES             0x00000080      // TAPI v2.0
  231. #define LINEAGENTSTATUS_VALIDNEXTSTATES         0x00000100      // TAPI v2.0
  232. #endif
  233. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  234. #define LINEAGENTSTATEEX_NOTREADY               0x00000001      // TAPI v2.2
  235. #define LINEAGENTSTATEEX_READY                  0x00000002      // TAPI v2.2
  236. #define LINEAGENTSTATEEX_BUSYACD                0x00000004      // TAPI v2.2
  237. #define LINEAGENTSTATEEX_BUSYINCOMING           0x00000008      // TAPI v2.2
  238. #define LINEAGENTSTATEEX_BUSYOUTGOING           0x00000010      // TAPI v2.2
  239. #define LINEAGENTSTATEEX_UNKNOWN                0x00000020      // TAPI v2.2
  240. #define LINEAGENTSTATEEX_RELEASED               0x00000040      // TAPI v2.2
  241. #define LINEAGENTSTATUSEX_NEWAGENT              0x00000001      // TAPI v2.2
  242. #define LINEAGENTSTATUSEX_STATE                 0x00000002      // TAPI v2.2
  243. #define LINEAGENTSTATUSEX_UPDATEINFO            0x00000004      // TAPI v2.2
  244. //#define LINEAGENTSTATUSEX_DESTROYED             0x00000004      // TAPI v2.2
  245. #define LINEAGENTSESSIONSTATE_NOTREADY          0x00000001      // TAPI v2.2
  246. #define LINEAGENTSESSIONSTATE_READY             0x00000002      // TAPI v2.2
  247. #define LINEAGENTSESSIONSTATE_BUSYONCALL        0x00000004      // TAPI v2.2
  248. #define LINEAGENTSESSIONSTATE_BUSYWRAPUP        0x00000008      // TAPI v2.2
  249. #define LINEAGENTSESSIONSTATE_ENDED             0x00000010      // TAPI v2.2
  250. #define LINEAGENTSESSIONSTATE_RELEASED          0x00000020      // TAPI v2.2
  251. #define LINEAGENTSESSIONSTATUS_NEWSESSION       0x00000001      // TAPI v2.2
  252. #define LINEAGENTSESSIONSTATUS_STATE            0x00000002      // TAPI v2.2
  253. #define LINEAGENTSESSIONSTATUS_UPDATEINFO       0x00000004      // TAPI v2.2
  254. //#define LINEAGENTSESSIONSTATUS_DESTROYED        0x00000008      // TAPI v2.2
  255. #define LINEQUEUESTATUS_UPDATEINFO              0x00000001      // TAPI v2.2
  256. #define LINEQUEUESTATUS_NEWQUEUE                0x00000002      // TAPI v2.2
  257. #define LINEQUEUESTATUS_QUEUEREMOVED            0x00000004      // TAPI v2.2
  258. #define LINEGROUPSTATUS_NEWGROUP                0x00000001      // TAPI v2.2
  259. #define LINEGROUPSTATUS_GROUPREMOVED            0x00000002      // TAPI v2.2
  260. #define LINEPROXYSTATUS_OPEN                    0x00000001      // TAPI v2.2
  261. #define LINEPROXYSTATUS_CLOSE                   0x00000002      // TAPI v2.2
  262. #define LINEPROXYSTATUS_ALLOPENFORACD           0x00000004      // TAPI v2.2
  263. #endif
  264. #define LINEANSWERMODE_NONE                     0x00000001
  265. #define LINEANSWERMODE_DROP                     0x00000002
  266. #define LINEANSWERMODE_HOLD                     0x00000004
  267. #define LINEBEARERMODE_VOICE                    0x00000001
  268. #define LINEBEARERMODE_SPEECH                   0x00000002
  269. #define LINEBEARERMODE_MULTIUSE                 0x00000004
  270. #define LINEBEARERMODE_DATA                     0x00000008
  271. #define LINEBEARERMODE_ALTSPEECHDATA            0x00000010
  272. #define LINEBEARERMODE_NONCALLSIGNALING         0x00000020
  273. #define LINEBEARERMODE_PASSTHROUGH              0x00000040      // TAPI v1.4
  274. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  275. #define LINEBEARERMODE_RESTRICTEDDATA           0x00000080      // TAPI v2.0
  276. #endif
  277. #define LINEBUSYMODE_STATION                    0x00000001
  278. #define LINEBUSYMODE_TRUNK                      0x00000002
  279. #define LINEBUSYMODE_UNKNOWN                    0x00000004
  280. #define LINEBUSYMODE_UNAVAIL                    0x00000008
  281. #define LINECALLCOMPLCOND_BUSY                  0x00000001
  282. #define LINECALLCOMPLCOND_NOANSWER              0x00000002
  283. #define LINECALLCOMPLMODE_CAMPON                0x00000001
  284. #define LINECALLCOMPLMODE_CALLBACK              0x00000002
  285. #define LINECALLCOMPLMODE_INTRUDE               0x00000004
  286. #define LINECALLCOMPLMODE_MESSAGE               0x00000008
  287. #define LINECALLFEATURE_ACCEPT                  0x00000001
  288. #define LINECALLFEATURE_ADDTOCONF               0x00000002
  289. #define LINECALLFEATURE_ANSWER                  0x00000004
  290. #define LINECALLFEATURE_BLINDTRANSFER           0x00000008
  291. #define LINECALLFEATURE_COMPLETECALL            0x00000010
  292. #define LINECALLFEATURE_COMPLETETRANSF          0x00000020
  293. #define LINECALLFEATURE_DIAL                    0x00000040
  294. #define LINECALLFEATURE_DROP                    0x00000080
  295. #define LINECALLFEATURE_GATHERDIGITS            0x00000100
  296. #define LINECALLFEATURE_GENERATEDIGITS          0x00000200
  297. #define LINECALLFEATURE_GENERATETONE            0x00000400
  298. #define LINECALLFEATURE_HOLD                    0x00000800
  299. #define LINECALLFEATURE_MONITORDIGITS           0x00001000
  300. #define LINECALLFEATURE_MONITORMEDIA            0x00002000
  301. #define LINECALLFEATURE_MONITORTONES            0x00004000
  302. #define LINECALLFEATURE_PARK                    0x00008000
  303. #define LINECALLFEATURE_PREPAREADDCONF          0x00010000
  304. #define LINECALLFEATURE_REDIRECT                0x00020000
  305. #define LINECALLFEATURE_REMOVEFROMCONF          0x00040000
  306. #define LINECALLFEATURE_SECURECALL              0x00080000
  307. #define LINECALLFEATURE_SENDUSERUSER            0x00100000
  308. #define LINECALLFEATURE_SETCALLPARAMS           0x00200000
  309. #define LINECALLFEATURE_SETMEDIACONTROL         0x00400000
  310. #define LINECALLFEATURE_SETTERMINAL             0x00800000
  311. #define LINECALLFEATURE_SETUPCONF               0x01000000
  312. #define LINECALLFEATURE_SETUPTRANSFER           0x02000000
  313. #define LINECALLFEATURE_SWAPHOLD                0x04000000
  314. #define LINECALLFEATURE_UNHOLD                  0x08000000
  315. #define LINECALLFEATURE_RELEASEUSERUSERINFO     0x10000000      // TAPI v1.4
  316. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  317. #define LINECALLFEATURE_SETTREATMENT            0x20000000      // TAPI v2.0
  318. #define LINECALLFEATURE_SETQOS                  0x40000000      // TAPI v2.0
  319. #define LINECALLFEATURE_SETCALLDATA             0x80000000      // TAPI v2.0
  320. #endif
  321. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  322. #define LINECALLFEATURE2_NOHOLDCONFERENCE       0x00000001      // TAPI v2.0
  323. #define LINECALLFEATURE2_ONESTEPTRANSFER        0x00000002      // TAPI v2.0
  324. #define LINECALLFEATURE2_COMPLCAMPON            0x00000004      // TAPI v2.0
  325. #define LINECALLFEATURE2_COMPLCALLBACK          0x00000008      // TAPI v2.0
  326. #define LINECALLFEATURE2_COMPLINTRUDE           0x00000010      // TAPI v2.0
  327. #define LINECALLFEATURE2_COMPLMESSAGE           0x00000020      // TAPI v2.0
  328. #define LINECALLFEATURE2_TRANSFERNORM           0x00000040      // TAPI v2.0
  329. #define LINECALLFEATURE2_TRANSFERCONF           0x00000080      // TAPI v2.0
  330. #define LINECALLFEATURE2_PARKDIRECT             0x00000100      // TAPI v2.0
  331. #define LINECALLFEATURE2_PARKNONDIRECT          0x00000200      // TAPI v2.0
  332. #endif
  333. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  334. #define LINECALLHUBTRACKING_NONE                0x00000000      // TAPI v3.0
  335. #define LINECALLHUBTRACKING_PROVIDERLEVEL       0x00000001      // TAPI v3.0
  336. #define LINECALLHUBTRACKING_ALLCALLS            0x00000002      // TAPI v3.0
  337. #endif
  338. #define LINECALLINFOSTATE_OTHER                 0x00000001
  339. #define LINECALLINFOSTATE_DEVSPECIFIC           0x00000002
  340. #define LINECALLINFOSTATE_BEARERMODE            0x00000004
  341. #define LINECALLINFOSTATE_RATE                  0x00000008
  342. #define LINECALLINFOSTATE_MEDIAMODE             0x00000010
  343. #define LINECALLINFOSTATE_APPSPECIFIC           0x00000020
  344. #define LINECALLINFOSTATE_CALLID                0x00000040
  345. #define LINECALLINFOSTATE_RELATEDCALLID         0x00000080
  346. #define LINECALLINFOSTATE_ORIGIN                0x00000100
  347. #define LINECALLINFOSTATE_REASON                0x00000200
  348. #define LINECALLINFOSTATE_COMPLETIONID          0x00000400
  349. #define LINECALLINFOSTATE_NUMOWNERINCR          0x00000800
  350. #define LINECALLINFOSTATE_NUMOWNERDECR          0x00001000
  351. #define LINECALLINFOSTATE_NUMMONITORS           0x00002000
  352. #define LINECALLINFOSTATE_TRUNK                 0x00004000
  353. #define LINECALLINFOSTATE_CALLERID              0x00008000
  354. #define LINECALLINFOSTATE_CALLEDID              0x00010000
  355. #define LINECALLINFOSTATE_CONNECTEDID           0x00020000
  356. #define LINECALLINFOSTATE_REDIRECTIONID         0x00040000
  357. #define LINECALLINFOSTATE_REDIRECTINGID         0x00080000
  358. #define LINECALLINFOSTATE_DISPLAY               0x00100000
  359. #define LINECALLINFOSTATE_USERUSERINFO          0x00200000
  360. #define LINECALLINFOSTATE_HIGHLEVELCOMP         0x00400000
  361. #define LINECALLINFOSTATE_LOWLEVELCOMP          0x00800000
  362. #define LINECALLINFOSTATE_CHARGINGINFO          0x01000000
  363. #define LINECALLINFOSTATE_TERMINAL              0x02000000
  364. #define LINECALLINFOSTATE_DIALPARAMS            0x04000000
  365. #define LINECALLINFOSTATE_MONITORMODES          0x08000000
  366. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  367. #define LINECALLINFOSTATE_TREATMENT             0x10000000      // TAPI v2.0
  368. #define LINECALLINFOSTATE_QOS                   0x20000000      // TAPI v2.0
  369. #define LINECALLINFOSTATE_CALLDATA              0x40000000      // TAPI v2.0
  370. #endif
  371. #define LINECALLORIGIN_OUTBOUND                 0x00000001
  372. #define LINECALLORIGIN_INTERNAL                 0x00000002
  373. #define LINECALLORIGIN_EXTERNAL                 0x00000004
  374. #define LINECALLORIGIN_UNKNOWN                  0x00000010
  375. #define LINECALLORIGIN_UNAVAIL                  0x00000020
  376. #define LINECALLORIGIN_CONFERENCE               0x00000040
  377. #define LINECALLORIGIN_INBOUND                  0x00000080      // TAPI v1.4
  378. #define LINECALLPARAMFLAGS_SECURE               0x00000001
  379. #define LINECALLPARAMFLAGS_IDLE                 0x00000002
  380. #define LINECALLPARAMFLAGS_BLOCKID              0x00000004
  381. #define LINECALLPARAMFLAGS_ORIGOFFHOOK          0x00000008
  382. #define LINECALLPARAMFLAGS_DESTOFFHOOK          0x00000010
  383. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  384. #define LINECALLPARAMFLAGS_NOHOLDCONFERENCE     0x00000020      // TAPI v2.0
  385. #define LINECALLPARAMFLAGS_PREDICTIVEDIAL       0x00000040      // TAPI v2.0
  386. #define LINECALLPARAMFLAGS_ONESTEPTRANSFER      0x00000080      // TAPI v2.0
  387. #endif
  388. #define LINECALLPARTYID_BLOCKED                 0x00000001
  389. #define LINECALLPARTYID_OUTOFAREA               0x00000002
  390. #define LINECALLPARTYID_NAME                    0x00000004
  391. #define LINECALLPARTYID_ADDRESS                 0x00000008
  392. #define LINECALLPARTYID_PARTIAL                 0x00000010
  393. #define LINECALLPARTYID_UNKNOWN                 0x00000020
  394. #define LINECALLPARTYID_UNAVAIL                 0x00000040
  395. #define LINECALLPRIVILEGE_NONE                  0x00000001
  396. #define LINECALLPRIVILEGE_MONITOR               0x00000002
  397. #define LINECALLPRIVILEGE_OWNER                 0x00000004
  398. #define LINECALLREASON_DIRECT                   0x00000001
  399. #define LINECALLREASON_FWDBUSY                  0x00000002
  400. #define LINECALLREASON_FWDNOANSWER              0x00000004
  401. #define LINECALLREASON_FWDUNCOND                0x00000008
  402. #define LINECALLREASON_PICKUP                   0x00000010
  403. #define LINECALLREASON_UNPARK                   0x00000020
  404. #define LINECALLREASON_REDIRECT                 0x00000040
  405. #define LINECALLREASON_CALLCOMPLETION           0x00000080
  406. #define LINECALLREASON_TRANSFER                 0x00000100
  407. #define LINECALLREASON_REMINDER                 0x00000200
  408. #define LINECALLREASON_UNKNOWN                  0x00000400
  409. #define LINECALLREASON_UNAVAIL                  0x00000800
  410. #define LINECALLREASON_INTRUDE                  0x00001000      // TAPI v1.4
  411. #define LINECALLREASON_PARKED                   0x00002000      // TAPI v1.4
  412. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  413. #define LINECALLREASON_CAMPEDON                 0x00004000      // TAPI v2.0
  414. #define LINECALLREASON_ROUTEREQUEST             0x00008000      // TAPI v2.0
  415. #endif
  416. #define LINECALLSELECT_LINE                     0x00000001
  417. #define LINECALLSELECT_ADDRESS                  0x00000002
  418. #define LINECALLSELECT_CALL                     0x00000004
  419. #if (TAPI_CURRENT_VERSION >= 0x00020001)
  420. #define LINECALLSELECT_DEVICEID                 0x00000008      // TAPI v2.1
  421. #endif
  422. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  423. #define LINECALLSELECT_CALLID                   0x00000010      // TAPI v3.0
  424. #endif
  425. #define LINECALLSTATE_IDLE                      0x00000001
  426. #define LINECALLSTATE_OFFERING                  0x00000002
  427. #define LINECALLSTATE_ACCEPTED                  0x00000004
  428. #define LINECALLSTATE_DIALTONE                  0x00000008
  429. #define LINECALLSTATE_DIALING                   0x00000010
  430. #define LINECALLSTATE_RINGBACK                  0x00000020
  431. #define LINECALLSTATE_BUSY                      0x00000040
  432. #define LINECALLSTATE_SPECIALINFO               0x00000080
  433. #define LINECALLSTATE_CONNECTED                 0x00000100
  434. #define LINECALLSTATE_PROCEEDING                0x00000200
  435. #define LINECALLSTATE_ONHOLD                    0x00000400
  436. #define LINECALLSTATE_CONFERENCED               0x00000800
  437. #define LINECALLSTATE_ONHOLDPENDCONF            0x00001000
  438. #define LINECALLSTATE_ONHOLDPENDTRANSFER        0x00002000
  439. #define LINECALLSTATE_DISCONNECTED              0x00004000
  440. #define LINECALLSTATE_UNKNOWN                   0x00008000
  441. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  442. #define LINECALLTREATMENT_SILENCE               0x00000001      // TAPI v2.0
  443. #define LINECALLTREATMENT_RINGBACK              0x00000002      // TAPI v2.0
  444. #define LINECALLTREATMENT_BUSY                  0x00000003      // TAPI v2.0
  445. #define LINECALLTREATMENT_MUSIC                 0x00000004      // TAPI v2.0
  446. #endif
  447. #define LINECARDOPTION_PREDEFINED               0x00000001      // TAPI v1.4
  448. #define LINECARDOPTION_HIDDEN                   0x00000002      // TAPI v1.4
  449. #define LINECONNECTEDMODE_ACTIVE                0x00000001      // TAPI v1.4
  450. #define LINECONNECTEDMODE_INACTIVE              0x00000002      // TAPI v1.4
  451. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  452. #define LINECONNECTEDMODE_ACTIVEHELD            0x00000004      // TAPI v2.0
  453. #define LINECONNECTEDMODE_INACTIVEHELD          0x00000008      // TAPI v2.0
  454. #define LINECONNECTEDMODE_CONFIRMED             0x00000010      // TAPI v2.0
  455. #endif
  456. #define LINEDEVCAPFLAGS_CROSSADDRCONF           0x00000001
  457. #define LINEDEVCAPFLAGS_HIGHLEVCOMP             0x00000002
  458. #define LINEDEVCAPFLAGS_LOWLEVCOMP              0x00000004
  459. #define LINEDEVCAPFLAGS_MEDIACONTROL            0x00000008
  460. #define LINEDEVCAPFLAGS_MULTIPLEADDR            0x00000010
  461. #define LINEDEVCAPFLAGS_CLOSEDROP               0x00000020
  462. #define LINEDEVCAPFLAGS_DIALBILLING             0x00000040
  463. #define LINEDEVCAPFLAGS_DIALQUIET               0x00000080
  464. #define LINEDEVCAPFLAGS_DIALDIALTONE            0x00000100
  465. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  466. #define LINEDEVCAPFLAGS_MSP                     0x00000200      // TAPI v3.0
  467. #define LINEDEVCAPFLAGS_CALLHUB                 0x00000400      // TAPI v3.0
  468. #define LINEDEVCAPFLAGS_CALLHUBTRACKING         0x00000800      // TAPI v3.0
  469. #define LINEDEVCAPFLAGS_PRIVATEOBJECTS          0x00001000      // TAPI v3.0
  470. #endif
  471. #define LINEDEVCAPFLAGS_LOCAL                   0x00002000
  472. #define LINEDEVSTATE_OTHER                      0x00000001
  473. #define LINEDEVSTATE_RINGING                    0x00000002
  474. #define LINEDEVSTATE_CONNECTED                  0x00000004
  475. #define LINEDEVSTATE_DISCONNECTED               0x00000008
  476. #define LINEDEVSTATE_MSGWAITON                  0x00000010
  477. #define LINEDEVSTATE_MSGWAITOFF                 0x00000020
  478. #define LINEDEVSTATE_INSERVICE                  0x00000040
  479. #define LINEDEVSTATE_OUTOFSERVICE               0x00000080
  480. #define LINEDEVSTATE_MAINTENANCE                0x00000100
  481. #define LINEDEVSTATE_OPEN                       0x00000200
  482. #define LINEDEVSTATE_CLOSE                      0x00000400
  483. #define LINEDEVSTATE_NUMCALLS                   0x00000800
  484. #define LINEDEVSTATE_NUMCOMPLETIONS             0x00001000
  485. #define LINEDEVSTATE_TERMINALS                  0x00002000
  486. #define LINEDEVSTATE_ROAMMODE                   0x00004000
  487. #define LINEDEVSTATE_BATTERY                    0x00008000
  488. #define LINEDEVSTATE_SIGNAL                     0x00010000
  489. #define LINEDEVSTATE_DEVSPECIFIC                0x00020000
  490. #define LINEDEVSTATE_REINIT                     0x00040000
  491. #define LINEDEVSTATE_LOCK                       0x00080000
  492. #define LINEDEVSTATE_CAPSCHANGE                 0x00100000      // TAPI v1.4
  493. #define LINEDEVSTATE_CONFIGCHANGE               0x00200000      // TAPI v1.4
  494. #define LINEDEVSTATE_TRANSLATECHANGE            0x00400000      // TAPI v1.4
  495. #define LINEDEVSTATE_COMPLCANCEL                0x00800000      // TAPI v1.4
  496. #define LINEDEVSTATE_REMOVED                    0x01000000      // TAPI v1.4
  497. #define LINEDEVSTATUSFLAGS_CONNECTED            0x00000001
  498. #define LINEDEVSTATUSFLAGS_MSGWAIT              0x00000002
  499. #define LINEDEVSTATUSFLAGS_INSERVICE            0x00000004
  500. #define LINEDEVSTATUSFLAGS_LOCKED               0x00000008
  501. #define LINEDIALTONEMODE_NORMAL                 0x00000001
  502. #define LINEDIALTONEMODE_SPECIAL                0x00000002
  503. #define LINEDIALTONEMODE_INTERNAL               0x00000004
  504. #define LINEDIALTONEMODE_EXTERNAL               0x00000008
  505. #define LINEDIALTONEMODE_UNKNOWN                0x00000010
  506. #define LINEDIALTONEMODE_UNAVAIL                0x00000020
  507. #define LINEDIGITMODE_PULSE                     0x00000001
  508. #define LINEDIGITMODE_DTMF                      0x00000002
  509. #define LINEDIGITMODE_DTMFEND                   0x00000004
  510. #define LINEDISCONNECTMODE_NORMAL               0x00000001
  511. #define LINEDISCONNECTMODE_UNKNOWN              0x00000002
  512. #define LINEDISCONNECTMODE_REJECT               0x00000004
  513. #define LINEDISCONNECTMODE_PICKUP               0x00000008
  514. #define LINEDISCONNECTMODE_FORWARDED            0x00000010
  515. #define LINEDISCONNECTMODE_BUSY                 0x00000020
  516. #define LINEDISCONNECTMODE_NOANSWER             0x00000040
  517. #define LINEDISCONNECTMODE_BADADDRESS           0x00000080
  518. #define LINEDISCONNECTMODE_UNREACHABLE          0x00000100
  519. #define LINEDISCONNECTMODE_CONGESTION           0x00000200
  520. #define LINEDISCONNECTMODE_INCOMPATIBLE         0x00000400
  521. #define LINEDISCONNECTMODE_UNAVAIL              0x00000800
  522. #define LINEDISCONNECTMODE_NODIALTONE           0x00001000      // TAPI v1.4
  523. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  524. #define LINEDISCONNECTMODE_NUMBERCHANGED        0x00002000      // TAPI v2.0
  525. #define LINEDISCONNECTMODE_OUTOFORDER           0x00004000      // TAPI v2.0
  526. #define LINEDISCONNECTMODE_TEMPFAILURE          0x00008000      // TAPI v2.0
  527. #define LINEDISCONNECTMODE_QOSUNAVAIL           0x00010000      // TAPI v2.0
  528. #define LINEDISCONNECTMODE_BLOCKED              0x00020000      // TAPI v2.0
  529. #define LINEDISCONNECTMODE_DONOTDISTURB         0x00040000      // TAPI v2.0
  530. #define LINEDISCONNECTMODE_CANCELLED            0x00080000      // TAPI v2.0
  531. #endif
  532. #define LINEERR_ALLOCATED                       0x80000001
  533. #define LINEERR_BADDEVICEID                     0x80000002
  534. #define LINEERR_BEARERMODEUNAVAIL               0x80000003
  535. #define LINEERR_CALLUNAVAIL                     0x80000005
  536. #define LINEERR_COMPLETIONOVERRUN               0x80000006
  537. #define LINEERR_CONFERENCEFULL                  0x80000007
  538. #define LINEERR_DIALBILLING                     0x80000008
  539. #define LINEERR_DIALDIALTONE                    0x80000009
  540. #define LINEERR_DIALPROMPT                      0x8000000A
  541. #define LINEERR_DIALQUIET                       0x8000000B
  542. #define LINEERR_INCOMPATIBLEAPIVERSION          0x8000000C
  543. #define LINEERR_INCOMPATIBLEEXTVERSION          0x8000000D
  544. #define LINEERR_INIFILECORRUPT                  0x8000000E
  545. #define LINEERR_INUSE                           0x8000000F
  546. #define LINEERR_INVALADDRESS                    0x80000010
  547. #define LINEERR_INVALADDRESSID                  0x80000011
  548. #define LINEERR_INVALADDRESSMODE                0x80000012
  549. #define LINEERR_INVALADDRESSSTATE               0x80000013
  550. #define LINEERR_INVALAPPHANDLE                  0x80000014
  551. #define LINEERR_INVALAPPNAME                    0x80000015
  552. #define LINEERR_INVALBEARERMODE                 0x80000016
  553. #define LINEERR_INVALCALLCOMPLMODE              0x80000017
  554. #define LINEERR_INVALCALLHANDLE                 0x80000018
  555. #define LINEERR_INVALCALLPARAMS                 0x80000019
  556. #define LINEERR_INVALCALLPRIVILEGE              0x8000001A
  557. #define LINEERR_INVALCALLSELECT                 0x8000001B
  558. #define LINEERR_INVALCALLSTATE                  0x8000001C
  559. #define LINEERR_INVALCALLSTATELIST              0x8000001D
  560. #define LINEERR_INVALCARD                       0x8000001E
  561. #define LINEERR_INVALCOMPLETIONID               0x8000001F
  562. #define LINEERR_INVALCONFCALLHANDLE             0x80000020
  563. #define LINEERR_INVALCONSULTCALLHANDLE          0x80000021
  564. #define LINEERR_INVALCOUNTRYCODE                0x80000022
  565. #define LINEERR_INVALDEVICECLASS                0x80000023
  566. #define LINEERR_INVALDEVICEHANDLE               0x80000024
  567. #define LINEERR_INVALDIALPARAMS                 0x80000025
  568. #define LINEERR_INVALDIGITLIST                  0x80000026
  569. #define LINEERR_INVALDIGITMODE                  0x80000027
  570. #define LINEERR_INVALDIGITS                     0x80000028
  571. #define LINEERR_INVALEXTVERSION                 0x80000029
  572. #define LINEERR_INVALGROUPID                    0x8000002A
  573. #define LINEERR_INVALLINEHANDLE                 0x8000002B
  574. #define LINEERR_INVALLINESTATE                  0x8000002C
  575. #define LINEERR_INVALLOCATION                   0x8000002D
  576. #define LINEERR_INVALMEDIALIST                  0x8000002E
  577. #define LINEERR_INVALMEDIAMODE                  0x8000002F
  578. #define LINEERR_INVALMESSAGEID                  0x80000030
  579. #define LINEERR_INVALPARAM                      0x80000032
  580. #define LINEERR_INVALPARKID                     0x80000033
  581. #define LINEERR_INVALPARKMODE                   0x80000034
  582. #define LINEERR_INVALPOINTER                    0x80000035
  583. #define LINEERR_INVALPRIVSELECT                 0x80000036
  584. #define LINEERR_INVALRATE                       0x80000037
  585. #define LINEERR_INVALREQUESTMODE                0x80000038
  586. #define LINEERR_INVALTERMINALID                 0x80000039
  587. #define LINEERR_INVALTERMINALMODE               0x8000003A
  588. #define LINEERR_INVALTIMEOUT                    0x8000003B
  589. #define LINEERR_INVALTONE                       0x8000003C
  590. #define LINEERR_INVALTONELIST                   0x8000003D
  591. #define LINEERR_INVALTONEMODE                   0x8000003E
  592. #define LINEERR_INVALTRANSFERMODE               0x8000003F
  593. #define LINEERR_LINEMAPPERFAILED                0x80000040
  594. #define LINEERR_NOCONFERENCE                    0x80000041
  595. #define LINEERR_NODEVICE                        0x80000042
  596. #define LINEERR_NODRIVER                        0x80000043
  597. #define LINEERR_NOMEM                           0x80000044
  598. #define LINEERR_NOREQUEST                       0x80000045
  599. #define LINEERR_NOTOWNER                        0x80000046
  600. #define LINEERR_NOTREGISTERED                   0x80000047
  601. #define LINEERR_OPERATIONFAILED                 0x80000048
  602. #define LINEERR_OPERATIONUNAVAIL                0x80000049
  603. #define LINEERR_RATEUNAVAIL                     0x8000004A
  604. #define LINEERR_RESOURCEUNAVAIL                 0x8000004B
  605. #define LINEERR_REQUESTOVERRUN                  0x8000004C
  606. #define LINEERR_STRUCTURETOOSMALL               0x8000004D
  607. #define LINEERR_TARGETNOTFOUND                  0x8000004E
  608. #define LINEERR_TARGETSELF                      0x8000004F
  609. #define LINEERR_UNINITIALIZED                   0x80000050
  610. #define LINEERR_USERUSERINFOTOOBIG              0x80000051
  611. #define LINEERR_REINIT                          0x80000052
  612. #define LINEERR_ADDRESSBLOCKED                  0x80000053
  613. #define LINEERR_BILLINGREJECTED                 0x80000054
  614. #define LINEERR_INVALFEATURE                    0x80000055
  615. #define LINEERR_NOMULTIPLEINSTANCE              0x80000056
  616. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  617. #define LINEERR_INVALAGENTID                    0x80000057      // TAPI v2.0
  618. #define LINEERR_INVALAGENTGROUP                 0x80000058      // TAPI v2.0
  619. #define LINEERR_INVALPASSWORD                   0x80000059      // TAPI v2.0
  620. #define LINEERR_INVALAGENTSTATE                 0x8000005A      // TAPI v2.0
  621. #define LINEERR_INVALAGENTACTIVITY              0x8000005B      // TAPI v2.0
  622. #define LINEERR_DIALVOICEDETECT                 0x8000005C      // TAPI v2.0
  623. #endif
  624. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  625. #define LINEERR_USERCANCELLED                   0x8000005D      // TAPI v2.2
  626. #endif
  627. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  628. #define LINEERR_INVALADDRESSTYPE                0x8000005E      // TAPI v3.0
  629. #endif
  630. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  631. #define LINEERR_INVALAGENTSESSIONSTATE          0x8000005F      // TAPI v2.2
  632. #define LINEERR_DISCONNECTED                    0X80000060
  633. #define LINEERR_SERVICE_NOT_RUNNING             0x80000061
  634. #endif
  635. #define LINEFEATURE_DEVSPECIFIC                 0x00000001
  636. #define LINEFEATURE_DEVSPECIFICFEAT             0x00000002
  637. #define LINEFEATURE_FORWARD                     0x00000004
  638. #define LINEFEATURE_MAKECALL                    0x00000008
  639. #define LINEFEATURE_SETMEDIACONTROL             0x00000010
  640. #define LINEFEATURE_SETTERMINAL                 0x00000020
  641. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  642. #define LINEFEATURE_SETDEVSTATUS                0x00000040      // TAPI v2.0
  643. #define LINEFEATURE_FORWARDFWD                  0x00000080      // TAPI v2.0
  644. #define LINEFEATURE_FORWARDDND                  0x00000100      // TAPI v2.0
  645. #endif
  646. #define LINEFORWARDMODE_UNCOND                  0x00000001
  647. #define LINEFORWARDMODE_UNCONDINTERNAL          0x00000002
  648. #define LINEFORWARDMODE_UNCONDEXTERNAL          0x00000004
  649. #define LINEFORWARDMODE_UNCONDSPECIFIC          0x00000008
  650. #define LINEFORWARDMODE_BUSY                    0x00000010
  651. #define LINEFORWARDMODE_BUSYINTERNAL            0x00000020
  652. #define LINEFORWARDMODE_BUSYEXTERNAL            0x00000040
  653. #define LINEFORWARDMODE_BUSYSPECIFIC            0x00000080
  654. #define LINEFORWARDMODE_NOANSW                  0x00000100
  655. #define LINEFORWARDMODE_NOANSWINTERNAL          0x00000200
  656. #define LINEFORWARDMODE_NOANSWEXTERNAL          0x00000400
  657. #define LINEFORWARDMODE_NOANSWSPECIFIC          0x00000800
  658. #define LINEFORWARDMODE_BUSYNA                  0x00001000
  659. #define LINEFORWARDMODE_BUSYNAINTERNAL          0x00002000
  660. #define LINEFORWARDMODE_BUSYNAEXTERNAL          0x00004000
  661. #define LINEFORWARDMODE_BUSYNASPECIFIC          0x00008000
  662. #define LINEFORWARDMODE_UNKNOWN                 0x00010000      // TAPI v1.4
  663. #define LINEFORWARDMODE_UNAVAIL                 0x00020000      // TAPI v1.4
  664. #define LINEGATHERTERM_BUFFERFULL               0x00000001
  665. #define LINEGATHERTERM_TERMDIGIT                0x00000002
  666. #define LINEGATHERTERM_FIRSTTIMEOUT             0x00000004
  667. #define LINEGATHERTERM_INTERTIMEOUT             0x00000008
  668. #define LINEGATHERTERM_CANCEL                   0x00000010
  669. #define LINEGENERATETERM_DONE                   0x00000001
  670. #define LINEGENERATETERM_CANCEL                 0x00000002
  671. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  672. //
  673. // These constants are mutually exclusive - there's no way to specify more
  674. // than one at a time (and it doesn't make sense, either) so they're
  675. // ordinal rather than bits.
  676. //
  677. #define LINEINITIALIZEEXOPTION_USEHIDDENWINDOW      0x00000001  // TAPI v2.0
  678. #define LINEINITIALIZEEXOPTION_USEEVENT             0x00000002  // TAPI v2.0
  679. #define LINEINITIALIZEEXOPTION_USECOMPLETIONPORT    0x00000003  // TAPI v2.0
  680. #endif
  681. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  682. #define LINEINITIALIZEEXOPTION_CALLHUBTRACKING      0x80000000  // TAPI v3.0
  683. #endif
  684. #define LINELOCATIONOPTION_PULSEDIAL            0x00000001      // TAPI v1.4
  685. #define LINEMAPPER                              0xFFFFFFFF
  686. #define LINEMEDIACONTROL_NONE                   0x00000001
  687. #define LINEMEDIACONTROL_START                  0x00000002
  688. #define LINEMEDIACONTROL_RESET                  0x00000004
  689. #define LINEMEDIACONTROL_PAUSE                  0x00000008
  690. #define LINEMEDIACONTROL_RESUME                 0x00000010
  691. #define LINEMEDIACONTROL_RATEUP                 0x00000020
  692. #define LINEMEDIACONTROL_RATEDOWN               0x00000040
  693. #define LINEMEDIACONTROL_RATENORMAL             0x00000080
  694. #define LINEMEDIACONTROL_VOLUMEUP               0x00000100
  695. #define LINEMEDIACONTROL_VOLUMEDOWN             0x00000200
  696. #define LINEMEDIACONTROL_VOLUMENORMAL           0x00000400
  697. #define LINEMEDIAMODE_UNKNOWN                   0x00000002
  698. #define LINEMEDIAMODE_INTERACTIVEVOICE          0x00000004
  699. #define LINEMEDIAMODE_AUTOMATEDVOICE            0x00000008
  700. #define LINEMEDIAMODE_DATAMODEM                 0x00000010
  701. #define LINEMEDIAMODE_G3FAX                     0x00000020
  702. #define LINEMEDIAMODE_TDD                       0x00000040
  703. #define LINEMEDIAMODE_G4FAX                     0x00000080
  704. #define LINEMEDIAMODE_DIGITALDATA               0x00000100
  705. #define LINEMEDIAMODE_TELETEX                   0x00000200
  706. #define LINEMEDIAMODE_VIDEOTEX                  0x00000400
  707. #define LINEMEDIAMODE_TELEX                     0x00000800
  708. #define LINEMEDIAMODE_MIXED                     0x00001000
  709. #define LINEMEDIAMODE_ADSI                      0x00002000
  710. #define LINEMEDIAMODE_VOICEVIEW                 0x00004000      // TAPI v1.4
  711. #if (TAPI_CURRENT_VERSION >= 0x00020001)
  712. #define LINEMEDIAMODE_VIDEO                     0x00008000      // TAPI v2.1
  713. #endif
  714. #define LAST_LINEMEDIAMODE                      0x00008000
  715. #define LINEOFFERINGMODE_ACTIVE                 0x00000001      // TAPI v1.4
  716. #define LINEOFFERINGMODE_INACTIVE               0x00000002      // TAPI v1.4
  717. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  718. #define LINEOPENOPTION_SINGLEADDRESS            0x80000000      // TAPI v2.0
  719. #define LINEOPENOPTION_PROXY                    0x40000000      // TAPI v2.0
  720. #endif
  721. #define LINEPARKMODE_DIRECTED                   0x00000001
  722. #define LINEPARKMODE_NONDIRECTED                0x00000002
  723. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  724. #define LINEPROXYREQUEST_SETAGENTGROUP          0x00000001      // TAPI v2.0
  725. #define LINEPROXYREQUEST_SETAGENTSTATE          0x00000002      // TAPI v2.0
  726. #define LINEPROXYREQUEST_SETAGENTACTIVITY       0x00000003      // TAPI v2.0
  727. #define LINEPROXYREQUEST_GETAGENTCAPS           0x00000004      // TAPI v2.0
  728. #define LINEPROXYREQUEST_GETAGENTSTATUS         0x00000005      // TAPI v2.0
  729. #define LINEPROXYREQUEST_AGENTSPECIFIC          0x00000006      // TAPI v2.0
  730. #define LINEPROXYREQUEST_GETAGENTACTIVITYLIST   0x00000007      // TAPI v2.0
  731. #define LINEPROXYREQUEST_GETAGENTGROUPLIST      0x00000008      // TAPI v2.0
  732. #endif
  733. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  734. #define LINEPROXYREQUEST_CREATEAGENT                0x00000009  // TAPI v2.2
  735. #define LINEPROXYREQUEST_SETAGENTMEASUREMENTPERIOD  0x0000000A  // TAPI v2.2
  736. #define LINEPROXYREQUEST_GETAGENTINFO               0x0000000B  // TAPI v2.2
  737. #define LINEPROXYREQUEST_CREATEAGENTSESSION         0x0000000C  // TAPI v2.2
  738. #define LINEPROXYREQUEST_GETAGENTSESSIONLIST        0x0000000D  // TAPI v2.2
  739. #define LINEPROXYREQUEST_SETAGENTSESSIONSTATE       0x0000000E  // TAPI v2.2
  740. #define LINEPROXYREQUEST_GETAGENTSESSIONINFO        0x0000000F  // TAPI v2.2
  741. #define LINEPROXYREQUEST_GETQUEUELIST               0x00000010  // TAPI v2.2
  742. #define LINEPROXYREQUEST_SETQUEUEMEASUREMENTPERIOD  0x00000011  // TAPI v2.2
  743. #define LINEPROXYREQUEST_GETQUEUEINFO               0x00000012  // TAPI v2.2
  744. #define LINEPROXYREQUEST_GETGROUPLIST               0x00000013  // TAPI v2.2
  745. #define LINEPROXYREQUEST_SETAGENTSTATEEX            0x00000014  // TAPI v2.2
  746. #endif
  747. #define LINEREMOVEFROMCONF_NONE                 0x00000001
  748. #define LINEREMOVEFROMCONF_LAST                 0x00000002
  749. #define LINEREMOVEFROMCONF_ANY                  0x00000003
  750. #define LINEREQUESTMODE_MAKECALL                0x00000001
  751. #define LINEREQUESTMODE_MEDIACALL               0x00000002
  752. #define LINEREQUESTMODE_DROP                    0x00000004
  753. #define LAST_LINEREQUESTMODE                    LINEREQUESTMODE_MEDIACALL
  754. #define LINEROAMMODE_UNKNOWN                    0x00000001
  755. #define LINEROAMMODE_UNAVAIL                    0x00000002
  756. #define LINEROAMMODE_HOME                       0x00000004
  757. #define LINEROAMMODE_ROAMA                      0x00000008
  758. #define LINEROAMMODE_ROAMB                      0x00000010
  759. #define LINESPECIALINFO_NOCIRCUIT               0x00000001
  760. #define LINESPECIALINFO_CUSTIRREG               0x00000002
  761. #define LINESPECIALINFO_REORDER                 0x00000004
  762. #define LINESPECIALINFO_UNKNOWN                 0x00000008
  763. #define LINESPECIALINFO_UNAVAIL                 0x00000010
  764. #define LINETERMDEV_PHONE                       0x00000001
  765. #define LINETERMDEV_HEADSET                     0x00000002
  766. #define LINETERMDEV_SPEAKER                     0x00000004
  767. #define LINETERMMODE_BUTTONS                    0x00000001
  768. #define LINETERMMODE_LAMPS                      0x00000002
  769. #define LINETERMMODE_DISPLAY                    0x00000004
  770. #define LINETERMMODE_RINGER                     0x00000008
  771. #define LINETERMMODE_HOOKSWITCH                 0x00000010
  772. #define LINETERMMODE_MEDIATOLINE                0x00000020
  773. #define LINETERMMODE_MEDIAFROMLINE              0x00000040
  774. #define LINETERMMODE_MEDIABIDIRECT              0x00000080
  775. #define LINETERMSHARING_PRIVATE                 0x00000001
  776. #define LINETERMSHARING_SHAREDEXCL              0x00000002
  777. #define LINETERMSHARING_SHAREDCONF              0x00000004
  778. #define LINETOLLLISTOPTION_ADD                  0x00000001
  779. #define LINETOLLLISTOPTION_REMOVE               0x00000002
  780. #define LINETONEMODE_CUSTOM                     0x00000001
  781. #define LINETONEMODE_RINGBACK                   0x00000002
  782. #define LINETONEMODE_BUSY                       0x00000004
  783. #define LINETONEMODE_BEEP                       0x00000008
  784. #define LINETONEMODE_BILLING                    0x00000010
  785. #define LINETRANSFERMODE_TRANSFER               0x00000001
  786. #define LINETRANSFERMODE_CONFERENCE             0x00000002
  787. #define LINETRANSLATEOPTION_CARDOVERRIDE        0x00000001
  788. #define LINETRANSLATEOPTION_CANCELCALLWAITING   0x00000002      // TAPI v1.4
  789. #define LINETRANSLATEOPTION_FORCELOCAL          0x00000004      // TAPI v1.4
  790. #define LINETRANSLATEOPTION_FORCELD             0x00000008      // TAPI v1.4
  791. #define LINETRANSLATERESULT_CANONICAL           0x00000001
  792. #define LINETRANSLATERESULT_INTERNATIONAL       0x00000002
  793. #define LINETRANSLATERESULT_LONGDISTANCE        0x00000004
  794. #define LINETRANSLATERESULT_LOCAL               0x00000008
  795. #define LINETRANSLATERESULT_INTOLLLIST          0x00000010
  796. #define LINETRANSLATERESULT_NOTINTOLLLIST       0x00000020
  797. #define LINETRANSLATERESULT_DIALBILLING         0x00000040
  798. #define LINETRANSLATERESULT_DIALQUIET           0x00000080
  799. #define LINETRANSLATERESULT_DIALDIALTONE        0x00000100
  800. #define LINETRANSLATERESULT_DIALPROMPT          0x00000200
  801. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  802. #define LINETRANSLATERESULT_VOICEDETECT         0x00000400      // TAPI v2.0
  803. #endif
  804. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  805. #define LINETRANSLATERESULT_NOTRANSLATION       0x00000800      // TAPI v3.0
  806. #endif
  807. #define PHONEBUTTONFUNCTION_UNKNOWN             0x00000000
  808. #define PHONEBUTTONFUNCTION_CONFERENCE          0x00000001
  809. #define PHONEBUTTONFUNCTION_TRANSFER            0x00000002
  810. #define PHONEBUTTONFUNCTION_DROP                0x00000003
  811. #define PHONEBUTTONFUNCTION_HOLD                0x00000004
  812. #define PHONEBUTTONFUNCTION_RECALL              0x00000005
  813. #define PHONEBUTTONFUNCTION_DISCONNECT          0x00000006
  814. #define PHONEBUTTONFUNCTION_CONNECT             0x00000007
  815. #define PHONEBUTTONFUNCTION_MSGWAITON           0x00000008
  816. #define PHONEBUTTONFUNCTION_MSGWAITOFF          0x00000009
  817. #define PHONEBUTTONFUNCTION_SELECTRING          0x0000000A
  818. #define PHONEBUTTONFUNCTION_ABBREVDIAL          0x0000000B
  819. #define PHONEBUTTONFUNCTION_FORWARD             0x0000000C
  820. #define PHONEBUTTONFUNCTION_PICKUP              0x0000000D
  821. #define PHONEBUTTONFUNCTION_RINGAGAIN           0x0000000E
  822. #define PHONEBUTTONFUNCTION_PARK                0x0000000F
  823. #define PHONEBUTTONFUNCTION_REJECT              0x00000010
  824. #define PHONEBUTTONFUNCTION_REDIRECT            0x00000011
  825. #define PHONEBUTTONFUNCTION_MUTE                0x00000012
  826. #define PHONEBUTTONFUNCTION_VOLUMEUP            0x00000013
  827. #define PHONEBUTTONFUNCTION_VOLUMEDOWN          0x00000014
  828. #define PHONEBUTTONFUNCTION_SPEAKERON           0x00000015
  829. #define PHONEBUTTONFUNCTION_SPEAKEROFF          0x00000016
  830. #define PHONEBUTTONFUNCTION_FLASH               0x00000017
  831. #define PHONEBUTTONFUNCTION_DATAON              0x00000018
  832. #define PHONEBUTTONFUNCTION_DATAOFF             0x00000019
  833. #define PHONEBUTTONFUNCTION_DONOTDISTURB        0x0000001A
  834. #define PHONEBUTTONFUNCTION_INTERCOM            0x0000001B
  835. #define PHONEBUTTONFUNCTION_BRIDGEDAPP          0x0000001C
  836. #define PHONEBUTTONFUNCTION_BUSY                0x0000001D
  837. #define PHONEBUTTONFUNCTION_CALLAPP             0x0000001E
  838. #define PHONEBUTTONFUNCTION_DATETIME            0x0000001F
  839. #define PHONEBUTTONFUNCTION_DIRECTORY           0x00000020
  840. #define PHONEBUTTONFUNCTION_COVER               0x00000021
  841. #define PHONEBUTTONFUNCTION_CALLID              0x00000022
  842. #define PHONEBUTTONFUNCTION_LASTNUM             0x00000023
  843. #define PHONEBUTTONFUNCTION_NIGHTSRV            0x00000024
  844. #define PHONEBUTTONFUNCTION_SENDCALLS           0x00000025
  845. #define PHONEBUTTONFUNCTION_MSGINDICATOR        0x00000026
  846. #define PHONEBUTTONFUNCTION_REPDIAL             0x00000027
  847. #define PHONEBUTTONFUNCTION_SETREPDIAL          0x00000028
  848. #define PHONEBUTTONFUNCTION_SYSTEMSPEED         0x00000029
  849. #define PHONEBUTTONFUNCTION_STATIONSPEED        0x0000002A
  850. #define PHONEBUTTONFUNCTION_CAMPON              0x0000002B
  851. #define PHONEBUTTONFUNCTION_SAVEREPEAT          0x0000002C
  852. #define PHONEBUTTONFUNCTION_QUEUECALL           0x0000002D
  853. #define PHONEBUTTONFUNCTION_NONE                0x0000002E
  854. #if (TAPI_CURRENT_VERSION >= 0x00030001)
  855. #define PHONEBUTTONFUNCTION_SEND                0x0000002F      // TAPI v3.1
  856. #endif
  857. #define PHONEBUTTONMODE_DUMMY                   0x00000001
  858. #define PHONEBUTTONMODE_CALL                    0x00000002
  859. #define PHONEBUTTONMODE_FEATURE                 0x00000004
  860. #define PHONEBUTTONMODE_KEYPAD                  0x00000008
  861. #define PHONEBUTTONMODE_LOCAL                   0x00000010
  862. #define PHONEBUTTONMODE_DISPLAY                 0x00000020
  863. #define PHONEBUTTONSTATE_UP                     0x00000001
  864. #define PHONEBUTTONSTATE_DOWN                   0x00000002
  865. #define PHONEBUTTONSTATE_UNKNOWN                0x00000004      // TAPI v1.4
  866. #define PHONEBUTTONSTATE_UNAVAIL                0x00000008      // TAPI v1.4
  867. #define PHONEERR_ALLOCATED                      0x90000001
  868. #define PHONEERR_BADDEVICEID                    0x90000002
  869. #define PHONEERR_INCOMPATIBLEAPIVERSION         0x90000003
  870. #define PHONEERR_INCOMPATIBLEEXTVERSION         0x90000004
  871. #define PHONEERR_INIFILECORRUPT                 0x90000005
  872. #define PHONEERR_INUSE                          0x90000006
  873. #define PHONEERR_INVALAPPHANDLE                 0x90000007
  874. #define PHONEERR_INVALAPPNAME                   0x90000008
  875. #define PHONEERR_INVALBUTTONLAMPID              0x90000009
  876. #define PHONEERR_INVALBUTTONMODE                0x9000000A
  877. #define PHONEERR_INVALBUTTONSTATE               0x9000000B
  878. #define PHONEERR_INVALDATAID                    0x9000000C
  879. #define PHONEERR_INVALDEVICECLASS               0x9000000D
  880. #define PHONEERR_INVALEXTVERSION                0x9000000E
  881. #define PHONEERR_INVALHOOKSWITCHDEV             0x9000000F
  882. #define PHONEERR_INVALHOOKSWITCHMODE            0x90000010
  883. #define PHONEERR_INVALLAMPMODE                  0x90000011
  884. #define PHONEERR_INVALPARAM                     0x90000012
  885. #define PHONEERR_INVALPHONEHANDLE               0x90000013
  886. #define PHONEERR_INVALPHONESTATE                0x90000014
  887. #define PHONEERR_INVALPOINTER                   0x90000015
  888. #define PHONEERR_INVALPRIVILEGE                 0x90000016
  889. #define PHONEERR_INVALRINGMODE                  0x90000017
  890. #define PHONEERR_NODEVICE                       0x90000018
  891. #define PHONEERR_NODRIVER                       0x90000019
  892. #define PHONEERR_NOMEM                          0x9000001A
  893. #define PHONEERR_NOTOWNER                       0x9000001B
  894. #define PHONEERR_OPERATIONFAILED                0x9000001C
  895. #define PHONEERR_OPERATIONUNAVAIL               0x9000001D
  896. #define PHONEERR_RESOURCEUNAVAIL                0x9000001F
  897. #define PHONEERR_REQUESTOVERRUN                 0x90000020
  898. #define PHONEERR_STRUCTURETOOSMALL              0x90000021
  899. #define PHONEERR_UNINITIALIZED                  0x90000022
  900. #define PHONEERR_REINIT                         0x90000023
  901. #define PHONEERR_DISCONNECTED                   0x90000024
  902. #define PHONEERR_SERVICE_NOT_RUNNING            0x90000025
  903. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  904. #define PHONEFEATURE_GETBUTTONINFO              0x00000001      // TAPI v2.0
  905. #define PHONEFEATURE_GETDATA                    0x00000002      // TAPI v2.0
  906. #define PHONEFEATURE_GETDISPLAY                 0x00000004      // TAPI v2.0
  907. #define PHONEFEATURE_GETGAINHANDSET             0x00000008      // TAPI v2.0
  908. #define PHONEFEATURE_GETGAINSPEAKER             0x00000010      // TAPI v2.0
  909. #define PHONEFEATURE_GETGAINHEADSET             0x00000020      // TAPI v2.0
  910. #define PHONEFEATURE_GETHOOKSWITCHHANDSET       0x00000040      // TAPI v2.0
  911. #define PHONEFEATURE_GETHOOKSWITCHSPEAKER       0x00000080      // TAPI v2.0
  912. #define PHONEFEATURE_GETHOOKSWITCHHEADSET       0x00000100      // TAPI v2.0
  913. #define PHONEFEATURE_GETLAMP                    0x00000200      // TAPI v2.0
  914. #define PHONEFEATURE_GETRING                    0x00000400      // TAPI v2.0
  915. #define PHONEFEATURE_GETVOLUMEHANDSET           0x00000800      // TAPI v2.0
  916. #define PHONEFEATURE_GETVOLUMESPEAKER           0x00001000      // TAPI v2.0
  917. #define PHONEFEATURE_GETVOLUMEHEADSET           0x00002000      // TAPI v2.0
  918. #define PHONEFEATURE_SETBUTTONINFO              0x00004000      // TAPI v2.0
  919. #define PHONEFEATURE_SETDATA                    0x00008000      // TAPI v2.0
  920. #define PHONEFEATURE_SETDISPLAY                 0x00010000      // TAPI v2.0
  921. #define PHONEFEATURE_SETGAINHANDSET             0x00020000      // TAPI v2.0
  922. #define PHONEFEATURE_SETGAINSPEAKER             0x00040000      // TAPI v2.0
  923. #define PHONEFEATURE_SETGAINHEADSET             0x00080000      // TAPI v2.0
  924. #define PHONEFEATURE_SETHOOKSWITCHHANDSET       0x00100000      // TAPI v2.0
  925. #define PHONEFEATURE_SETHOOKSWITCHSPEAKER       0x00200000      // TAPI v2.0
  926. #define PHONEFEATURE_SETHOOKSWITCHHEADSET       0x00400000      // TAPI v2.0
  927. #define PHONEFEATURE_SETLAMP                    0x00800000      // TAPI v2.0
  928. #define PHONEFEATURE_SETRING                    0x01000000      // TAPI v2.0
  929. #define PHONEFEATURE_SETVOLUMEHANDSET           0x02000000      // TAPI v2.0
  930. #define PHONEFEATURE_SETVOLUMESPEAKER           0x04000000      // TAPI v2.0
  931. #define PHONEFEATURE_SETVOLUMEHEADSET           0x08000000      // TAPI v2.0
  932. #endif
  933. #if (TAPI_CURRENT_VERSION >= 0x00030001)
  934. #define PHONEFEATURE_GENERICPHONE               0x10000000      // TAPI v3.1
  935. #endif
  936. #define PHONEHOOKSWITCHDEV_HANDSET              0x00000001
  937. #define PHONEHOOKSWITCHDEV_SPEAKER              0x00000002
  938. #define PHONEHOOKSWITCHDEV_HEADSET              0x00000004
  939. #define PHONEHOOKSWITCHMODE_ONHOOK              0x00000001
  940. #define PHONEHOOKSWITCHMODE_MIC                 0x00000002
  941. #define PHONEHOOKSWITCHMODE_SPEAKER             0x00000004
  942. #define PHONEHOOKSWITCHMODE_MICSPEAKER          0x00000008
  943. #define PHONEHOOKSWITCHMODE_UNKNOWN             0x00000010
  944. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  945. #define PHONEINITIALIZEEXOPTION_USEHIDDENWINDOW     0x00000001  // TAPI v2.0
  946. #define PHONEINITIALIZEEXOPTION_USEEVENT            0x00000002  // TAPI v2.0
  947. #define PHONEINITIALIZEEXOPTION_USECOMPLETIONPORT   0x00000003  // TAPI v2.0
  948. #endif
  949. #define PHONELAMPMODE_DUMMY                     0x00000001
  950. #define PHONELAMPMODE_OFF                       0x00000002
  951. #define PHONELAMPMODE_STEADY                    0x00000004
  952. #define PHONELAMPMODE_WINK                      0x00000008
  953. #define PHONELAMPMODE_FLASH                     0x00000010
  954. #define PHONELAMPMODE_FLUTTER                   0x00000020
  955. #define PHONELAMPMODE_BROKENFLUTTER             0x00000040
  956. #define PHONELAMPMODE_UNKNOWN                   0x00000080
  957. #define PHONEPRIVILEGE_MONITOR                  0x00000001
  958. #define PHONEPRIVILEGE_OWNER                    0x00000002
  959. #define PHONESTATE_OTHER                        0x00000001
  960. #define PHONESTATE_CONNECTED                    0x00000002
  961. #define PHONESTATE_DISCONNECTED                 0x00000004
  962. #define PHONESTATE_OWNER                        0x00000008
  963. #define PHONESTATE_MONITORS                     0x00000010
  964. #define PHONESTATE_DISPLAY                      0x00000020
  965. #define PHONESTATE_LAMP                         0x00000040
  966. #define PHONESTATE_RINGMODE                     0x00000080
  967. #define PHONESTATE_RINGVOLUME                   0x00000100
  968. #define PHONESTATE_HANDSETHOOKSWITCH            0x00000200
  969. #define PHONESTATE_HANDSETVOLUME                0x00000400
  970. #define PHONESTATE_HANDSETGAIN                  0x00000800
  971. #define PHONESTATE_SPEAKERHOOKSWITCH            0x00001000
  972. #define PHONESTATE_SPEAKERVOLUME                0x00002000
  973. #define PHONESTATE_SPEAKERGAIN                  0x00004000
  974. #define PHONESTATE_HEADSETHOOKSWITCH            0x00008000
  975. #define PHONESTATE_HEADSETVOLUME                0x00010000
  976. #define PHONESTATE_HEADSETGAIN                  0x00020000
  977. #define PHONESTATE_SUSPEND                      0x00040000
  978. #define PHONESTATE_RESUME                       0x00080000
  979. #define PHONESTATE_DEVSPECIFIC                  0x00100000
  980. #define PHONESTATE_REINIT                       0x00200000
  981. #define PHONESTATE_CAPSCHANGE                   0x00400000      // TAPI v1.4
  982. #define PHONESTATE_REMOVED                      0x00800000      // TAPI v1.4
  983. #define PHONESTATUSFLAGS_CONNECTED              0x00000001
  984. #define PHONESTATUSFLAGS_SUSPENDED              0x00000002
  985. #define STRINGFORMAT_ASCII                      0x00000001
  986. #define STRINGFORMAT_DBCS                       0x00000002
  987. #define STRINGFORMAT_UNICODE                    0x00000003
  988. #define STRINGFORMAT_BINARY                     0x00000004
  989. #define TAPI_REPLY                              WM_USER + 99
  990. #define TAPIERR_CONNECTED                       0L
  991. #define TAPIERR_DROPPED                         -1L
  992. #define TAPIERR_NOREQUESTRECIPIENT              -2L
  993. #define TAPIERR_REQUESTQUEUEFULL                -3L
  994. #define TAPIERR_INVALDESTADDRESS                -4L
  995. #define TAPIERR_INVALWINDOWHANDLE               -5L
  996. #define TAPIERR_INVALDEVICECLASS                -6L
  997. #define TAPIERR_INVALDEVICEID                   -7L
  998. #define TAPIERR_DEVICECLASSUNAVAIL              -8L
  999. #define TAPIERR_DEVICEIDUNAVAIL                 -9L
  1000. #define TAPIERR_DEVICEINUSE                     -10L
  1001. #define TAPIERR_DESTBUSY                        -11L
  1002. #define TAPIERR_DESTNOANSWER                    -12L
  1003. #define TAPIERR_DESTUNAVAIL                     -13L
  1004. #define TAPIERR_UNKNOWNWINHANDLE                -14L
  1005. #define TAPIERR_UNKNOWNREQUESTID                -15L
  1006. #define TAPIERR_REQUESTFAILED                   -16L
  1007. #define TAPIERR_REQUESTCANCELLED                -17L
  1008. #define TAPIERR_INVALPOINTER                    -18L
  1009. #define TAPIERR_NOTADMIN                        -19L
  1010. #define TAPIERR_MMCWRITELOCKED                  -20L
  1011. #define TAPIERR_PROVIDERALREADYINSTALLED        -21L
  1012. #define TAPIERR_SCP_ALREADY_EXISTS -22L
  1013. #define TAPIERR_SCP_DOES_NOT_EXIST -23L
  1014. #define TAPIMAXDESTADDRESSSIZE                  80L
  1015. #define TAPIMAXAPPNAMESIZE                      40L
  1016. #define TAPIMAXCALLEDPARTYSIZE                  40L
  1017. #define TAPIMAXCOMMENTSIZE                      80L
  1018. #define TAPIMAXDEVICECLASSSIZE                  40L
  1019. #define TAPIMAXDEVICEIDSIZE                     40L
  1020. #ifndef GUID_DEFINED
  1021. #define GUID_DEFINED
  1022. typedef struct _GUID
  1023. {
  1024.     unsigned long  Data1;
  1025.     unsigned short Data2;
  1026.     unsigned short Data3;
  1027.     unsigned char  Data4[8];
  1028. } GUID;
  1029. #endif /* GUID_DEFINED */
  1030. #ifndef __LPGUID_DEFINED__
  1031. #define __LPGUID_DEFINED__
  1032. typedef GUID *LPGUID;
  1033. #endif
  1034. typedef struct lineaddresscaps_tag
  1035. {
  1036.     DWORD       dwTotalSize;
  1037.     DWORD       dwNeededSize;
  1038.     DWORD       dwUsedSize;
  1039.     DWORD       dwLineDeviceID;
  1040.     DWORD       dwAddressSize;
  1041.     DWORD       dwAddressOffset;
  1042.     DWORD       dwDevSpecificSize;
  1043.     DWORD       dwDevSpecificOffset;
  1044.     DWORD       dwAddressSharing;
  1045.     DWORD       dwAddressStates;
  1046.     DWORD       dwCallInfoStates;
  1047.     DWORD       dwCallerIDFlags;
  1048.     DWORD       dwCalledIDFlags;
  1049.     DWORD       dwConnectedIDFlags;
  1050.     DWORD       dwRedirectionIDFlags;
  1051.     DWORD       dwRedirectingIDFlags;
  1052.     DWORD       dwCallStates;
  1053.     DWORD       dwDialToneModes;
  1054.     DWORD       dwBusyModes;
  1055.     DWORD       dwSpecialInfo;
  1056.     DWORD       dwDisconnectModes;
  1057.     DWORD       dwMaxNumActiveCalls;
  1058.     DWORD       dwMaxNumOnHoldCalls;
  1059.     DWORD       dwMaxNumOnHoldPendingCalls;
  1060.     DWORD       dwMaxNumConference;
  1061.     DWORD       dwMaxNumTransConf;
  1062.     DWORD       dwAddrCapFlags;
  1063.     DWORD       dwCallFeatures;
  1064.     DWORD       dwRemoveFromConfCaps;
  1065.     DWORD       dwRemoveFromConfState;
  1066.     DWORD       dwTransferModes;
  1067.     DWORD       dwParkModes;
  1068.     DWORD       dwForwardModes;
  1069.     DWORD       dwMaxForwardEntries;
  1070.     DWORD       dwMaxSpecificEntries;
  1071.     DWORD       dwMinFwdNumRings;
  1072.     DWORD       dwMaxFwdNumRings;
  1073.     DWORD       dwMaxCallCompletions;
  1074.     DWORD       dwCallCompletionConds;
  1075.     DWORD       dwCallCompletionModes;
  1076.     DWORD       dwNumCompletionMessages;
  1077.     DWORD       dwCompletionMsgTextEntrySize;
  1078.     DWORD       dwCompletionMsgTextSize;
  1079.     DWORD       dwCompletionMsgTextOffset;
  1080.     DWORD       dwAddressFeatures;                              // TAPI v1.4
  1081. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1082.     DWORD       dwPredictiveAutoTransferStates;                 // TAPI v2.0
  1083.     DWORD       dwNumCallTreatments;                            // TAPI v2.0
  1084.     DWORD       dwCallTreatmentListSize;                        // TAPI v2.0
  1085.     DWORD       dwCallTreatmentListOffset;                      // TAPI v2.0
  1086.     DWORD       dwDeviceClassesSize;                            // TAPI v2.0
  1087.     DWORD       dwDeviceClassesOffset;                          // TAPI v2.0
  1088.     DWORD       dwMaxCallDataSize;                              // TAPI v2.0
  1089.     DWORD       dwCallFeatures2;                                // TAPI v2.0
  1090.     DWORD       dwMaxNoAnswerTimeout;                           // TAPI v2.0
  1091.     DWORD       dwConnectedModes;                               // TAPI v2.0
  1092.     DWORD       dwOfferingModes;                                // TAPI v2.0
  1093.     DWORD       dwAvailableMediaModes;                          // TAPI v2.0
  1094. #endif
  1095. } LINEADDRESSCAPS, FAR *LPLINEADDRESSCAPS;
  1096. typedef struct lineaddressstatus_tag
  1097. {
  1098.     DWORD       dwTotalSize;
  1099.     DWORD       dwNeededSize;
  1100.     DWORD       dwUsedSize;
  1101.     DWORD       dwNumInUse;
  1102.     DWORD       dwNumActiveCalls;
  1103.     DWORD       dwNumOnHoldCalls;
  1104.     DWORD       dwNumOnHoldPendCalls;
  1105.     DWORD       dwAddressFeatures;
  1106.     DWORD       dwNumRingsNoAnswer;
  1107.     DWORD       dwForwardNumEntries;
  1108.     DWORD       dwForwardSize;
  1109.     DWORD       dwForwardOffset;
  1110.     DWORD       dwTerminalModesSize;
  1111.     DWORD       dwTerminalModesOffset;
  1112.     DWORD       dwDevSpecificSize;
  1113.     DWORD       dwDevSpecificOffset;
  1114. } LINEADDRESSSTATUS, FAR *LPLINEADDRESSSTATUS;
  1115. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1116. typedef struct lineagentactivityentry_tag
  1117. {
  1118.     DWORD       dwID;                                           // TAPI v2.0
  1119.     DWORD       dwNameSize;                                     // TAPI v2.0
  1120.     DWORD       dwNameOffset;                                   // TAPI v2.0
  1121. } LINEAGENTACTIVITYENTRY, *LPLINEAGENTACTIVITYENTRY;
  1122. typedef struct lineagentactivitylist_tag
  1123. {
  1124.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1125.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1126.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1127.     DWORD       dwNumEntries;                                   // TAPI v2.0
  1128.     DWORD       dwListSize;                                     // TAPI v2.0
  1129.     DWORD       dwListOffset;                                   // TAPI v2.0
  1130. } LINEAGENTACTIVITYLIST, *LPLINEAGENTACTIVITYLIST;
  1131. typedef struct lineagentcaps_tag
  1132. {
  1133.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1134.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1135.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1136.     DWORD       dwAgentHandlerInfoSize;                         // TAPI v2.0
  1137.     DWORD       dwAgentHandlerInfoOffset;                       // TAPI v2.0
  1138.     DWORD       dwCapsVersion;                                  // TAPI v2.0
  1139.     DWORD       dwFeatures;                                     // TAPI v2.0
  1140.     DWORD       dwStates;                                       // TAPI v2.0
  1141.     DWORD       dwNextStates;                                   // TAPI v2.0
  1142.     DWORD       dwMaxNumGroupEntries;                           // TAPI v2.0
  1143.     DWORD       dwAgentStatusMessages;                          // TAPI v2.0
  1144.     DWORD       dwNumAgentExtensionIDs;                         // TAPI v2.0
  1145.     DWORD       dwAgentExtensionIDListSize;                     // TAPI v2.0
  1146.     DWORD       dwAgentExtensionIDListOffset;                   // TAPI v2.0
  1147. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  1148.     GUID        ProxyGUID;                                      // TAPI v2.2
  1149. #endif
  1150. } LINEAGENTCAPS, *LPLINEAGENTCAPS;
  1151. typedef struct lineagentgroupentry_tag
  1152. {
  1153.     struct
  1154.     {
  1155.         DWORD   dwGroupID1;                                     // TAPI v2.0
  1156.         DWORD   dwGroupID2;                                     // TAPI v2.0
  1157.         DWORD   dwGroupID3;                                     // TAPI v2.0
  1158.         DWORD   dwGroupID4;                                     // TAPI v2.0
  1159.     } GroupID;
  1160.     DWORD       dwNameSize;                                     // TAPI v2.0
  1161.     DWORD       dwNameOffset;                                   // TAPI v2.0
  1162. } LINEAGENTGROUPENTRY, *LPLINEAGENTGROUPENTRY;
  1163. typedef struct lineagentgrouplist_tag
  1164. {
  1165.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1166.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1167.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1168.     DWORD       dwNumEntries;                                   // TAPI v2.0
  1169.     DWORD       dwListSize;                                     // TAPI v2.0
  1170.     DWORD       dwListOffset;                                   // TAPI v2.0
  1171. } LINEAGENTGROUPLIST, *LPLINEAGENTGROUPLIST;
  1172. typedef struct lineagentstatus_tag
  1173. {
  1174.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1175.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1176.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1177.     DWORD       dwNumEntries;                                   // TAPI v2.0
  1178.     DWORD       dwGroupListSize;                                // TAPI v2.0
  1179.     DWORD       dwGroupListOffset;                              // TAPI v2.0
  1180.     DWORD       dwState;                                        // TAPI v2.0
  1181.     DWORD       dwNextState;                                    // TAPI v2.0
  1182.     DWORD       dwActivityID;                                   // TAPI v2.0
  1183.     DWORD       dwActivitySize;                                 // TAPI v2.0
  1184.     DWORD       dwActivityOffset;                               // TAPI v2.0
  1185.     DWORD       dwAgentFeatures;                                // TAPI v2.0
  1186.     DWORD       dwValidStates;                                  // TAPI v2.0
  1187.     DWORD       dwValidNextStates;                              // TAPI v2.0
  1188. } LINEAGENTSTATUS, *LPLINEAGENTSTATUS;
  1189. typedef struct lineappinfo_tag
  1190. {
  1191.     DWORD       dwMachineNameSize;                              // TAPI v2.0
  1192.     DWORD       dwMachineNameOffset;                            // TAPI v2.0
  1193.     DWORD       dwUserNameSize;                                 // TAPI v2.0
  1194.     DWORD       dwUserNameOffset;                               // TAPI v2.0
  1195.     DWORD       dwModuleFilenameSize;                           // TAPI v2.0
  1196.     DWORD       dwModuleFilenameOffset;                         // TAPI v2.0
  1197.     DWORD       dwFriendlyNameSize;                             // TAPI v2.0
  1198.     DWORD       dwFriendlyNameOffset;                           // TAPI v2.0
  1199.     DWORD       dwMediaModes;                                   // TAPI v2.0
  1200.     DWORD       dwAddressID;                                    // TAPI v2.0
  1201. } LINEAPPINFO, *LPLINEAPPINFO;
  1202. #endif
  1203. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  1204. typedef struct lineagententry_tag
  1205. {
  1206.     HAGENT      hAgent;                                         // TAPI v2.2
  1207.     DWORD       dwNameSize;                                     // TAPI v2.2
  1208.     DWORD       dwNameOffset;                                   // TAPI v2.2
  1209.     DWORD       dwIDSize;                                       // TAPI v2.2
  1210.     DWORD       dwIDOffset;                                     // TAPI v2.2
  1211.     DWORD       dwPINSize;                                      // TAPI v2.2
  1212.     DWORD       dwPINOffset;                                    // TAPI v2.2
  1213. } LINEAGENTENTRY, *LPLINEAGENTENTRY;
  1214. typedef struct lineagentlist_tag
  1215. {
  1216.     DWORD       dwTotalSize;                                    // TAPI v2.2
  1217.     DWORD       dwNeededSize;                                   // TAPI v2.2
  1218.     DWORD       dwUsedSize;                                     // TAPI v2.2
  1219.     DWORD       dwNumEntries;                                   // TAPI v2.2
  1220.     DWORD       dwListSize;                                     // TAPI v2.2
  1221.     DWORD       dwListOffset;                                   // TAPI v2.2
  1222. } LINEAGENTLIST, *LPLINEAGENTLIST;
  1223. typedef struct lineagentinfo_tag
  1224. {
  1225.     DWORD       dwTotalSize;                                    // TAPI v2.2
  1226.     DWORD       dwNeededSize;                                   // TAPI v2.2
  1227.     DWORD       dwUsedSize;                                     // TAPI v2.2
  1228.     DWORD       dwAgentState;                                   // TAPI v2.2
  1229.     DWORD       dwNextAgentState;                               // TAPI v2.2
  1230.     DWORD       dwMeasurementPeriod;                            // TAPI v2.2
  1231.     CURRENCY    cyOverallCallRate;                              // TAPI v2.2
  1232.     DWORD       dwNumberOfACDCalls;                             // TAPI v2.2
  1233.     DWORD       dwNumberOfIncomingCalls;                        // TAPI v2.2
  1234.     DWORD       dwNumberOfOutgoingCalls;                        // TAPI v2.2
  1235.     DWORD       dwTotalACDTalkTime;                             // TAPI v2.2
  1236.     DWORD       dwTotalACDCallTime;                             // TAPI v2.2
  1237.     DWORD       dwTotalACDWrapUpTime;                           // TAPI v2.2
  1238. } LINEAGENTINFO, *LPLINEAGENTINFO;
  1239. typedef struct lineagentsession_tag
  1240. {
  1241.     HAGENTSESSION   hAgentSession;                              // TAPI v2.2
  1242.     HAGENT          hAgent;                                     // TAPI v2.2
  1243.     GUID            GroupID;                                    // TAPI v2.2
  1244.     DWORD           dwWorkingAddressID;                         // TAPI v2.2
  1245. } LINEAGENTSESSIONENTRY  , *LPLINEAGENTSESSIONENTRY;
  1246. typedef struct lineagentsessionlist_tag
  1247. {
  1248.     DWORD       dwTotalSize;                                    // TAPI v2.2
  1249.     DWORD       dwNeededSize;                                   // TAPI v2.2
  1250.     DWORD       dwUsedSize;                                     // TAPI v2.2
  1251.     DWORD       dwNumEntries;                                   // TAPI v2.2
  1252.     DWORD       dwListSize;                                     // TAPI v2.2
  1253.     DWORD       dwListOffset;                                   // TAPI v2.2
  1254. } LINEAGENTSESSIONLIST, *LPLINEAGENTSESSIONLIST;
  1255. typedef struct lineagentsessioninfo_tag
  1256. {
  1257.     DWORD       dwTotalSize;                                    // TAPI v2.2
  1258.     DWORD       dwNeededSize;                                   // TAPI v2.2
  1259.     DWORD       dwUsedSize;                                     // TAPI v2.2
  1260.     DWORD       dwAgentSessionState;                            // TAPI v2.2
  1261.     DWORD       dwNextAgentSessionState;                        // TAPI v2.2
  1262.     DATE        dateSessionStartTime;                           // TAPI v2.2
  1263.     DWORD       dwSessionDuration;                              // TAPI v2.2
  1264.     DWORD       dwNumberOfCalls;                                // TAPI v2.2
  1265.     DWORD       dwTotalTalkTime;                                // TAPI v2.2
  1266.     DWORD       dwAverageTalkTime;                              // TAPI v2.2
  1267.     DWORD       dwTotalCallTime;                                // TAPI v2.2
  1268.     DWORD       dwAverageCallTime;                              // TAPI v2.2
  1269.     DWORD       dwTotalWrapUpTime;                              // TAPI v2.2
  1270.     DWORD       dwAverageWrapUpTime;                            // TAPI v2.2
  1271.     CURRENCY    cyACDCallRate;                                  // TAPI v2.2
  1272.     DWORD       dwLongestTimeToAnswer;                          // TAPI v2.2
  1273.     DWORD       dwAverageTimeToAnswer;                          // TAPI v2.2
  1274. } LINEAGENTSESSIONINFO, *LPLINEAGENTSESSIONINFO;
  1275. typedef struct linequeueentry_tag
  1276. {
  1277.     DWORD       dwQueueID;                                      // TAPI v2.2
  1278.     DWORD       dwNameSize;                                     // TAPI v2.2
  1279.     DWORD       dwNameOffset;                                   // TAPI v2.2
  1280. } LINEQUEUEENTRY, *LPLINEQUEUEENTRY;
  1281. typedef struct linequeuelist_tag
  1282. {
  1283.     DWORD       dwTotalSize;                                    // TAPI v2.2
  1284.     DWORD       dwNeededSize;                                   // TAPI v2.2
  1285.     DWORD       dwUsedSize;                                     // TAPI v2.2
  1286.     DWORD       dwNumEntries;                                   // TAPI v2.2
  1287.     DWORD       dwListSize;                                     // TAPI v2.2
  1288.     DWORD       dwListOffset;                                   // TAPI v2.2
  1289. } LINEQUEUELIST, *LPLINEQUEUELIST;
  1290. typedef struct linequeueinfo_tag
  1291. {
  1292.     DWORD       dwTotalSize;                                    // TAPI v2.2
  1293.     DWORD       dwNeededSize;                                   // TAPI v2.2
  1294.     DWORD       dwUsedSize;                                     // TAPI v2.2
  1295.     DWORD       dwMeasurementPeriod;                            // TAPI v2.2
  1296.     DWORD       dwTotalCallsQueued;                             // TAPI v2.2
  1297.     DWORD       dwCurrentCallsQueued;                           // TAPI v2.2
  1298.     DWORD       dwTotalCallsAbandoned;                          // TAPI v2.2
  1299.     DWORD       dwTotalCallsFlowedIn;                           // TAPI v2.2
  1300.     DWORD       dwTotalCallsFlowedOut;                          // TAPI v2.2
  1301.     DWORD       dwLongestEverWaitTime;                          // TAPI v2.2
  1302.     DWORD       dwCurrentLongestWaitTime;                       // TAPI v2.2
  1303.     DWORD       dwAverageWaitTime;                              // TAPI v2.2
  1304.     DWORD       dwFinalDisposition;                             // TAPI v2.2
  1305. } LINEQUEUEINFO, *LPLINEQUEUEINFO;
  1306. typedef struct lineproxyrequestlist_tag
  1307. {
  1308.     DWORD       dwTotalSize;                                    // TAPI v2.2
  1309.     DWORD       dwNeededSize;                                   // TAPI v2.2
  1310.     DWORD       dwUsedSize;                                     // TAPI v2.2
  1311.     DWORD       dwNumEntries;                                   // TAPI v2.2
  1312.     DWORD       dwListSize;                                     // TAPI v2.2
  1313.     DWORD       dwListOffset;                                   // TAPI v2.2
  1314. } LINEPROXYREQUESTLIST, *LPLINEPROXYREQUESTLIST;
  1315. #endif
  1316. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  1317. typedef struct linecallhubtrackinginfo_tag
  1318. {
  1319.     DWORD       dwTotalSize;                                    // TAPI v3.0
  1320.     DWORD       dwNeededSize;                                   // TAPI v3.0
  1321.     DWORD       dwUsedSize;                                     // TAPI v3.0
  1322.     DWORD       dwAvailableTracking;                            // TAPI v3.0
  1323.     DWORD       dwCurrentTracking;                              // TAPI v3.0
  1324. } LINECALLHUBTRACKINGINFO, FAR *LPLINECALLHUBTRACKINGINFO;
  1325. #endif
  1326. typedef struct linedialparams_tag
  1327. {
  1328.     DWORD       dwDialPause;
  1329.     DWORD       dwDialSpeed;
  1330.     DWORD       dwDigitDuration;
  1331.     DWORD       dwWaitForDialtone;
  1332. } LINEDIALPARAMS, FAR *LPLINEDIALPARAMS;
  1333. typedef struct linecallinfo_tag
  1334. {
  1335.     DWORD       dwTotalSize;
  1336.     DWORD       dwNeededSize;
  1337.     DWORD       dwUsedSize;
  1338.     HLINE       hLine;
  1339.     DWORD       dwLineDeviceID;
  1340.     DWORD       dwAddressID;
  1341.     DWORD       dwBearerMode;
  1342.     DWORD       dwRate;
  1343.     DWORD       dwMediaMode;
  1344.     DWORD       dwAppSpecific;
  1345.     DWORD       dwCallID;
  1346.     DWORD       dwRelatedCallID;
  1347.     DWORD       dwCallParamFlags;
  1348.     DWORD       dwCallStates;
  1349.     DWORD       dwMonitorDigitModes;
  1350.     DWORD       dwMonitorMediaModes;
  1351.     LINEDIALPARAMS  DialParams;
  1352.     DWORD       dwOrigin;
  1353.     DWORD       dwReason;
  1354.     DWORD       dwCompletionID;
  1355.     DWORD       dwNumOwners;
  1356.     DWORD       dwNumMonitors;
  1357.     DWORD       dwCountryCode;
  1358.     DWORD       dwTrunk;
  1359.     DWORD       dwCallerIDFlags;
  1360.     DWORD       dwCallerIDSize;
  1361.     DWORD       dwCallerIDOffset;
  1362.     DWORD       dwCallerIDNameSize;
  1363.     DWORD       dwCallerIDNameOffset;
  1364.     DWORD       dwCalledIDFlags;
  1365.     DWORD       dwCalledIDSize;
  1366.     DWORD       dwCalledIDOffset;
  1367.     DWORD       dwCalledIDNameSize;
  1368.     DWORD       dwCalledIDNameOffset;
  1369.     DWORD       dwConnectedIDFlags;
  1370.     DWORD       dwConnectedIDSize;
  1371.     DWORD       dwConnectedIDOffset;
  1372.     DWORD       dwConnectedIDNameSize;
  1373.     DWORD       dwConnectedIDNameOffset;
  1374.     DWORD       dwRedirectionIDFlags;
  1375.     DWORD       dwRedirectionIDSize;
  1376.     DWORD       dwRedirectionIDOffset;
  1377.     DWORD       dwRedirectionIDNameSize;
  1378.     DWORD       dwRedirectionIDNameOffset;
  1379.     DWORD       dwRedirectingIDFlags;
  1380.     DWORD       dwRedirectingIDSize;
  1381.     DWORD       dwRedirectingIDOffset;
  1382.     DWORD       dwRedirectingIDNameSize;
  1383.     DWORD       dwRedirectingIDNameOffset;
  1384.     DWORD       dwAppNameSize;
  1385.     DWORD       dwAppNameOffset;
  1386.     DWORD       dwDisplayableAddressSize;
  1387.     DWORD       dwDisplayableAddressOffset;
  1388.     DWORD       dwCalledPartySize;
  1389.     DWORD       dwCalledPartyOffset;
  1390.     DWORD       dwCommentSize;
  1391.     DWORD       dwCommentOffset;
  1392.     DWORD       dwDisplaySize;
  1393.     DWORD       dwDisplayOffset;
  1394.     DWORD       dwUserUserInfoSize;
  1395.     DWORD       dwUserUserInfoOffset;
  1396.     DWORD       dwHighLevelCompSize;
  1397.     DWORD       dwHighLevelCompOffset;
  1398.     DWORD       dwLowLevelCompSize;
  1399.     DWORD       dwLowLevelCompOffset;
  1400.     DWORD       dwChargingInfoSize;
  1401.     DWORD       dwChargingInfoOffset;
  1402.     DWORD       dwTerminalModesSize;
  1403.     DWORD       dwTerminalModesOffset;
  1404.     DWORD       dwDevSpecificSize;
  1405.     DWORD       dwDevSpecificOffset;
  1406. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1407.     DWORD       dwCallTreatment;                                // TAPI v2.0
  1408.     DWORD       dwCallDataSize;                                 // TAPI v2.0
  1409.     DWORD       dwCallDataOffset;                               // TAPI v2.0
  1410.     DWORD       dwSendingFlowspecSize;                          // TAPI v2.0
  1411.     DWORD       dwSendingFlowspecOffset;                        // TAPI v2.0
  1412.     DWORD       dwReceivingFlowspecSize;                        // TAPI v2.0
  1413.     DWORD       dwReceivingFlowspecOffset;                      // TAPI v2.0
  1414. #endif
  1415. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  1416.     DWORD       dwCallerIDAddressType;                          // TAPI v3.0
  1417.     DWORD       dwCalledIDAddressType;                          // TAPI v3.0
  1418.     DWORD       dwConnectedIDAddressType;                       // TAPI v3.0
  1419.     DWORD       dwRedirectionIDAddressType;                     // TAPI v3.0
  1420.     DWORD       dwRedirectingIDAddressType;                     // TAPI v3.0
  1421. #endif
  1422. } LINECALLINFO, FAR *LPLINECALLINFO;
  1423. typedef struct linecalllist_tag
  1424. {
  1425.     DWORD       dwTotalSize;
  1426.     DWORD       dwNeededSize;
  1427.     DWORD       dwUsedSize;
  1428.     DWORD       dwCallsNumEntries;
  1429.     DWORD       dwCallsSize;
  1430.     DWORD       dwCallsOffset;
  1431. } LINECALLLIST, FAR *LPLINECALLLIST;
  1432. typedef struct linecallparams_tag               // Defaults:
  1433. {
  1434.     DWORD       dwTotalSize;                    // ---------
  1435.     DWORD       dwBearerMode;                   // voice
  1436.     DWORD       dwMinRate;                      // (3.1kHz)
  1437.     DWORD       dwMaxRate;                      // (3.1kHz)
  1438.     DWORD       dwMediaMode;                    // interactiveVoice
  1439.     DWORD       dwCallParamFlags;               // 0
  1440.     DWORD       dwAddressMode;                  // addressID
  1441.     DWORD       dwAddressID;                    // (any available)
  1442.     LINEDIALPARAMS  DialParams;                 // (0, 0, 0, 0)
  1443.     DWORD       dwOrigAddressSize;              // 0
  1444.     DWORD       dwOrigAddressOffset;
  1445.     DWORD       dwDisplayableAddressSize;
  1446.     DWORD       dwDisplayableAddressOffset;
  1447.     DWORD       dwCalledPartySize;              // 0
  1448.     DWORD       dwCalledPartyOffset;
  1449.     DWORD       dwCommentSize;                  // 0
  1450.     DWORD       dwCommentOffset;
  1451.     DWORD       dwUserUserInfoSize;             // 0
  1452.     DWORD       dwUserUserInfoOffset;
  1453.     DWORD       dwHighLevelCompSize;            // 0
  1454.     DWORD       dwHighLevelCompOffset;
  1455.     DWORD       dwLowLevelCompSize;             // 0
  1456.     DWORD       dwLowLevelCompOffset;
  1457.     DWORD       dwDevSpecificSize;              // 0
  1458.     DWORD       dwDevSpecificOffset;
  1459. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1460.     DWORD       dwPredictiveAutoTransferStates;                 // TAPI v2.0
  1461.     DWORD       dwTargetAddressSize;                            // TAPI v2.0
  1462.     DWORD       dwTargetAddressOffset;                          // TAPI v2.0
  1463.     DWORD       dwSendingFlowspecSize;                          // TAPI v2.0
  1464.     DWORD       dwSendingFlowspecOffset;                        // TAPI v2.0
  1465.     DWORD       dwReceivingFlowspecSize;                        // TAPI v2.0
  1466.     DWORD       dwReceivingFlowspecOffset;                      // TAPI v2.0
  1467.     DWORD       dwDeviceClassSize;                              // TAPI v2.0
  1468.     DWORD       dwDeviceClassOffset;                            // TAPI v2.0
  1469.     DWORD       dwDeviceConfigSize;                             // TAPI v2.0
  1470.     DWORD       dwDeviceConfigOffset;                           // TAPI v2.0
  1471.     DWORD       dwCallDataSize;                                 // TAPI v2.0
  1472.     DWORD       dwCallDataOffset;                               // TAPI v2.0
  1473.     DWORD       dwNoAnswerTimeout;                              // TAPI v2.0
  1474.     DWORD       dwCallingPartyIDSize;                           // TAPI v2.0
  1475.     DWORD       dwCallingPartyIDOffset;                         // TAPI v2.0
  1476. #endif
  1477. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  1478.     DWORD       dwAddressType;                                  // TAPI v3.0
  1479. #endif
  1480. } LINECALLPARAMS, FAR *LPLINECALLPARAMS;
  1481. typedef struct linecallstatus_tag
  1482. {
  1483.     DWORD       dwTotalSize;
  1484.     DWORD       dwNeededSize;
  1485.     DWORD       dwUsedSize;
  1486.     DWORD       dwCallState;
  1487.     DWORD       dwCallStateMode;
  1488.     DWORD       dwCallPrivilege;
  1489.     DWORD       dwCallFeatures;
  1490.     DWORD       dwDevSpecificSize;
  1491.     DWORD       dwDevSpecificOffset;
  1492. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1493.     DWORD       dwCallFeatures2;                                // TAPI v2.0
  1494. #if WIN32
  1495.     SYSTEMTIME  tStateEntryTime;                                // TAPI v2.0
  1496. #else
  1497.     WORD        tStateEntryTime[8];                             // TAPI v2.0
  1498. #endif
  1499. #endif
  1500. } LINECALLSTATUS, FAR *LPLINECALLSTATUS;
  1501. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1502. typedef struct linecalltreatmententry_tag
  1503. {
  1504.     DWORD       dwCallTreatmentID;                              // TAPI v2.0
  1505.     DWORD       dwCallTreatmentNameSize;                        // TAPI v2.0
  1506.     DWORD       dwCallTreatmentNameOffset;                      // TAPI v2.0
  1507. } LINECALLTREATMENTENTRY, FAR *LPLINECALLTREATMENTENTRY;
  1508. #endif
  1509. typedef struct linecardentry_tag
  1510. {
  1511.     DWORD       dwPermanentCardID;
  1512.     DWORD       dwCardNameSize;
  1513.     DWORD       dwCardNameOffset;
  1514.     DWORD       dwCardNumberDigits;                             // TAPI v1.4
  1515.     DWORD       dwSameAreaRuleSize;                             // TAPI v1.4
  1516.     DWORD       dwSameAreaRuleOffset;                           // TAPI v1.4
  1517.     DWORD       dwLongDistanceRuleSize;                         // TAPI v1.4
  1518.     DWORD       dwLongDistanceRuleOffset;                       // TAPI v1.4
  1519.     DWORD       dwInternationalRuleSize;                        // TAPI v1.4
  1520.     DWORD       dwInternationalRuleOffset;                      // TAPI v1.4
  1521.     DWORD       dwOptions;                                      // TAPI v1.4
  1522. } LINECARDENTRY, FAR *LPLINECARDENTRY;
  1523. typedef struct linecountryentry_tag
  1524. {
  1525.     DWORD       dwCountryID;                                    // TAPI v1.4
  1526.     DWORD       dwCountryCode;                                  // TAPI v1.4
  1527.     DWORD       dwNextCountryID;                                // TAPI v1.4
  1528.     DWORD       dwCountryNameSize;                              // TAPI v1.4
  1529.     DWORD       dwCountryNameOffset;                            // TAPI v1.4
  1530.     DWORD       dwSameAreaRuleSize;                             // TAPI v1.4
  1531.     DWORD       dwSameAreaRuleOffset;                           // TAPI v1.4
  1532.     DWORD       dwLongDistanceRuleSize;                         // TAPI v1.4
  1533.     DWORD       dwLongDistanceRuleOffset;                       // TAPI v1.4
  1534.     DWORD       dwInternationalRuleSize;                        // TAPI v1.4
  1535.     DWORD       dwInternationalRuleOffset;                      // TAPI v1.4
  1536. } LINECOUNTRYENTRY, FAR *LPLINECOUNTRYENTRY;
  1537. typedef struct linecountrylist_tag
  1538. {
  1539.     DWORD       dwTotalSize;                                    // TAPI v1.4
  1540.     DWORD       dwNeededSize;                                   // TAPI v1.4
  1541.     DWORD       dwUsedSize;                                     // TAPI v1.4
  1542.     DWORD       dwNumCountries;                                 // TAPI v1.4
  1543.     DWORD       dwCountryListSize;                              // TAPI v1.4
  1544.     DWORD       dwCountryListOffset;                            // TAPI v1.4
  1545. } LINECOUNTRYLIST, FAR *LPLINECOUNTRYLIST;
  1546. typedef struct linedevcaps_tag
  1547. {
  1548.     DWORD       dwTotalSize;
  1549.     DWORD       dwNeededSize;
  1550.     DWORD       dwUsedSize;
  1551.     DWORD       dwProviderInfoSize;
  1552.     DWORD       dwProviderInfoOffset;
  1553.     DWORD       dwSwitchInfoSize;
  1554.     DWORD       dwSwitchInfoOffset;
  1555.     DWORD       dwPermanentLineID;
  1556.     DWORD       dwLineNameSize;
  1557.     DWORD       dwLineNameOffset;
  1558.     DWORD       dwStringFormat;
  1559.     DWORD       dwAddressModes;
  1560.     DWORD       dwNumAddresses;
  1561.     DWORD       dwBearerModes;
  1562.     DWORD       dwMaxRate;
  1563.     DWORD       dwMediaModes;
  1564.     DWORD       dwGenerateToneModes;
  1565.     DWORD       dwGenerateToneMaxNumFreq;
  1566.     DWORD       dwGenerateDigitModes;
  1567.     DWORD       dwMonitorToneMaxNumFreq;
  1568.     DWORD       dwMonitorToneMaxNumEntries;
  1569.     DWORD       dwMonitorDigitModes;
  1570.     DWORD       dwGatherDigitsMinTimeout;
  1571.     DWORD       dwGatherDigitsMaxTimeout;
  1572.     DWORD       dwMedCtlDigitMaxListSize;
  1573.     DWORD       dwMedCtlMediaMaxListSize;
  1574.     DWORD       dwMedCtlToneMaxListSize;
  1575.     DWORD       dwMedCtlCallStateMaxListSize;
  1576.     DWORD       dwDevCapFlags;
  1577.     DWORD       dwMaxNumActiveCalls;
  1578.     DWORD       dwAnswerMode;
  1579.     DWORD       dwRingModes;
  1580.     DWORD       dwLineStates;
  1581.     DWORD       dwUUIAcceptSize;
  1582.     DWORD       dwUUIAnswerSize;
  1583.     DWORD       dwUUIMakeCallSize;
  1584.     DWORD       dwUUIDropSize;
  1585.     DWORD       dwUUISendUserUserInfoSize;
  1586.     DWORD       dwUUICallInfoSize;
  1587.     LINEDIALPARAMS  MinDialParams;
  1588.     LINEDIALPARAMS  MaxDialParams;
  1589.     LINEDIALPARAMS  DefaultDialParams;
  1590.     DWORD       dwNumTerminals;
  1591.     DWORD       dwTerminalCapsSize;
  1592.     DWORD       dwTerminalCapsOffset;
  1593.     DWORD       dwTerminalTextEntrySize;
  1594.     DWORD       dwTerminalTextSize;
  1595.     DWORD       dwTerminalTextOffset;
  1596.     DWORD       dwDevSpecificSize;
  1597.     DWORD       dwDevSpecificOffset;
  1598.     DWORD       dwLineFeatures;                                 // TAPI v1.4
  1599. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1600.     DWORD       dwSettableDevStatus;                            // TAPI v2.0
  1601.     DWORD       dwDeviceClassesSize;                            // TAPI v2.0
  1602.     DWORD       dwDeviceClassesOffset;                          // TAPI v2.0
  1603. #endif
  1604. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  1605.     GUID        PermanentLineGuid;                              // TAPI v2.2
  1606. #endif
  1607. #if (TAPI_CURRENT_VERSION >= 0x00030000)
  1608.     DWORD       dwAddressTypes;                                 // TAPI v3.0
  1609.     GUID        ProtocolGuid;                                   // TAPI v3.0
  1610.     DWORD       dwAvailableTracking;                            // TAPI v3.0
  1611. #endif
  1612. } LINEDEVCAPS, FAR *LPLINEDEVCAPS;
  1613. typedef struct linedevstatus_tag
  1614. {
  1615.     DWORD       dwTotalSize;
  1616.     DWORD       dwNeededSize;
  1617.     DWORD       dwUsedSize;
  1618.     DWORD       dwNumOpens;
  1619.     DWORD       dwOpenMediaModes;
  1620.     DWORD       dwNumActiveCalls;
  1621.     DWORD       dwNumOnHoldCalls;
  1622.     DWORD       dwNumOnHoldPendCalls;
  1623.     DWORD       dwLineFeatures;
  1624.     DWORD       dwNumCallCompletions;
  1625.     DWORD       dwRingMode;
  1626.     DWORD       dwSignalLevel;
  1627.     DWORD       dwBatteryLevel;
  1628.     DWORD       dwRoamMode;
  1629.     DWORD       dwDevStatusFlags;
  1630.     DWORD       dwTerminalModesSize;
  1631.     DWORD       dwTerminalModesOffset;
  1632.     DWORD       dwDevSpecificSize;
  1633.     DWORD       dwDevSpecificOffset;
  1634. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1635.     DWORD       dwAvailableMediaModes;                          // TAPI v2.0
  1636.     DWORD       dwAppInfoSize;                                  // TAPI v2.0
  1637.     DWORD       dwAppInfoOffset;                                // TAPI v2.0
  1638. #endif
  1639. } LINEDEVSTATUS, FAR *LPLINEDEVSTATUS;
  1640. typedef struct lineextensionid_tag
  1641. {
  1642.     DWORD       dwExtensionID0;
  1643.     DWORD       dwExtensionID1;
  1644.     DWORD       dwExtensionID2;
  1645.     DWORD       dwExtensionID3;
  1646. } LINEEXTENSIONID, FAR *LPLINEEXTENSIONID;
  1647. typedef struct lineforward_tag
  1648. {
  1649.     DWORD       dwForwardMode;
  1650.     DWORD       dwCallerAddressSize;
  1651.     DWORD       dwCallerAddressOffset;
  1652.     DWORD       dwDestCountryCode;
  1653.     DWORD       dwDestAddressSize;
  1654.     DWORD       dwDestAddressOffset;
  1655. #if (TAPI_CURRENT_VERSION >= 0x00030001)
  1656.     DWORD       dwCallerAddressType;
  1657.     DWORD       dwDestAddressType;
  1658. #endif
  1659. } LINEFORWARD, FAR *LPLINEFORWARD;
  1660. typedef struct lineforwardlist_tag
  1661. {
  1662.     DWORD       dwTotalSize;
  1663.     DWORD       dwNumEntries;
  1664.     LINEFORWARD ForwardList[1];
  1665. } LINEFORWARDLIST, FAR *LPLINEFORWARDLIST;
  1666. typedef struct linegeneratetone_tag
  1667. {
  1668.     DWORD       dwFrequency;
  1669.     DWORD       dwCadenceOn;
  1670.     DWORD       dwCadenceOff;
  1671.     DWORD       dwVolume;
  1672. } LINEGENERATETONE, FAR *LPLINEGENERATETONE;
  1673. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1674. typedef struct lineinitializeexparams_tag
  1675. {
  1676.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1677.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1678.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1679.     DWORD       dwOptions;                                      // TAPI v2.0
  1680.     union
  1681.     {
  1682.         HANDLE  hEvent;                                         // TAPI v2.0
  1683.         HANDLE  hCompletionPort;                                // TAPI v2.0
  1684.     } Handles;
  1685.     DWORD       dwCompletionKey;                                // TAPI v2.0
  1686. } LINEINITIALIZEEXPARAMS, FAR *LPLINEINITIALIZEEXPARAMS;
  1687. #endif
  1688. typedef struct linelocationentry_tag
  1689. {
  1690.     DWORD       dwPermanentLocationID;
  1691.     DWORD       dwLocationNameSize;
  1692.     DWORD       dwLocationNameOffset;
  1693.     DWORD       dwCountryCode;
  1694.     DWORD       dwCityCodeSize;
  1695.     DWORD       dwCityCodeOffset;
  1696.     DWORD       dwPreferredCardID;
  1697.     DWORD       dwLocalAccessCodeSize;                          // TAPI v1.4
  1698.     DWORD       dwLocalAccessCodeOffset;                        // TAPI v1.4
  1699.     DWORD       dwLongDistanceAccessCodeSize;                   // TAPI v1.4
  1700.     DWORD       dwLongDistanceAccessCodeOffset;                 // TAPI v1.4
  1701.     DWORD       dwTollPrefixListSize;                           // TAPI v1.4
  1702.     DWORD       dwTollPrefixListOffset;                         // TAPI v1.4
  1703.     DWORD       dwCountryID;                                    // TAPI v1.4
  1704.     DWORD       dwOptions;                                      // TAPI v1.4
  1705.     DWORD       dwCancelCallWaitingSize;                        // TAPI v1.4
  1706.     DWORD       dwCancelCallWaitingOffset;                      // TAPI v1.4
  1707. } LINELOCATIONENTRY, FAR *LPLINELOCATIONENTRY;
  1708. typedef struct linemediacontrolcallstate_tag
  1709. {
  1710.     DWORD       dwCallStates;
  1711.     DWORD       dwMediaControl;
  1712. } LINEMEDIACONTROLCALLSTATE, FAR *LPLINEMEDIACONTROLCALLSTATE;
  1713. typedef struct linemediacontroldigit_tag
  1714. {
  1715.     DWORD       dwDigit;
  1716.     DWORD       dwDigitModes;
  1717.     DWORD       dwMediaControl;
  1718. } LINEMEDIACONTROLDIGIT, FAR *LPLINEMEDIACONTROLDIGIT;
  1719. typedef struct linemediacontrolmedia_tag
  1720. {
  1721.     DWORD       dwMediaModes;
  1722.     DWORD       dwDuration;
  1723.     DWORD       dwMediaControl;
  1724. } LINEMEDIACONTROLMEDIA, FAR *LPLINEMEDIACONTROLMEDIA;
  1725. typedef struct linemediacontroltone_tag
  1726. {
  1727.     DWORD       dwAppSpecific;
  1728.     DWORD       dwDuration;
  1729.     DWORD       dwFrequency1;
  1730.     DWORD       dwFrequency2;
  1731.     DWORD       dwFrequency3;
  1732.     DWORD       dwMediaControl;
  1733. } LINEMEDIACONTROLTONE, FAR *LPLINEMEDIACONTROLTONE;
  1734. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1735. typedef struct linemessage_tag
  1736. {
  1737.     DWORD       hDevice;                                        // TAPI v2.0
  1738.     DWORD       dwMessageID;                                    // TAPI v2.0
  1739.     DWORD_PTR   dwCallbackInstance;                             // TAPI v2.0
  1740.     DWORD_PTR   dwParam1;                                       // TAPI v2.0
  1741.     DWORD_PTR   dwParam2;                                       // TAPI v2.0
  1742.     DWORD_PTR   dwParam3;                                       // TAPI v2.0
  1743. } LINEMESSAGE, FAR *LPLINEMESSAGE;
  1744. #endif
  1745. typedef struct linemonitortone_tag
  1746. {
  1747.     DWORD       dwAppSpecific;
  1748.     DWORD       dwDuration;
  1749.     DWORD       dwFrequency1;
  1750.     DWORD       dwFrequency2;
  1751.     DWORD       dwFrequency3;
  1752. } LINEMONITORTONE, FAR *LPLINEMONITORTONE;
  1753. typedef struct lineproviderentry_tag
  1754. {
  1755.     DWORD       dwPermanentProviderID;                          // TAPI v1.4
  1756.     DWORD       dwProviderFilenameSize;                         // TAPI v1.4
  1757.     DWORD       dwProviderFilenameOffset;                       // TAPI v1.4
  1758. } LINEPROVIDERENTRY, FAR *LPLINEPROVIDERENTRY;
  1759. typedef struct lineproviderlist_tag
  1760. {
  1761.     DWORD       dwTotalSize;                                    // TAPI v1.4
  1762.     DWORD       dwNeededSize;                                   // TAPI v1.4
  1763.     DWORD       dwUsedSize;                                     // TAPI v1.4
  1764.     DWORD       dwNumProviders;                                 // TAPI v1.4
  1765.     DWORD       dwProviderListSize;                             // TAPI v1.4
  1766.     DWORD       dwProviderListOffset;                           // TAPI v1.4
  1767. } LINEPROVIDERLIST, FAR *LPLINEPROVIDERLIST;
  1768. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1769. typedef struct lineproxyrequest_tag
  1770. {
  1771.     DWORD       dwSize;                                         // TAPI v2.0
  1772.     DWORD       dwClientMachineNameSize;                        // TAPI v2.0
  1773.     DWORD       dwClientMachineNameOffset;                      // TAPI v2.0
  1774.     DWORD       dwClientUserNameSize;                           // TAPI v2.0
  1775.     DWORD       dwClientUserNameOffset;                         // TAPI v2.0
  1776.     DWORD       dwClientAppAPIVersion;                          // TAPI v2.0
  1777.     DWORD       dwRequestType;                                  // TAPI v2.0
  1778.     union
  1779.     {
  1780.     struct
  1781.     {
  1782.         DWORD                   dwAddressID;                    // TAPI v2.0
  1783.         LINEAGENTGROUPLIST      GroupList;                      // TAPI v2.0
  1784.     } SetAgentGroup;
  1785.     struct
  1786.     {
  1787.         DWORD                   dwAddressID;                    // TAPI v2.0
  1788.         DWORD                   dwAgentState;                   // TAPI v2.0
  1789.         DWORD                   dwNextAgentState;               // TAPI v2.0
  1790.     } SetAgentState;
  1791.     struct
  1792.     {
  1793.         DWORD                   dwAddressID;                    // TAPI v2.0
  1794.         DWORD                   dwActivityID;                   // TAPI v2.0
  1795.     } SetAgentActivity;
  1796.     struct
  1797.     {
  1798.         DWORD                   dwAddressID;                    // TAPI v2.0
  1799.         LINEAGENTCAPS           AgentCaps;                      // TAPI v2.0
  1800.     } GetAgentCaps;
  1801.     struct
  1802.     {
  1803.         DWORD                   dwAddressID;                    // TAPI v2.0
  1804.         LINEAGENTSTATUS         AgentStatus;                    // TAPI v2.0
  1805.     } GetAgentStatus;
  1806.     struct
  1807.     {
  1808.         DWORD                   dwAddressID;                    // TAPI v2.0
  1809.         DWORD                   dwAgentExtensionIDIndex;        // TAPI v2.0
  1810.         DWORD                   dwSize;                         // TAPI v2.0
  1811.         BYTE                    Params[1];                      // TAPI v2.0
  1812.     } AgentSpecific;
  1813.     struct
  1814.     {
  1815.         DWORD                   dwAddressID;                    // TAPI v2.0
  1816.         LINEAGENTACTIVITYLIST   ActivityList;                   // TAPI v2.0
  1817.     } GetAgentActivityList;
  1818.     struct
  1819.     {
  1820.         DWORD                   dwAddressID;                    // TAPI v2.0
  1821.         LINEAGENTGROUPLIST      GroupList;                      // TAPI v2.0
  1822.     } GetAgentGroupList;
  1823. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  1824.     struct
  1825.     {
  1826.         HAGENT                  hAgent;                         // TAPI v2.2
  1827.         DWORD                   dwAgentIDSize;                  // TAPI v2.2
  1828.         DWORD                   dwAgentIDOffset;                // TAPI v2.2
  1829.         DWORD                   dwAgentPINSize;                 // TAPI v2.2
  1830.         DWORD                   dwAgentPINOffset;
  1831.     } CreateAgent;
  1832.     struct
  1833.     {
  1834.         HAGENT                  hAgent;                         // TAPI v2.2
  1835.         DWORD                   dwAgentState;                   // TAPI v2.2
  1836.         DWORD                   dwNextAgentState;               // TAPI v2.2
  1837.     } SetAgentStateEx;
  1838.     struct
  1839.     {
  1840.         HAGENT                  hAgent;                         // TAPI v2.2
  1841.         DWORD                   dwMeasurementPeriod;            // TAPI v2.2
  1842.     } SetAgentMeasurementPeriod;
  1843.     struct
  1844.     {
  1845.         HAGENT                  hAgent;                         // TAPI v2.2
  1846.         LINEAGENTINFO           AgentInfo;                      // TAPI v2.2
  1847.     } GetAgentInfo;
  1848.     struct
  1849.     {
  1850.         HAGENTSESSION           hAgentSession;                  // TAPI v2.2
  1851.         DWORD                   dwAgentPINSize;
  1852.         DWORD                   dwAgentPINOffset;
  1853.         HAGENT                  hAgent;                         // TAPI v2.2
  1854.         GUID                    GroupID;                        // TAPI v2.2
  1855.         DWORD                   dwWorkingAddressID;             // TAPI v2.2
  1856.     } CreateAgentSession;
  1857.     struct
  1858.     {
  1859.         HAGENT                  hAgent;                         // TAPI v2.2
  1860.         LINEAGENTSESSIONLIST    SessionList;                    // TAPI v2.2
  1861.     } GetAgentSessionList;
  1862.     struct
  1863.     {
  1864.         HAGENTSESSION           hAgentSession;                  // TAPI v2.2
  1865.         LINEAGENTSESSIONINFO    SessionInfo;                    // TAPI v2.2
  1866.     } GetAgentSessionInfo;
  1867.     struct
  1868.     {
  1869.         HAGENTSESSION           hAgentSession;                  // TAPI v2.2
  1870.         DWORD                   dwAgentSessionState;            // TAPI v2.2
  1871.         DWORD                   dwNextAgentSessionState;        // TAPI v2.2
  1872.     } SetAgentSessionState;
  1873.     struct
  1874.     {
  1875.         GUID                    GroupID;                        // TAPI v2.2
  1876.         LINEQUEUELIST           QueueList;                      // TAPI v2.2
  1877.     } GetQueueList;
  1878.     struct
  1879.     {
  1880.         DWORD                   dwQueueID;                      // TAPI v2.2
  1881.         DWORD                   dwMeasurementPeriod;            // TAPI v2.2
  1882.     } SetQueueMeasurementPeriod;
  1883.     struct
  1884.     {
  1885.         DWORD                   dwQueueID;                      // TAPI v2.2
  1886.         LINEQUEUEINFO           QueueInfo;                      // TAPI v2.2
  1887.     } GetQueueInfo;
  1888.     struct
  1889.     {
  1890.         LINEAGENTGROUPLIST      GroupList;                      // TAPI v2.2
  1891.     } GetGroupList;
  1892. #endif
  1893.     }; //ProxyRequestType;
  1894. } LINEPROXYREQUEST, *LPLINEPROXYREQUEST;
  1895. #endif
  1896. typedef struct linereqmakecall_tag
  1897. {
  1898.     char        szDestAddress[TAPIMAXDESTADDRESSSIZE];
  1899.     char        szAppName[TAPIMAXAPPNAMESIZE];
  1900.     char        szCalledParty[TAPIMAXCALLEDPARTYSIZE];
  1901.     char        szComment[TAPIMAXCOMMENTSIZE];
  1902. } LINEREQMAKECALL, FAR *LPLINEREQMAKECALL;
  1903. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1904. typedef struct linereqmakecallW_tag
  1905. {
  1906.     WCHAR       szDestAddress[TAPIMAXDESTADDRESSSIZE];
  1907.     WCHAR       szAppName[TAPIMAXAPPNAMESIZE];
  1908.     WCHAR       szCalledParty[TAPIMAXCALLEDPARTYSIZE];
  1909.     WCHAR       szComment[TAPIMAXCOMMENTSIZE];
  1910. } LINEREQMAKECALLW, FAR *LPLINEREQMAKECALLW;
  1911. #endif
  1912. #ifdef UNICODE
  1913. #define LINEREQMAKECALL LINEREQMAKECALLW
  1914. #endif
  1915. typedef struct linereqmediacall_tag
  1916. {
  1917.     HWND        hWnd;
  1918.     WPARAM      wRequestID;
  1919.     char        szDeviceClass[TAPIMAXDEVICECLASSSIZE];
  1920.     unsigned char   ucDeviceID[TAPIMAXDEVICEIDSIZE];
  1921.     DWORD       dwSize;
  1922.     DWORD       dwSecure;
  1923.     char        szDestAddress[TAPIMAXDESTADDRESSSIZE];
  1924.     char        szAppName[TAPIMAXAPPNAMESIZE];
  1925.     char        szCalledParty[TAPIMAXCALLEDPARTYSIZE];
  1926.     char        szComment[TAPIMAXCOMMENTSIZE];
  1927. } LINEREQMEDIACALL, FAR *LPLINEREQMEDIACALL;
  1928. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1929. typedef struct linereqmediacallW_tag
  1930. {
  1931.     HWND        hWnd;
  1932.     WPARAM      wRequestID;
  1933.     WCHAR       szDeviceClass[TAPIMAXDEVICECLASSSIZE];
  1934.     unsigned char   ucDeviceID[TAPIMAXDEVICEIDSIZE];
  1935.     DWORD       dwSize;
  1936.     DWORD       dwSecure;
  1937.     WCHAR       szDestAddress[TAPIMAXDESTADDRESSSIZE];
  1938.     WCHAR       szAppName[TAPIMAXAPPNAMESIZE];
  1939.     WCHAR       szCalledParty[TAPIMAXCALLEDPARTYSIZE];
  1940.     WCHAR       szComment[TAPIMAXCOMMENTSIZE];
  1941. } LINEREQMEDIACALLW, FAR *LPLINEREQMEDIACALLW;
  1942. #endif
  1943. #ifdef UNICODE
  1944. #define LINEREQMEDIACALL LINEREQMEDIACALLW
  1945. #endif
  1946. typedef struct linetermcaps_tag
  1947. {
  1948.     DWORD       dwTermDev;
  1949.     DWORD       dwTermModes;
  1950.     DWORD       dwTermSharing;
  1951. } LINETERMCAPS, FAR *LPLINETERMCAPS;
  1952. typedef struct linetranslatecaps_tag
  1953. {
  1954.     DWORD       dwTotalSize;
  1955.     DWORD       dwNeededSize;
  1956.     DWORD       dwUsedSize;
  1957.     DWORD       dwNumLocations;
  1958.     DWORD       dwLocationListSize;
  1959.     DWORD       dwLocationListOffset;
  1960.     DWORD       dwCurrentLocationID;
  1961.     DWORD       dwNumCards;
  1962.     DWORD       dwCardListSize;
  1963.     DWORD       dwCardListOffset;
  1964.     DWORD       dwCurrentPreferredCardID;
  1965. } LINETRANSLATECAPS, FAR *LPLINETRANSLATECAPS;
  1966. typedef struct linetranslateoutput_tag
  1967. {
  1968.     DWORD       dwTotalSize;
  1969.     DWORD       dwNeededSize;
  1970.     DWORD       dwUsedSize;
  1971.     DWORD       dwDialableStringSize;
  1972.     DWORD       dwDialableStringOffset;
  1973.     DWORD       dwDisplayableStringSize;
  1974.     DWORD       dwDisplayableStringOffset;
  1975.     DWORD       dwCurrentCountry;
  1976.     DWORD       dwDestCountry;
  1977.     DWORD       dwTranslateResults;
  1978. } LINETRANSLATEOUTPUT, FAR *LPLINETRANSLATEOUTPUT;
  1979. typedef struct phonebuttoninfo_tag
  1980. {
  1981.     DWORD       dwTotalSize;
  1982.     DWORD       dwNeededSize;
  1983.     DWORD       dwUsedSize;
  1984.     DWORD       dwButtonMode;
  1985.     DWORD       dwButtonFunction;
  1986.     DWORD       dwButtonTextSize;
  1987.     DWORD       dwButtonTextOffset;
  1988.     DWORD       dwDevSpecificSize;
  1989.     DWORD       dwDevSpecificOffset;
  1990.     DWORD       dwButtonState;                                  // TAPI v1.4
  1991. } PHONEBUTTONINFO, FAR *LPPHONEBUTTONINFO;
  1992. typedef struct phonecaps_tag
  1993. {
  1994.     DWORD       dwTotalSize;
  1995.     DWORD       dwNeededSize;
  1996.     DWORD       dwUsedSize;
  1997.     DWORD       dwProviderInfoSize;
  1998.     DWORD       dwProviderInfoOffset;
  1999.     DWORD       dwPhoneInfoSize;
  2000.     DWORD       dwPhoneInfoOffset;
  2001.     DWORD       dwPermanentPhoneID;
  2002.     DWORD       dwPhoneNameSize;
  2003.     DWORD       dwPhoneNameOffset;
  2004.     DWORD       dwStringFormat;
  2005.     DWORD       dwPhoneStates;
  2006.     DWORD       dwHookSwitchDevs;
  2007.     DWORD       dwHandsetHookSwitchModes;
  2008.     DWORD       dwSpeakerHookSwitchModes;
  2009.     DWORD       dwHeadsetHookSwitchModes;
  2010.     DWORD       dwVolumeFlags;
  2011.     DWORD       dwGainFlags;
  2012.     DWORD       dwDisplayNumRows;
  2013.     DWORD       dwDisplayNumColumns;
  2014.     DWORD       dwNumRingModes;
  2015.     DWORD       dwNumButtonLamps;
  2016.     DWORD       dwButtonModesSize;
  2017.     DWORD       dwButtonModesOffset;
  2018.     DWORD       dwButtonFunctionsSize;
  2019.     DWORD       dwButtonFunctionsOffset;
  2020.     DWORD       dwLampModesSize;
  2021.     DWORD       dwLampModesOffset;
  2022.     DWORD       dwNumSetData;
  2023.     DWORD       dwSetDataSize;
  2024.     DWORD       dwSetDataOffset;
  2025.     DWORD       dwNumGetData;
  2026.     DWORD       dwGetDataSize;
  2027.     DWORD       dwGetDataOffset;
  2028.     DWORD       dwDevSpecificSize;
  2029.     DWORD       dwDevSpecificOffset;
  2030. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2031.     DWORD       dwDeviceClassesSize;                            // TAPI v2.0
  2032.     DWORD       dwDeviceClassesOffset;                          // TAPI v2.0
  2033.     DWORD       dwPhoneFeatures;                                // TAPI v2.0
  2034.     DWORD       dwSettableHandsetHookSwitchModes;               // TAPI v2.0
  2035.     DWORD       dwSettableSpeakerHookSwitchModes;               // TAPI v2.0
  2036.     DWORD       dwSettableHeadsetHookSwitchModes;               // TAPI v2.0
  2037.     DWORD       dwMonitoredHandsetHookSwitchModes;              // TAPI v2.0
  2038.     DWORD       dwMonitoredSpeakerHookSwitchModes;              // TAPI v2.0
  2039.     DWORD       dwMonitoredHeadsetHookSwitchModes;              // TAPI v2.0
  2040. #endif
  2041. #if (TAPI_CURRENT_VERSION >= 0x00020002)
  2042.     GUID        PermanentPhoneGuid;                             // TAPI v2.2
  2043. #endif
  2044. } PHONECAPS, FAR *LPPHONECAPS;
  2045. typedef struct phoneextensionid_tag
  2046. {
  2047.     DWORD       dwExtensionID0;
  2048.     DWORD       dwExtensionID1;
  2049.     DWORD       dwExtensionID2;
  2050.     DWORD       dwExtensionID3;
  2051. } PHONEEXTENSIONID, FAR *LPPHONEEXTENSIONID;
  2052. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2053. typedef struct phoneinitializeexparams_tag
  2054. {
  2055.     DWORD       dwTotalSize;                                    // TAPI v2.0
  2056.     DWORD       dwNeededSize;                                   // TAPI v2.0
  2057.     DWORD       dwUsedSize;                                     // TAPI v2.0
  2058.     DWORD       dwOptions;                                      // TAPI v2.0
  2059.     union
  2060.     {
  2061.         HANDLE  hEvent;                                         // TAPI v2.0
  2062.         HANDLE  hCompletionPort;                                // TAPI v2.0
  2063.     } Handles;
  2064.     DWORD       dwCompletionKey;                                // TAPI v2.0
  2065. } PHONEINITIALIZEEXPARAMS, FAR *LPPHONEINITIALIZEEXPARAMS;
  2066. typedef struct phonemessage_tag
  2067. {
  2068.     DWORD       hDevice;                                        // TAPI v2.0
  2069.     DWORD       dwMessageID;                                    // TAPI v2.0
  2070.     DWORD_PTR   dwCallbackInstance;                             // TAPI v2.0
  2071.     DWORD_PTR   dwParam1;                                       // TAPI v2.0
  2072.     DWORD_PTR   dwParam2;                                       // TAPI v2.0
  2073.     DWORD_PTR   dwParam3;                                       // TAPI v2.0
  2074. } PHONEMESSAGE, FAR *LPPHONEMESSAGE;
  2075. #endif
  2076. typedef struct phonestatus_tag
  2077. {
  2078.     DWORD       dwTotalSize;
  2079.     DWORD       dwNeededSize;
  2080.     DWORD       dwUsedSize;
  2081.     DWORD       dwStatusFlags;
  2082.     DWORD       dwNumOwners;
  2083.     DWORD       dwNumMonitors;
  2084.     DWORD       dwRingMode;
  2085.     DWORD       dwRingVolume;
  2086.     DWORD       dwHandsetHookSwitchMode;
  2087.     DWORD       dwHandsetVolume;
  2088.     DWORD       dwHandsetGain;
  2089.     DWORD       dwSpeakerHookSwitchMode;
  2090.     DWORD       dwSpeakerVolume;
  2091.     DWORD       dwSpeakerGain;
  2092.     DWORD       dwHeadsetHookSwitchMode;
  2093.     DWORD       dwHeadsetVolume;
  2094.     DWORD       dwHeadsetGain;
  2095.     DWORD       dwDisplaySize;
  2096.     DWORD       dwDisplayOffset;
  2097.     DWORD       dwLampModesSize;
  2098.     DWORD       dwLampModesOffset;
  2099.     DWORD       dwOwnerNameSize;
  2100.     DWORD       dwOwnerNameOffset;
  2101.     DWORD       dwDevSpecificSize;
  2102.     DWORD       dwDevSpecificOffset;
  2103. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2104.     DWORD       dwPhoneFeatures;                                // TAPI v2.0
  2105. #endif
  2106. } PHONESTATUS, FAR *LPPHONESTATUS;
  2107. typedef struct varstring_tag
  2108. {
  2109.     DWORD       dwTotalSize;
  2110.     DWORD       dwNeededSize;
  2111.     DWORD       dwUsedSize;
  2112.     DWORD       dwStringFormat;
  2113.     DWORD       dwStringSize;
  2114.     DWORD       dwStringOffset;
  2115. } VARSTRING, FAR *LPVARSTRING;
  2116. LONG
  2117. WINAPI
  2118. lineAccept(
  2119.     HCALL               hCall,
  2120.     LPCSTR              lpsUserUserInfo,
  2121.     DWORD               dwSize
  2122.     );
  2123. LONG
  2124. WINAPI
  2125. lineAddProvider(                                                // TAPI v1.4
  2126.     LPCSTR              lpszProviderFilename,
  2127.     HWND                hwndOwner,
  2128.     LPDWORD             lpdwPermanentProviderID
  2129.     );
  2130. #if WIN32
  2131. LONG
  2132. WINAPI
  2133. lineAddProviderA(                                               // TAPI v1.4
  2134.     LPCSTR              lpszProviderFilename,
  2135.     HWND                hwndOwner,
  2136.     LPDWORD             lpdwPermanentProviderID
  2137.     );
  2138. LONG
  2139. WINAPI
  2140. lineAddProviderW(
  2141.     LPCWSTR             lpszProviderFilename,
  2142.     HWND                hwndOwner,
  2143.     LPDWORD             lpdwPermanentProviderID
  2144.     );
  2145. #ifdef UNICODE
  2146. #define lineAddProvider lineAddProviderW
  2147. #else
  2148. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2149. #define lineAddProvider lineAddProviderA
  2150. #endif
  2151. #endif
  2152. #endif
  2153. LONG
  2154. WINAPI
  2155. lineAddToConference(
  2156.     HCALL               hConfCall,
  2157.     HCALL               hConsultCall
  2158.     );
  2159. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2160. LONG
  2161. WINAPI
  2162. lineAgentSpecific(                                              // TAPI v2.0
  2163.     HLINE               hLine,
  2164.     DWORD               dwAddressID,
  2165.     DWORD               dwAgentExtensionIDIndex,
  2166.     LPVOID              lpParams,
  2167.     DWORD               dwSize
  2168.     );
  2169. #endif
  2170. LONG
  2171. WINAPI
  2172. lineAnswer(
  2173.     HCALL               hCall,
  2174.     LPCSTR              lpsUserUserInfo,
  2175.     DWORD               dwSize
  2176.     );
  2177. LONG
  2178. WINAPI
  2179. lineBlindTransfer(
  2180.     HCALL               hCall,
  2181.     LPCSTR              lpszDestAddress,
  2182.     DWORD               dwCountryCode
  2183.     );
  2184. #if WIN32
  2185. LONG
  2186. WINAPI
  2187. lineBlindTransferA(
  2188.     HCALL               hCall,
  2189.     LPCSTR              lpszDestAddress,
  2190.     DWORD               dwCountryCode
  2191.     );
  2192. LONG
  2193. WINAPI
  2194. lineBlindTransferW(
  2195.     HCALL               hCall,
  2196.     LPCWSTR             lpszDestAddressW,
  2197.     DWORD               dwCountryCode
  2198.     );
  2199. #ifdef UNICODE
  2200. #define lineBlindTransfer lineBlindTransferW
  2201. #else
  2202. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2203. #define lineBlindTransfer lineBlindTransferA
  2204. #endif
  2205. #endif
  2206. #endif
  2207. LONG
  2208. WINAPI
  2209. lineClose(
  2210.     HLINE               hLine
  2211.     );
  2212. LONG
  2213. WINAPI
  2214. lineCompleteCall(
  2215.     HCALL               hCall,
  2216.     LPDWORD             lpdwCompletionID,
  2217.     DWORD               dwCompletionMode,
  2218.     DWORD               dwMessageID
  2219.     );
  2220. LONG
  2221. WINAPI
  2222. lineCompleteTransfer(
  2223.     HCALL               hCall,
  2224.     HCALL               hConsultCall,
  2225.     LPHCALL             lphConfCall,
  2226.     DWORD               dwTransferMode
  2227.     );
  2228. LONG
  2229. WINAPI
  2230. lineConfigDialog(
  2231.     DWORD               dwDeviceID,
  2232.     HWND                hwndOwner,
  2233.     LPCSTR              lpszDeviceClass
  2234.     );
  2235. #if WIN32
  2236. LONG
  2237. WINAPI
  2238. lineConfigDialogA(
  2239.     DWORD               dwDeviceID,
  2240.     HWND                hwndOwner,
  2241.     LPCSTR              lpszDeviceClass
  2242.     );
  2243. LONG
  2244. WINAPI
  2245. lineConfigDialogW(
  2246.     DWORD               dwDeviceID,
  2247.     HWND                hwndOwner,
  2248.     LPCWSTR             lpszDeviceClass
  2249.     );
  2250. #ifdef UNICODE
  2251. #define lineConfigDialog lineConfigDialogW
  2252. #else
  2253. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2254. #define lineConfigDialog lineConfigDialogA
  2255. #endif
  2256. #endif
  2257. #endif
  2258. LONG
  2259. WINAPI
  2260. lineConfigDialogEdit(                                           // TAPI v1.4
  2261.     DWORD               dwDeviceID,
  2262.     HWND                hwndOwner,
  2263.     LPCSTR              lpszDeviceClass,
  2264.     LPVOID              const lpDeviceConfigIn,
  2265.     DWORD               dwSize,
  2266.     LPVARSTRING         lpDeviceConfigOut
  2267.     );
  2268. #if WIN32
  2269. LONG
  2270. WINAPI
  2271. lineConfigDialogEditA(                                          // TAPI v1.4
  2272.     DWORD               dwDeviceID,
  2273.     HWND                hwndOwner,
  2274.     LPCSTR              lpszDeviceClass,
  2275.     LPVOID              const lpDeviceConfigIn,
  2276.     DWORD               dwSize,
  2277.     LPVARSTRING         lpDeviceConfigOut
  2278.     );
  2279. LONG
  2280. WINAPI
  2281. lineConfigDialogEditW(
  2282.     DWORD               dwDeviceID,
  2283.     HWND                hwndOwner,
  2284.     LPCWSTR             lpszDeviceClass,
  2285.     LPVOID              const lpDeviceConfigIn,
  2286.     DWORD               dwSize,
  2287.     LPVARSTRING         lpDeviceConfigOut
  2288.     );
  2289. #ifdef UNICODE
  2290. #define lineConfigDialogEdit lineConfigDialogEditW
  2291. #else
  2292. #if (TAPI_CURRENT_VERSION >= 0x00020000)