xref: /reactos/sdk/include/psdk/tapi.h (revision c2c66aff)
1 /*
2  * TAPI definitions
3  *
4  * Copyright (c) 1999 Andreas Mohr
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19  */
20 
21 #ifndef __WINE_TAPI_H
22 #define __WINE_TAPI_H
23 
24 #ifndef __WINESRC__
25 # include <windows.h>
26 #endif
27 #include <basetsd.h>
28 #include <oaidl.h>
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif /* defined(__cplusplus) */
33 
34 typedef HANDLE HCALL, *LPHCALL;
35 typedef HANDLE HLINE, *LPHLINE;
36 typedef HANDLE HLINEAPP, *LPHLINEAPP;
37 typedef HANDLE HPHONE, *LPHPHONE;
38 typedef HANDLE HPHONEAPP, *LPHPHONEAPP;
39 
40 #define TAPIERR_REQUESTFAILED            -16L
41 #define LINEERR_ALLOCATED              0x80000001
42 #define LINEERR_BADDEVICEID            0x80000002
43 #define LINEERR_BEARERMODEUNAVAIL      0x80000003
44 #define LINEERR_CALLUNAVAIL            0x80000005
45 #define LINEERR_COMPLETIONOVERRUN      0x80000006
46 #define LINEERR_CONFERENCEFULL         0x80000007
47 #define LINEERR_DIALBILLING            0x80000008
48 #define LINEERR_DIALDIALTONE           0x80000009
49 #define LINEERR_DIALPROMPT             0x8000000A
50 #define LINEERR_DIALQUIET              0x8000000B
51 #define LINEERR_INCOMPATIBLEAPIVERSION 0x8000000C
52 #define LINEERR_INCOMPATIBLEEXTVERSION 0x8000000D
53 #define LINEERR_INIFILECORRUPT         0x8000000E
54 #define LINEERR_INUSE                  0x8000000F
55 #define LINEERR_INVALADDRESS           0x80000010
56 #define LINEERR_INVALADDRESSID         0x80000011
57 #define LINEERR_INVALADDRESSMODE       0x80000012
58 #define LINEERR_INVALADDRESSSTATE      0x80000013
59 #define LINEERR_INVALAPPHANDLE         0x80000014
60 #define LINEERR_INVALAPPNAME           0x80000015
61 #define LINEERR_INVALBEARERMODE        0x80000016
62 #define LINEERR_INVALCALLCOMPLMODE     0x80000017
63 #define LINEERR_INVALCALLHANDLE        0x80000018
64 #define LINEERR_INVALCALLPARAMS        0x80000019
65 #define LINEERR_INVALCALLPRIVILEGE     0x8000001A
66 #define LINEERR_INVALCALLSELECT        0x8000001B
67 #define LINEERR_INVALCALLSTATE         0x8000001C
68 #define LINEERR_INVALCALLSTATELIST     0x8000001D
69 #define LINEERR_INVALCARD              0x8000001E
70 #define LINEERR_INVALCOMPLETIONID      0x8000001F
71 #define LINEERR_INVALCONFCALLHANDLE    0x80000020
72 #define LINEERR_INVALCONSULTCALLHANDLE 0x80000021
73 #define LINEERR_INVALCOUNTRYCODE       0x80000022
74 #define LINEERR_INVALDEVICECLASS       0x80000023
75 #define LINEERR_INVALDEVICEHANDLE      0x80000024
76 #define LINEERR_INVALDIALPARAMS        0x80000025
77 #define LINEERR_INVALDIGITLIST         0x80000026
78 #define LINEERR_INVALDIGITMODE         0x80000027
79 #define LINEERR_INVALDIGITS            0x80000028
80 #define LINEERR_INVALEXTVERSION        0x80000029
81 #define LINEERR_INVALGROUPID           0x8000002A
82 #define LINEERR_INVALLINEHANDLE        0x8000002B
83 #define LINEERR_INVALLINESTATE         0x8000002C
84 #define LINEERR_INVALLOCATION          0x8000002D
85 #define LINEERR_INVALMEDIALIST         0x8000002E
86 #define LINEERR_INVALMEDIAMODE         0x8000002F
87 #define LINEERR_INVALMESSAGEID         0x80000030
88 #define LINEERR_INVALPARAM             0x80000032
89 #define LINEERR_INVALPARKID            0x80000033
90 #define LINEERR_INVALPARKMODE          0x80000034
91 #define LINEERR_INVALPOINTER           0x80000035
92 #define LINEERR_INVALPRIVSELECT        0x80000036
93 #define LINEERR_INVALRATE              0x80000037
94 #define LINEERR_INVALREQUESTMODE       0x80000038
95 #define LINEERR_INVALTERMINALID        0x80000039
96 #define LINEERR_INVALTERMINALMODE      0x8000003A
97 #define LINEERR_INVALTIMEOUT           0x8000003B
98 #define LINEERR_INVALTONE              0x8000003C
99 #define LINEERR_INVALTONELIST          0x8000003D
100 #define LINEERR_INVALTONEMODE          0x8000003E
101 #define LINEERR_INVALTRANSFERMODE      0x8000003F
102 #define LINEERR_LINEMAPPERFAILED       0x80000040
103 #define LINEERR_NOCONFERENCE           0x80000041
104 #define LINEERR_NODEVICE               0x80000042
105 #define LINEERR_NODRIVER               0x80000043
106 #define LINEERR_NOMEM                  0x80000044
107 #define LINEERR_NOREQUEST              0x80000045
108 #define LINEERR_NOTOWNER               0x80000046
109 #define LINEERR_NOTREGISTERED          0x80000047
110 #define LINEERR_OPERATIONFAILED        0x80000048
111 #define LINEERR_OPERATIONUNAVAIL       0x80000049
112 #define LINEERR_RATEUNAVAIL            0x8000004A
113 #define LINEERR_RESOURCEUNAVAIL        0x8000004B
114 #define LINEERR_REQUESTOVERRUN         0x8000004C
115 #define LINEERR_STRUCTURETOOSMALL      0x8000004D
116 #define LINEERR_TARGETNOTFOUND         0x8000004E
117 #define LINEERR_TARGETSELF             0x8000004F
118 #define LINEERR_UNINITIALIZED          0x80000050
119 #define LINEERR_USERUSERINFOTOOBIG     0x80000051
120 #define LINEERR_REINIT                 0x80000052
121 #define LINEERR_ADDRESSBLOCKED         0x80000053
122 #define LINEERR_BILLINGREJECTED        0x80000054
123 #define LINEERR_INVALFEATURE           0x80000055
124 #define LINEERR_NOMULTIPLEINSTANCE     0x80000056
125 
126 #define STRINGFORMAT_ASCII             0x00000001
127 #define STRINGFORMAT_DBCS              0x00000002
128 #define STRINGFORMAT_UNICODE           0x00000003
129 #define STRINGFORMAT_BINARY            0x00000004
130 
131 #define LINEADDRESSMODE_ADDRESSID      0x00000001
132 #define LINEADDRESSMODE_DIALABLEADDR   0x00000002
133 
134 #define LINEBEARERMODE_VOICE           0x00000001
135 #define LINEBEARERMODE_SPEECH          0x00000002
136 #define LINEBEARERMODE_MULTIUSE        0x00000004
137 #define LINEBEARERMODE_DATA            0x00000008
138 #define LINEBEARERMODE_ALTSPEECHDATA   0x00000010
139 #define LINEBEARERMODE_NONCALLSIGNALING 0x00000020
140 #define LINEBEARERMODE_PASSTHROUGH     0x00000040
141 
142 #define LINEMEDIAMODE_UNKNOWN          0x00000002
143 #define LINEMEDIAMODE_INTERACTIVEVOICE 0x00000004
144 #define LINEMEDIAMODE_AUTOMATEDVOICE   0x00000008
145 #define LINEMEDIAMODE_DATAMODEM        0x00000010
146 
147 #define LINEDEVCAPFLAGS_CROSSADDRCONF  0x00000001
148 #define LINEDEVCAPFLAGS_HIGHLEVCOMP    0x00000002
149 #define LINEDEVCAPFLAGS_LOWLEVCOMP     0x00000004
150 #define LINEDEVCAPFLAGS_MEDIACONTROL   0x00000008
151 #define LINEDEVCAPFLAGS_MULTIPLEADDR   0x00000010
152 #define LINEDEVCAPFLAGS_CLOSEDROP      0x00000020
153 #define LINEDEVCAPFLAGS_DIALBILLING    0x00000040
154 #define LINEDEVCAPFLAGS_DIALQUIET      0x00000080
155 #define LINEDEVCAPFLAGS_DIALDIALTONE   0x00000100
156 
157 #define LINEDEVSTATE_OTHER             0x00000001
158 #define LINEDEVSTATE_RINGING           0x00000002
159 #define LINEDEVSTATE_CONNECTED         0x00000004
160 #define LINEDEVSTATE_DISCONNECTED      0x00000008
161 #define LINEDEVSTATE_MSGWAITON         0x00000010
162 #define LINEDEVSTATE_MSGWAITOFF        0x00000020
163 #define LINEDEVSTATE_INSERVICE         0x00000040
164 #define LINEDEVSTATE_OUTOFSERVICE      0x00000080
165 #define LINEDEVSTATE_MAINTENANCE       0x00000100
166 #define LINEDEVSTATE_OPEN              0x00000200
167 #define LINEDEVSTATE_CLOSE             0x00000400
168 #define LINEDEVSTATE_NUMCALLS          0x00000800
169 #define LINEDEVSTATE_NUMCOMPLETIONS    0x00001000
170 #define LINEDEVSTATE_TERMINALS         0x00002000
171 #define LINEDEVSTATE_ROAMMODE          0x00004000
172 #define LINEDEVSTATE_BATTERY           0x00008000
173 #define LINEDEVSTATE_SIGNAL            0x00010000
174 #define LINEDEVSTATE_DEVSPECIFIC       0x00020000
175 #define LINEDEVSTATE_REINIT            0x00040000
176 #define LINEDEVSTATE_LOCK              0x00080000
177 
178 #define LINEDEVSTATE_CAPSCHANGE        0x00100000
179 #define LINEDEVSTATE_CONFIGCHANGE      0x00200000
180 #define LINEDEVSTATE_TRANSLATECHANGE   0x00400000
181 #define LINEDEVSTATE_COMPLCANCEL       0x00800000
182 #define LINEDEVSTATE_REMOVED           0x01000000
183 
184 #define LINELOCATIONOPTION_PULSEDIAL   0x00000001
185 
186 
187 #define LINEFEATURE_DEVSPECIFIC        0x00000001
188 #define LINEFEATURE_DEVSPECIFICFEAT    0x00000002
189 #define LINEFEATURE_FORWARD            0x00000004
190 #define LINEFEATURE_MAKECALL           0x00000008
191 #define LINEFEATURE_SETMEDIACONTROL    0x00000010
192 #define LINEFEATURE_SETTERMINAL        0x00000020
193 #define LINEFEATURE_SETDEVSTATUS       0x00000040
194 #define LINEFEATURE_FORWARDFWD         0x00000080
195 #define LINEFEATURE_FORWARDDND         0x00000100
196 
197 /* tapi callback messages */
198 
199 #define LINE_ADDRESSSTATE              0L
200 #define LINE_CALLINFO                  1L
201 #define LINE_CALLSTATE                 2L
202 #define LINE_CLOSE                     3L
203 #define LINE_DEVSPECIFIC               4L
204 #define LINE_DEVSPECIFICFEATURE        5L
205 #define LINE_GATHERDIGITS              6L
206 #define LINE_GENERATE                  7L
207 #define LINE_LINEDEVSTATE              8L
208 #define LINE_MONITORDIGITS             9L
209 #define LINE_MONITORMEDIA             10L
210 #define LINE_MONITORTONE              11L
211 #define LINE_REPLY                    12L
212 #define LINE_REQUEST                  13L
213 #define PHONE_BUTTON                  14L
214 #define PHONE_CLOSE                   15L
215 #define PHONE_DEVSPECIFIC             16L
216 #define PHONE_REPLY                   17L
217 #define PHONE_STATE                   18L
218 #define LINE_CREATE                   19L
219 #define PHONE_CREATE                  20L
220 
221 #define LINE_AGENTSPECIFIC            21L
222 #define LINE_AGENTSTATUS              22L
223 #define LINE_APPNEWCALL               23L
224 #define LINE_PROXYREQUEST             24L
225 #define LINE_REMOVE                   25L
226 #define PHONE_REMOVE                  26L
227 /* these are used as Param1 of line_callstate messages */
228 #define LINECALLSTATE_IDLE            0x00000001
229 #define LINECALLSTATE_OFFERING        0x00000002
230 #define LINECALLSTATE_ACCEPTED        0x00000004
231 #define LINECALLSTATE_DIALTONE        0x00000008
232 #define LINECALLSTATE_DIALING         0x00000010
233 #define LINECALLSTATE_RINGBACK        0x00000020
234 #define LINECALLSTATE_BUSY            0x00000040
235 #define LINECALLSTATE_SPECIALINFO     0x00000080
236 #define LINECALLSTATE_CONNECTED       0x00000100
237 #define LINECALLSTATE_PROCEEDING      0x00000200
238 #define LINECALLSTATE_ONHOLD          0x00000400
239 #define LINECALLSTATE_CONFERENCED     0x00000800
240 #define LINECALLSTATE_ONHOLDPENDCONF  0x00001000
241 #define LINECALLSTATE_ONHOLDPENDTRANSFER 0x00002000
242 #define LINECALLSTATE_DISCONNECTED    0x00004000
243 #define LINECALLSTATE_UNKNOWN         0x00008000
244 #define LINECONNECTEDMODE_ACTIVE            0x00000001
245 #define LINECONNECTEDMODE_INACTIVE          0x00000002
246 #define LINECONNECTEDMODE_ACTIVEHELD        0x00000004
247 #define LINECONNECTEDMODE_INACTIVEHELD      0x00000008
248 #define LINECONNECTEDMODE_CONFIRMED         0x00000010
249 
250 /* these are Param2 values for state_disconnected line_callstate messages */
251 #define LINEDISCONNECTMODE_NORMAL           0x00000001
252 #define LINEDISCONNECTMODE_UNKNOWN          0x00000002
253 #define LINEDISCONNECTMODE_REJECT           0x00000004
254 #define LINEDISCONNECTMODE_PICKUP           0x00000008
255 #define LINEDISCONNECTMODE_FORWARDED        0x00000010
256 #define LINEDISCONNECTMODE_BUSY             0x00000020
257 #define LINEDISCONNECTMODE_NOANSWER         0x00000040
258 #define LINEDISCONNECTMODE_BADADDRESS       0x00000080
259 #define LINEDISCONNECTMODE_UNREACHABLE      0x00000100
260 #define LINEDISCONNECTMODE_CONGESTION       0x00000200
261 #define LINEDISCONNECTMODE_INCOMPATIBLE     0x00000400
262 #define LINEDISCONNECTMODE_UNAVAIL          0x00000800
263 #define LINEDISCONNECTMODE_NODIALTONE       0x00001000
264 #define LINEDISCONNECTMODE_NUMBERCHANGED    0x00002000
265 #define LINEDISCONNECTMODE_OUTOFORDER       0x00004000
266 #define LINEDISCONNECTMODE_TEMPFAILURE      0x00008000
267 #define LINEDISCONNECTMODE_QOSUNAVAIL       0x00010000
268 #define LINEDISCONNECTMODE_BLOCKED          0x00020000
269 #define LINEDISCONNECTMODE_DONOTDISTURB     0x00040000
270 #define LINEDISCONNECTMODE_CANCELLED        0x00080000
271 
272 #define LINECALLSELECT_LINE                 0x00000001
273 #define LINECALLSELECT_ADDRESS              0x00000002
274 #define LINECALLSELECT_CALL                 0x00000004
275 #define LINECALLSELECT_DEVICEID             0x00000008
276 
277 #define LINECALLPRIVILEGE_NONE              0x00000001
278 #define LINECALLPRIVILEGE_MONITOR           0x00000002
279 #define LINECALLPRIVILEGE_OWNER             0x00000004
280 #define LINECALLFEATURE_ACCEPT              0x00000001
281 #define LINECALLFEATURE_ADDTOCONF           0x00000002
282 #define LINECALLFEATURE_ANSWER              0x00000004
283 #define LINECALLFEATURE_BLINDTRANSFER       0x00000008
284 #define LINECALLFEATURE_COMPLETECALL        0x00000010
285 #define LINECALLFEATURE_COMPLETETRANSF      0x00000020
286 #define LINECALLFEATURE_DIAL                0x00000040
287 #define LINECALLFEATURE_DROP                0x00000080
288 #define LINECALLFEATURE_GATHERDIGITS        0x00000100
289 #define LINECALLFEATURE_GENERATEDIGITS      0x00000200
290 #define LINECALLFEATURE_GENERATETONE        0x00000400
291 #define LINECALLFEATURE_HOLD                0x00000800
292 #define LINECALLFEATURE_MONITORDIGITS       0x00001000
293 #define LINECALLFEATURE_MONITORMEDIA        0x00002000
294 #define LINECALLFEATURE_MONITORTONES        0x00004000
295 #define LINECALLFEATURE_PARK                0x00008000
296 #define LINECALLFEATURE_PREPAREADDCONF      0x00010000
297 #define LINECALLFEATURE_REDIRECT            0x00020000
298 #define LINECALLFEATURE_REMOVEFROMCONF      0x00040000
299 #define LINECALLFEATURE_SECURECALL          0x00080000
300 #define LINECALLFEATURE_SENDUSERUSER        0x00100000
301 #define LINECALLFEATURE_SETCALLPARAMS       0x00200000
302 #define LINECALLFEATURE_SETMEDIACONTROL     0x00400000
303 #define LINECALLFEATURE_SETTERMINAL         0x00800000
304 #define LINECALLFEATURE_SETUPCONF           0x01000000
305 #define LINECALLFEATURE_SETUPTRANSFER       0x02000000
306 #define LINECALLFEATURE_SWAPHOLD            0x04000000
307 #define LINECALLFEATURE_UNHOLD              0x08000000
308 #define LINECALLFEATURE_RELEASEUSERUSERINFO 0x10000000
309 
310 typedef struct lineaddresscaps_tag {
311     DWORD dwTotalSize;
312     DWORD dwNeededSize;
313     DWORD dwUsedSize;
314     DWORD dwLineDeviceID;
315     DWORD dwAddressSize;
316     DWORD dwAddressOffset;
317     DWORD dwDevSpecificSize;
318     DWORD dwDevSpecificOffset;
319     DWORD dwAddressSharing;
320     DWORD dwAddressStates;
321     DWORD dwCallInfoStates;
322     DWORD dwCallerIDFlags;
323     DWORD dwCalledIDFlags;
324     DWORD dwConnectedIDFlags;
325     DWORD dwRedirectionIDFlags;
326     DWORD dwRedirectingIDFlags;
327     DWORD dwCallStates;
328     DWORD dwDialToneModes;
329     DWORD dwBusyModes;
330     DWORD dwSpecialInfo;
331     DWORD dwDisconnectModes;
332     DWORD dwMaxNumActiveCalls;
333     DWORD dwMaxNumOnHoldCalls;
334     DWORD dwMaxNumOnHoldPendingCalls;
335     DWORD dwMaxNumConference;
336     DWORD dwMaxNumTransConf;
337     DWORD dwAddrCapFlags;
338     DWORD dwCallFeatures;
339     DWORD dwRemoveFromConfCaps;
340     DWORD dwRemoveFromConfState;
341     DWORD dwTransferModes;
342     DWORD dwParkModes;
343     DWORD dwForwardModes;
344     DWORD dwMaxForwardEntries;
345     DWORD dwMaxSpecificEntries;
346     DWORD dwMinFwdNumRings;
347     DWORD dwMaxFwdNumRings;
348     DWORD dwMaxCallCompletions;
349     DWORD dwCallCompletionConds;
350     DWORD dwCallCompletionModes;
351     DWORD dwNumCompletionMessages;
352     DWORD dwCompletionMsgTextEntrySize;
353     DWORD dwCompletionMsgTextSize;
354     DWORD dwCompletionMsgTextOffset;
355     DWORD dwAddressFeatures;
356 } LINEADDRESSCAPS, *LPLINEADDRESSCAPS;
357 
358 typedef struct lineaddressstatus_tag {
359     DWORD dwTotalSize;
360     DWORD dwNeededSize;
361     DWORD dwUsedSize;
362     DWORD dwNumInUse;
363     DWORD dwNumActiveCalls;
364     DWORD dwNumOnHoldCalls;
365     DWORD dwNumOnHoldPendCalls;
366     DWORD dwAddressFeatures;
367     DWORD dwNumRingsNoAnswer;
368     DWORD dwForwardNumEntries;
369     DWORD dwForwardSize;
370     DWORD dwForwardOffset;
371     DWORD dwTerminalModesSize;
372     DWORD dwTerminalModesOffset;
373     DWORD dwDevSpecificSize;
374     DWORD dwDevSpecificOffset;
375 } LINEADDRESSSTATUS, *LPLINEADDRESSSTATUS;
376 
377 typedef struct linedialparams_tag {
378     DWORD dwDialPause;
379     DWORD dwDialSpeed;
380     DWORD dwDigitDuration;
381     DWORD dwWaitForDialtone;
382 } LINEDIALPARAMS, *LPLINEDIALPARAMS;
383 
384 typedef struct linecallinfo_tag {
385     DWORD dwTotalSize;
386     DWORD dwNeededSize;
387     DWORD dwUsedSize;
388     HLINE hLine;
389     DWORD dwLineDeviceID;
390     DWORD dwAddressID;
391     DWORD dwBearerMode;
392     DWORD dwRate;
393     DWORD dwMediaMode;
394     DWORD dwAppSpecific;
395     DWORD dwCallID;
396     DWORD dwRelatedCallID;
397     DWORD dwCallParamFlags;
398     DWORD dwCallStates;
399     DWORD dwMonitorDigitModes;
400     DWORD dwMonitorMediaModes;
401     LINEDIALPARAMS DialParams;
402     DWORD dwOrigin;
403     DWORD dwReason;
404     DWORD dwCompletionID;
405     DWORD dwNumOwners;
406     DWORD dwNumMonitors;
407     DWORD dwCountryCode;
408     DWORD dwTrunk;
409     DWORD dwCallerIDFlags;
410     DWORD dwCallerIDSize;
411     DWORD dwCallerIDOffset;
412     DWORD dwCallerIDNameSize;
413     DWORD dwCallerIDNameOffset;
414     DWORD dwCalledIDFlags;
415     DWORD dwCalledIDSize;
416     DWORD dwCalledIDOffset;
417     DWORD dwCalledIDNameSize;
418     DWORD dwCalledIDNameOffset;
419     DWORD dwConnectedIDFlags;
420     DWORD dwConnectedIDSize;
421     DWORD dwConnectedIDOffset;
422     DWORD dwConnectedIDNameSize;
423     DWORD dwConnectedIDNameOffset;
424     DWORD dwRedirectionIDFlags;
425     DWORD dwRedirectionIDSize;
426     DWORD dwRedirectionIDOffset;
427     DWORD dwRedirectionIDNameSize;
428     DWORD dwRedirectionIDNameOffset;
429     DWORD dwRedirectingIDFlags;
430     DWORD dwRedirectingIDSize;
431     DWORD dwRedirectingIDOffset;
432     DWORD dwRedirectingIDNameSize;
433     DWORD dwRedirectingIDNameOffset;
434     DWORD dwAppNameSize;
435     DWORD dwAppNameOffset;
436     DWORD dwDisplayableAddressSize;
437     DWORD dwDisplayableAddressOffset;
438     DWORD dwCalledPartySize;
439     DWORD dwCalledPartyOffset;
440     DWORD dwCommentSize;
441     DWORD dwCommentOffset;
442     DWORD dwDisplaySize;
443     DWORD dwDisplayOffset;
444     DWORD dwUserUserInfoSize;
445     DWORD dwUserUserInfoOffset;
446     DWORD dwHighLevelCompSize;
447     DWORD dwHighLevelCompOffset;
448     DWORD dwLowLevelCompSize;
449     DWORD dwLowLevelCompOffset;
450     DWORD dwChargingInfoSize;
451     DWORD dwChargingInfoOffset;
452     DWORD dwTerminalModesSize;
453     DWORD dwTerminalModesOffset;
454     DWORD dwDevSpecificSize;
455     DWORD dwDevSpecificOffset;
456 } LINECALLINFO, *LPLINECALLINFO;
457 
458 typedef struct linecalllist_tag {
459     DWORD dwTotalSize;
460     DWORD dwNeededSize;
461     DWORD dwUsedSize;
462     DWORD dwCallsNumEntries;
463     DWORD dwCallsSize;
464     DWORD dwCallsOffset;
465 } LINECALLLIST, *LPLINECALLLIST;
466 
467 typedef struct linecallparams_tag {
468     DWORD dwTotalSize;
469     DWORD dwBearerMode;
470     DWORD dwMinRate;
471     DWORD dwMaxRate;
472     DWORD dwMediaMode;
473     DWORD dwCallParamFlags;
474     DWORD dwAddressMode;
475     DWORD dwAddressID;
476     LINEDIALPARAMS DialParams;
477     DWORD dwOrigAddressSize;
478     DWORD dwOrigAddressOffset;
479     DWORD dwDisplayableAddressSize;
480     DWORD dwDisplayableAddressOffset;
481     DWORD dwCalledPartySize;
482     DWORD dwCalledPartyOffset;
483     DWORD dwCommentSize;
484     DWORD dwCommentOffset;
485     DWORD dwUserUserInfoSize;
486     DWORD dwUserUserInfoOffset;
487     DWORD dwHighLevelCompSize;
488     DWORD dwHighLevelCompOffset;
489     DWORD dwLowLevelCompSize;
490     DWORD dwLowLevelCompOffset;
491     DWORD dwDevSpecificSize;
492     DWORD dwDevSpecificOffset;
493 } LINECALLPARAMS, *LPLINECALLPARAMS;
494 
495 typedef struct linecallstatus_tag {
496     DWORD dwTotalSize;
497     DWORD dwNeededSize;
498     DWORD dwUsedSize;
499     DWORD dwCallState;
500     DWORD dwCallStateMode;
501     DWORD dwCallPrivilege;
502     DWORD dwCallFeatures;
503     DWORD dwDevSpecificSize;
504     DWORD dwDevSpecificOffset;
505 } LINECALLSTATUS, *LPLINECALLSTATUS;
506 
507 typedef struct linecountrylist_tag {
508     DWORD dwTotalSize;
509     DWORD dwNeededSize;
510     DWORD dwUsedSize;
511     DWORD dwNumCountries;
512     DWORD dwCountryListSize;
513     DWORD dwCountryListOffset;
514 } LINECOUNTRYLIST, *LPLINECOUNTRYLIST;
515 
516 typedef struct linecountryentry_tag {
517     DWORD dwCountryID;
518     DWORD dwCountryCode;
519     DWORD dwNextCountryID;
520     DWORD dwCountryNameSize;
521     DWORD dwCountryNameOffset;
522     DWORD dwSameAreaRuleSize;
523     DWORD dwSameAreaRuleOffset;
524     DWORD dwLongDistanceRuleSize;
525     DWORD dwLongDistanceRuleOffset;
526     DWORD dwInternationalRuleSize;
527     DWORD dwInternationalRuleOffset;
528 } LINECOUNTRYENTRY, *LPLINECOUNTRYENTRY;
529 
530 typedef struct linedevcaps_tag {
531     DWORD dwTotalSize;
532     DWORD dwNeededSize;
533     DWORD dwUsedSize;
534     DWORD dwProviderInfoSize;
535     DWORD dwProviderInfoOffset;
536     DWORD dwSwitchInfoSize;
537     DWORD dwSwitchInfoOffset;
538     DWORD dwPermanentLineID;
539     DWORD dwLineNameSize;
540     DWORD dwLineNameOffset;
541     DWORD dwStringFormat;
542     DWORD dwAddressModes;
543     DWORD dwNumAddresses;
544     DWORD dwBearerModes;
545     DWORD dwMaxRate;
546     DWORD dwMediaModes;
547     DWORD dwGenerateToneModes;
548     DWORD dwGenerateToneMaxNumFreq;
549     DWORD dwGenerateDigitModes;
550     DWORD dwMonitorToneMaxNumFreq;
551     DWORD dwMonitorToneMaxNumEntries;
552     DWORD dwMonitorDigitModes;
553     DWORD dwGatherDigitsMinTimeout;
554     DWORD dwGatherDigitsMaxTimeout;
555     DWORD dwMedCtlDigitMaxListSize;
556     DWORD dwMedCtlMediaMaxListSize;
557     DWORD dwMedCtlToneMaxListSize;
558     DWORD dwMedCtlCallStateMaxListSize;
559     DWORD dwDevCapFlags;
560     DWORD dwMaxNumActiveCalls;
561     DWORD dwAnswerMode;
562     DWORD dwRingModes;
563     DWORD dwLineStates;
564     DWORD dwUUIAcceptSize;
565     DWORD dwUUIAnswerSize;
566     DWORD dwUUIMakeCallSize;
567     DWORD dwUUIDropSize;
568     DWORD dwUUISendUserUserInfoSize;
569     DWORD dwUUICallInfoSize;
570     LINEDIALPARAMS MinDialParams;
571     LINEDIALPARAMS MaxDialParams;
572     LINEDIALPARAMS DefaultDialParams;
573     DWORD dwNumTerminals;
574     DWORD dwTerminalCapsSize;
575     DWORD dwTerminalCapsOffset;
576     DWORD dwTerminalTextEntrySize;
577     DWORD dwTerminalTextSize;
578     DWORD dwTerminalTextOffset;
579     DWORD dwDevSpecificSize;
580     DWORD dwDevSpecificOffset;
581     DWORD dwLineFeatures;
582 } LINEDEVCAPS, *LPLINEDEVCAPS;
583 
584 typedef struct linedevstatus_tag {
585     DWORD dwTotalSize;
586     DWORD dwNeededSize;
587     DWORD dwUsedSize;
588     DWORD dwNumOpens;
589     DWORD dwOpenMediaModes;
590     DWORD dwNumActiveCalls;
591     DWORD dwNumOnHoldCalls;
592     DWORD dwNumOnHoldPendCalls;
593     DWORD dwLineFeatures;
594     DWORD dwNumCallCompletions;
595     DWORD dwRingMode;
596     DWORD dwSignalLevel;
597     DWORD dwBatteryLevel;
598     DWORD dwRoamMode;
599     DWORD dwDevStatusFlags;
600     DWORD dwTerminalModesSize;
601     DWORD dwTerminalModesOffset;
602     DWORD dwDevSpecificSize;
603     DWORD dwDevSpecificOffset;
604 } LINEDEVSTATUS, *LPLINEDEVSTATUS;
605 
606 typedef struct lineextensionid_tag {
607     DWORD dwExtensionID0;
608     DWORD dwExtensionID1;
609     DWORD dwExtensionID2;
610     DWORD dwExtensionID3;
611 } LINEEXTENSIONID, *LPLINEEXTENSIONID;
612 
613 typedef struct lineforward_tag {
614     DWORD dwForwardMode;
615     DWORD dwCallerAddressSize;
616     DWORD dwCallerAddressOffset;
617     DWORD dwDestCountryCode;
618     DWORD dwDestAddressSize;
619     DWORD dwDestAddressOffset;
620 } LINEFORWARD, *LPLINEFORWARD;
621 
622 typedef struct lineforwardlist_tag {
623     DWORD dwTotalSize;
624     DWORD dwNumEntries;
625     LINEFORWARD ForwardList[1];
626 } LINEFORWARDLIST, *LPLINEFORWARDLIST;
627 
628 typedef struct linegeneratetone_tag {
629     DWORD dwFrequency;
630     DWORD dwCadenceOn;
631     DWORD dwCadenceOff;
632     DWORD dwVolume;
633 } LINEGENERATETONE, *LPLINEGENERATETONE;
634 
635 typedef struct lineinitializeexparams_tag {
636     DWORD dwTotalSize;
637     DWORD dwNeededSize;
638     DWORD dwUsedSize;
639     DWORD dwOptions;
640     union {
641     HANDLE hEvent;
642     HANDLE hCompletionPort;
643     } Handles;
644     DWORD dwCompletionKey;
645 } LINEINITIALIZEEXPARAMS, *LPLINEINITIALIZEEXPARAMS;
646 
647 typedef struct linemediacontrolcallstate_tag {
648     DWORD dwCallStates;
649     DWORD dwMediaControl;
650 } LINEMEDIACONTROLCALLSTATE, *LPLINEMEDIACONTROLCALLSTATE;
651 
652 typedef struct linemediacontroldigit_tag {
653     DWORD dwDigit;
654     DWORD dwDigitModes;
655     DWORD dwMediaControl;
656 } LINEMEDIACONTROLDIGIT, *LPLINEMEDIACONTROLDIGIT;
657 
658 typedef struct linemediacontrolmedia_tag {
659     DWORD dwMediaModes;
660     DWORD dwDuration;
661     DWORD dwMediaControl;
662 } LINEMEDIACONTROLMEDIA, *LPLINEMEDIACONTROLMEDIA;
663 
664 typedef struct linemediacontroltone_tag {
665     DWORD dwAppSpecific;
666     DWORD dwDuration;
667     DWORD dwFrequency1;
668     DWORD dwFrequency2;
669     DWORD dwFrequency3;
670     DWORD dwMediaControl;
671 } LINEMEDIACONTROLTONE, *LPLINEMEDIACONTROLTONE;
672 
673 typedef struct linemonitortone_tag {
674     DWORD dwAppSpecific;
675     DWORD dwDuration;
676     DWORD dwFrequency1;
677     DWORD dwFrequency2;
678     DWORD dwFrequency3;
679 } LINEMONITORTONE, *LPLINEMONITORTONE;
680 
681 typedef struct lineproviderlist_tag {
682     DWORD dwTotalSize;
683     DWORD dwNeededSize;
684     DWORD dwUsedSize;
685     DWORD dwNumProviders;
686     DWORD dwProviderListSize;
687     DWORD dwProviderListOffset;
688 } LINEPROVIDERLIST, *LPLINEPROVIDERLIST;
689 
690 typedef struct linetranslatecaps_tag {
691     DWORD dwTotalSize;
692     DWORD dwNeededSize;
693     DWORD dwUsedSize;
694     DWORD dwNumLocations;
695     DWORD dwLocationListSize;
696     DWORD dwLocationListOffset;
697     DWORD dwCurrentLocationID;
698     DWORD dwNumCards;
699     DWORD dwCardListSize;
700     DWORD dwCardListOffset;
701     DWORD dwCurrentPreferredCardID;
702 } LINETRANSLATECAPS, *LPLINETRANSLATECAPS;
703 
704 typedef struct linelocationentry_tag {
705     DWORD dwPermanentLocationID;
706     DWORD dwLocationNameSize;
707     DWORD dwLocationNameOffset;
708     DWORD dwCountryCode;
709     DWORD dwCityCodeSize;
710     DWORD dwCityCodeOffset;
711     DWORD dwPreferredCardID;
712     DWORD dwLocalAccessCodeSize;
713     DWORD dwLocalAccessCodeOffset;
714     DWORD dwLongDistanceAccessCodeSize;
715     DWORD dwLongDistanceAccessCodeOffset;
716     DWORD dwTollPrefixListSize;
717     DWORD dwTollPrefixListOffset;
718     DWORD dwCountryID;
719     DWORD dwOptions;
720     DWORD dwCancelCallWaitingSize;
721     DWORD dwCancelCallWaitingOffset;
722 } LINELOCATIONENTRY, *LPLINELOCATIONENTRY;
723 
724 typedef struct linecardentry_tag {
725     DWORD dwPermanentCardID;
726     DWORD dwCardNameSize;
727     DWORD dwCardNameOffset;
728     DWORD dwCardNumberDigits;
729     DWORD dwSameAreaRuleSize;
730     DWORD dwSameAreaRuleOffset;
731     DWORD dwLongDistanceRuleSize;
732     DWORD dwLongDistanceRuleOffset;
733     DWORD dwInternationalRuleSize;
734     DWORD dwInternationalRuleOffset;
735     DWORD dwOptions;
736 } LINECARDENTRY, *LPLINECARDENTRY;
737 
738 
739 typedef struct linetranslateoutput_tag {
740     DWORD dwTotalSize;
741     DWORD dwNeededSize;
742     DWORD dwUsedSize;
743     DWORD dwDialableStringSize;
744     DWORD dwDialableStringOffset;
745     DWORD dwDisplayableStringSize;
746     DWORD dwDisplayableStringOffset;
747     DWORD dwCurrentCountry;
748     DWORD dwDestCountry;
749     DWORD dwTranslateResults;
750 } LINETRANSLATEOUTPUT, *LPLINETRANSLATEOUTPUT;
751 
752 typedef struct linemessage_tag {
753   DWORD     hDevice;
754   DWORD     dwMessageID;
755   DWORD_PTR dwCallbackInstance;
756   DWORD_PTR dwParam1;
757   DWORD_PTR dwParam2;
758   DWORD_PTR dwParam3;
759 } LINEMESSAGE, *LPLINEMESSAGE;
760 
761 typedef void (CALLBACK *LINECALLBACK)(DWORD, DWORD, DWORD, DWORD, DWORD, DWORD);
762 
763 typedef struct _PHONEAPP {
764   int dummy;
765 } PHONEAPP, *LPPHONEAPP;
766 
767 typedef struct _PHONE {
768     DWORD dwRingMode;
769     DWORD dwVolume;
770 } PHONE, *LPPHONE;
771 
772 typedef struct phonebuttoninfo_tag {
773     DWORD dwTotalSize;
774     DWORD dwNeededSize;
775     DWORD dwUsedSize;
776     DWORD dwButtonMode;
777     DWORD dwButtonFunction;
778     DWORD dwButtonTextSize;
779     DWORD dwButtonTextOffset;
780     DWORD dwDevSpecificSize;
781     DWORD dwDevSpecificOffset;
782     DWORD dwButtonState;
783 } PHONEBUTTONINFO, *LPPHONEBUTTONINFO;
784 
785 typedef struct phonecaps_tag {
786     DWORD dwTotalSize;
787     DWORD dwNeededSize;
788     DWORD dwUsedSize;
789     DWORD dwProviderInfoSize;
790     DWORD dwProviderInfoOffset;
791     DWORD dwPhoneInfoSize;
792     DWORD dwPhoneInfoOffset;
793     DWORD dwPermanentPhoneID;
794     DWORD dwPhoneNameSize;
795     DWORD dwPhoneNameOffset;
796     DWORD dwStringFormat;
797     DWORD dwPhoneStates;
798     DWORD dwHookSwitchDevs;
799     DWORD dwHandsetHookSwitchModes;
800     DWORD dwSpeakerHookSwitchModes;
801     DWORD dwHeadsetHookSwitchModes;
802     DWORD dwVolumeFlags;
803     DWORD dwGainFlags;
804     DWORD dwDisplayNumRows;
805     DWORD dwDisplayNumColumns;
806     DWORD dwNumRingModes;
807     DWORD dwNumButtonLamps;
808     DWORD dwButtonModesSize;
809     DWORD dwButtonModesOffset;
810     DWORD dwButtonFunctionsSize;
811     DWORD dwButtonFunctionsOffset;
812     DWORD dwLampModesSize;
813     DWORD dwLampModesOffset;
814     DWORD dwNumSetData;
815     DWORD dwSetDataSize;
816     DWORD dwSetDataOffset;
817     DWORD dwNumGetData;
818     DWORD dwGetDataSize;
819     DWORD dwGetDataOffset;
820     DWORD dwDevSpecificSize;
821     DWORD dwDevSpecificOffset;
822 } PHONECAPS, *LPPHONECAPS;
823 
824 typedef struct phoneextensionid_tag {
825     DWORD dwExtensionID0;
826     DWORD dwExtensionID1;
827     DWORD dwExtensionID2;
828     DWORD dwExtensionID3;
829 } PHONEEXTENSIONID, *LPPHONEEXTENSIONID;
830 
831 typedef struct phoneinitializeexparams_tag {
832     DWORD dwTotalSize;
833     DWORD dwNeededSize;
834     DWORD dwUsedSize;
835     DWORD dwOptions;
836     union {
837     HANDLE hEvent;
838     HANDLE hCompletionPort;
839     } Handles;
840     DWORD dwCompletionKey;
841 } PHONEINITIALIZEEXPARAMS, *LPPHONEINITIALIZEEXPARAMS;
842 
843 typedef struct phonemessage_tag {
844   DWORD     hDevice;
845   DWORD     dwMessageID;
846   DWORD_PTR dwCallbackInstance;
847   DWORD_PTR dwParam1;
848   DWORD_PTR dwParam2;
849   DWORD_PTR dwParam3;
850 } PHONEMESSAGE, *LPPHONEMESSAGE;
851 
852 typedef struct phonestatus_tag {
853     DWORD dwTotalSize;
854     DWORD dwNeededSize;
855     DWORD dwUsedSize;
856     DWORD dwStatusFlags;
857     DWORD dwNumOwners;
858     DWORD dwRingMOde;
859     DWORD dwRingVolume;
860     DWORD dwHandsetHookSwitchMode;
861     DWORD dwHandsetVolume;
862     DWORD dwHandsetGain;
863     DWORD dwSpeakerHookSwitchMode;
864     DWORD dwSpeakerVolume;
865     DWORD dwSpeakerGain;
866     DWORD dwHeadsetHookSwitchMode;
867     DWORD dwHeadsetVolume;
868     DWORD dwHeadsetGain;
869     DWORD dwDisplaySize;
870     DWORD dwDisplayOffset;
871     DWORD dwLampModesSize;
872     DWORD dwLampModesOffset;
873     DWORD dwOwnerNameSize;
874     DWORD dwOwnerNameOffset;
875     DWORD dwDevSpecificSize;
876     DWORD dwDevSpecificOffset;
877 } PHONESTATUS, *LPPHONESTATUS;
878 
879 typedef void (CALLBACK *PHONECALLBACK)(HANDLE, DWORD, DWORD, DWORD, DWORD, DWORD);
880 
881 typedef struct varstring_tag {
882     DWORD dwTotalSize;
883     DWORD dwNeededSize;
884     DWORD dwUsedSize;
885     DWORD dwStringFormat;
886     DWORD dwStringSize;
887     DWORD dwStringOffset;
888 } VARSTRING, *LPVARSTRING;
889 
890 /* line functions */
891 DWORD WINAPI lineAccept(HCALL,LPCSTR,DWORD);
892 DWORD WINAPI lineAddProvider(LPCSTR,HWND,LPDWORD);
893 DWORD WINAPI lineAddToConference(HCALL,HCALL);
894 DWORD WINAPI lineAnswer(HCALL,LPCSTR,DWORD);
895 DWORD WINAPI lineBlindTransfer(HCALL,LPCSTR,DWORD);
896 DWORD WINAPI lineClose(HLINE);
897 DWORD WINAPI lineCompleteCall(HCALL,LPDWORD,DWORD,DWORD);
898 DWORD WINAPI lineCompleteTransfer(HCALL,HCALL,LPHCALL,DWORD);
899 DWORD WINAPI lineConfigDialog(DWORD,HWND,LPCSTR);
900 DWORD WINAPI lineConfigDialogEdit(DWORD,HWND,LPCSTR,LPVOID const,DWORD,LPVARSTRING);
901 DWORD WINAPI lineConfigProvider(HWND,DWORD);
902 DWORD WINAPI lineDeallocateCall(HCALL);
903 DWORD WINAPI lineDevSpecific(HLINE,DWORD,HCALL,LPVOID,DWORD);
904 DWORD WINAPI lineDevSpecificFeature(HLINE,DWORD,LPVOID,DWORD);
905 DWORD WINAPI lineDial(HCALL,LPCSTR,DWORD);
906 DWORD WINAPI lineDrop(HCALL,LPCSTR,DWORD);
907 DWORD WINAPI lineForward(HLINE,DWORD,DWORD,LPLINEFORWARDLIST,DWORD,LPHCALL,LPLINECALLPARAMS);
908 DWORD WINAPI lineGatherDigits(HCALL,DWORD,LPSTR,DWORD,LPCSTR,DWORD,DWORD);
909 DWORD WINAPI lineGenerateDigits(HCALL,DWORD,LPCSTR,DWORD);
910 DWORD WINAPI lineGenerateTone(HCALL,DWORD,DWORD,DWORD,LPLINEGENERATETONE);
911 DWORD WINAPI lineGetAddressCaps(HLINEAPP,DWORD,DWORD,DWORD,DWORD,LPLINEADDRESSCAPS);
912 DWORD WINAPI lineGetAddressID(HLINE,LPDWORD,DWORD,LPCSTR,DWORD);
913 DWORD WINAPI lineGetAddressStatus(HLINE,DWORD,LPLINEADDRESSSTATUS);
914 DWORD WINAPI lineGetAppPriority(LPCSTR,DWORD,LPLINEEXTENSIONID const,DWORD,LPVARSTRING,LPDWORD);
915 DWORD WINAPI lineGetCallInfo(HCALL,LPLINECALLINFO);
916 DWORD WINAPI lineGetCallStatus(HCALL,LPLINECALLSTATUS);
917 DWORD WINAPI lineGetConfRelatedCalls(HCALL,LPLINECALLLIST);
918 DWORD WINAPI lineGetCountry(DWORD,DWORD,LPLINECOUNTRYLIST);
919 DWORD WINAPI lineGetDevCaps(HLINEAPP,DWORD,DWORD,DWORD,LPLINEDEVCAPS);
920 DWORD WINAPI lineGetDevConfig(DWORD,LPVARSTRING,LPCSTR);
921 DWORD WINAPI lineGetID(HLINE,DWORD,HCALL,DWORD,LPVARSTRING,LPCSTR);
922 DWORD WINAPI lineGetIcon(DWORD,LPCSTR,HICON *);
923 DWORD WINAPI lineGetLineDevStatus(HLINE,LPLINEDEVSTATUS);
924 DWORD WINAPI lineGetNewCalls(HLINE,DWORD,DWORD,LPLINECALLLIST);
925 DWORD WINAPI lineGetNumRings(HLINE,DWORD,LPDWORD);
926 DWORD WINAPI lineGetProviderList(DWORD dwAPIVersion,LPLINEPROVIDERLIST);
927 DWORD WINAPI lineGetRequest(HLINEAPP,DWORD,LPVOID);
928 DWORD WINAPI lineGetStatusMessages(HLINE,LPDWORD,LPDWORD);
929 DWORD WINAPI lineGetTranslateCaps(HLINEAPP,DWORD,LPLINETRANSLATECAPS);
930 DWORD WINAPI lineHandoff(HCALL,LPCSTR,DWORD);
931 DWORD WINAPI lineHold(HCALL);
932 DWORD WINAPI lineInitialize(LPHLINEAPP,HINSTANCE,LINECALLBACK,LPCSTR,LPDWORD);
933 LONG  WINAPI lineInitializeExA(LPHLINEAPP,HINSTANCE,LINECALLBACK,LPCSTR,LPDWORD,LPDWORD,LPLINEINITIALIZEEXPARAMS);
934 LONG  WINAPI lineInitializeExW(LPHLINEAPP,HINSTANCE,LINECALLBACK,LPCWSTR,LPDWORD,LPDWORD,LPLINEINITIALIZEEXPARAMS);
935 #define      lineInitializeEx WINELIB_NAME_AW(lineInitializeEx)
936 DWORD WINAPI lineMakeCall(HLINE,LPHCALL,LPCSTR,DWORD,LPLINECALLPARAMS);
937 DWORD WINAPI lineMonitorDigits(HCALL,DWORD);
938 DWORD WINAPI lineMonitorMedia(HCALL,DWORD);
939 DWORD WINAPI lineMonitorTones(HCALL,LPLINEMONITORTONE,DWORD);
940 DWORD WINAPI lineNegotiateAPIVersion(HLINEAPP,DWORD,DWORD,DWORD,LPDWORD,LPLINEEXTENSIONID);
941 DWORD WINAPI lineNegotiateExtVersion(HLINEAPP,DWORD,DWORD,DWORD,DWORD,LPDWORD);
942 DWORD WINAPI lineOpen(HLINEAPP,DWORD,LPHLINE,DWORD,DWORD,DWORD,DWORD,DWORD,LPLINECALLPARAMS);
943 DWORD WINAPI linePark(HCALL,DWORD,LPCSTR,LPVARSTRING);
944 DWORD WINAPI linePickup(HLINE,DWORD,LPHCALL,LPCSTR,LPCSTR);
945 DWORD WINAPI linePrepareAddToConference(HCALL,LPHCALL,LPLINECALLPARAMS);
946 DWORD WINAPI lineRedirect(HCALL,LPCSTR,DWORD);
947 DWORD WINAPI lineRegisterRequestRecipient(HLINEAPP,DWORD,DWORD,DWORD);
948 DWORD WINAPI lineReleaseUserUserInfo(HCALL);
949 DWORD WINAPI lineRemoveFromConference(HCALL);
950 DWORD WINAPI lineRemoveProvider(DWORD,HWND);
951 DWORD WINAPI lineSecureCall(HCALL);
952 DWORD WINAPI lineSendUserUserInfo(HCALL,LPCSTR,DWORD);
953 DWORD WINAPI lineSetAppPriority(LPCSTR,DWORD,LPLINEEXTENSIONID const,DWORD,LPCSTR,DWORD);
954 DWORD WINAPI lineSetAppSpecific(HCALL,DWORD);
955 DWORD WINAPI lineSetCallParams(HCALL,DWORD,DWORD,DWORD,LPLINEDIALPARAMS);
956 DWORD WINAPI lineSetCallPrivilege(HCALL,DWORD);
957 DWORD WINAPI lineSetCurrentLocation(HLINEAPP,DWORD);
958 DWORD WINAPI lineSetDevConfig(DWORD,LPVOID,DWORD,LPCSTR);
959 DWORD WINAPI lineSetMediaControl(HLINE,DWORD,HCALL,DWORD,LPLINEMEDIACONTROLDIGIT const,DWORD,LPLINEMEDIACONTROLMEDIA const,DWORD,LPLINEMEDIACONTROLTONE const,DWORD,LPLINEMEDIACONTROLCALLSTATE const,DWORD);
960 DWORD WINAPI lineSetMediaMode(HCALL,DWORD);
961 DWORD WINAPI lineSetNumRings(HLINE,DWORD,DWORD);
962 DWORD WINAPI lineSetStatusMessages(HLINE,DWORD,DWORD);
963 DWORD WINAPI lineSetTerminal(HLINE,DWORD,HCALL,DWORD,DWORD,DWORD,DWORD);
964 DWORD WINAPI lineSetTollList(HLINEAPP,DWORD,LPCSTR,DWORD);
965 DWORD WINAPI lineSetupConference(HCALL,HLINE,LPHCALL,LPHCALL,DWORD,LPLINECALLPARAMS);
966 DWORD WINAPI lineSetupTransfer(HCALL,LPHCALL,LPLINECALLPARAMS);
967 DWORD WINAPI lineShutdown(HLINEAPP);
968 DWORD WINAPI lineSwapHold(HCALL,HCALL);
969 DWORD WINAPI lineTranslateAddress(HLINEAPP,DWORD,DWORD,LPCSTR,DWORD,DWORD,LPLINETRANSLATEOUTPUT);
970 DWORD WINAPI lineTranslateDialog(HLINEAPP,DWORD,DWORD,HWND,LPCSTR);
971 DWORD WINAPI lineUncompleteCall(HLINE,DWORD);
972 DWORD WINAPI lineUnHold(HCALL);
973 DWORD WINAPI lineUnpark(HLINE,DWORD,LPHCALL,LPCSTR);
974 
975 DWORD WINAPI lineAddProviderA(LPCSTR,HWND,LPDWORD);
976 DWORD WINAPI lineBlindTransferA(HCALL,LPCSTR,DWORD);
977 DWORD WINAPI lineConfigDialogA(DWORD,HWND,LPCSTR);
978 DWORD WINAPI lineConfigDialogEditA(DWORD,HWND,LPCSTR,LPVOID const,DWORD,LPVARSTRING);
979 DWORD WINAPI lineDialA(HCALL,LPCSTR,DWORD);
980 DWORD WINAPI lineForwardA(HLINE,DWORD,DWORD,LPLINEFORWARDLIST,DWORD,LPHCALL,LPLINECALLPARAMS);
981 DWORD WINAPI lineGatherDigitsA(HCALL,DWORD,LPSTR,DWORD,LPCSTR,DWORD,DWORD);
982 DWORD WINAPI lineGenerateDigitsA(HCALL,DWORD,LPCSTR,DWORD);
983 DWORD WINAPI lineGetAddressCapsA(HLINEAPP,DWORD,DWORD,DWORD,DWORD,LPLINEADDRESSCAPS);
984 DWORD WINAPI lineGetAddressIDA(HLINE,LPDWORD,DWORD,LPCSTR,DWORD);
985 DWORD WINAPI lineGetAddressStatusA(HLINE,DWORD,LPLINEADDRESSSTATUS);
986 DWORD WINAPI lineGetAppPriorityA(LPCSTR,DWORD,LPLINEEXTENSIONID const,DWORD,LPVARSTRING,LPDWORD);
987 DWORD WINAPI lineGetCallInfoA(HCALL,LPLINECALLINFO);
988 DWORD WINAPI lineGetCountryA(DWORD,DWORD,LPLINECOUNTRYLIST);
989 DWORD WINAPI lineGetDevCapsA(HLINEAPP,DWORD,DWORD,DWORD,LPLINEDEVCAPS);
990 DWORD WINAPI lineGetDevConfigA(DWORD,LPVARSTRING,LPCSTR);
991 DWORD WINAPI lineGetIDA(HLINE,DWORD,HCALL,DWORD,LPVARSTRING,LPCSTR);
992 DWORD WINAPI lineGetIconA(DWORD,LPCSTR,HICON *);
993 DWORD WINAPI lineGetLineDevStatusA(HLINE,LPLINEDEVSTATUS);
994 DWORD WINAPI lineGetProviderListA(DWORD dwAPIVersion,LPLINEPROVIDERLIST);
995 DWORD WINAPI lineGetRequestA(HLINEAPP,DWORD,LPVOID);
996 DWORD WINAPI lineGetTranslateCapsA(HLINEAPP,DWORD,LPLINETRANSLATECAPS);
997 DWORD WINAPI lineHandoffA(HCALL,LPCSTR,DWORD);
998 DWORD WINAPI lineMakeCallA(HLINE,LPHCALL,LPCSTR,DWORD,LPLINECALLPARAMS);
999 DWORD WINAPI lineOpenA(HLINEAPP,DWORD,LPHLINE,DWORD,DWORD,DWORD,DWORD,DWORD,LPLINECALLPARAMS);
1000 DWORD WINAPI lineParkA(HCALL,DWORD,LPCSTR,LPVARSTRING);
1001 DWORD WINAPI linePickupA(HLINE,DWORD,LPHCALL,LPCSTR,LPCSTR);
1002 DWORD WINAPI linePrepareAddToConferenceA(HCALL,LPHCALL,LPLINECALLPARAMS);
1003 DWORD WINAPI lineRedirectA(HCALL,LPCSTR,DWORD);
1004 DWORD WINAPI lineSetAppPriorityA(LPCSTR,DWORD,LPLINEEXTENSIONID const,DWORD,LPCSTR,DWORD);
1005 DWORD WINAPI lineSetDevConfigA(DWORD,LPVOID,DWORD,LPCSTR);
1006 DWORD WINAPI lineSetTollListA(HLINEAPP,DWORD,LPCSTR,DWORD);
1007 DWORD WINAPI lineSetupConferenceA(HCALL,HLINE,LPHCALL,LPHCALL,DWORD,LPLINECALLPARAMS);
1008 DWORD WINAPI lineSetupTransferA(HCALL,LPHCALL,LPLINECALLPARAMS);
1009 DWORD WINAPI lineTranslateAddressA(HLINEAPP,DWORD,DWORD,LPCSTR,DWORD,DWORD,LPLINETRANSLATEOUTPUT);
1010 DWORD WINAPI lineTranslateDialogA(HLINEAPP,DWORD,DWORD,HWND,LPCSTR);
1011 DWORD WINAPI lineUnhold(HCALL);
1012 DWORD WINAPI lineUnparkA(HLINE,DWORD,LPHCALL,LPCSTR);
1013 
1014 /* phone functions */
1015 DWORD WINAPI phoneClose(HPHONE);
1016 DWORD WINAPI phoneConfigDialog(DWORD,HWND,LPCSTR);
1017 DWORD WINAPI phoneDevSpecific(HPHONE,LPVOID,DWORD);
1018 DWORD WINAPI phoneGetButtonInfo(HPHONE,DWORD,LPPHONEBUTTONINFO);
1019 DWORD WINAPI phoneGetData(HPHONE,DWORD,LPVOID,DWORD);
1020 DWORD WINAPI phoneGetDevCaps(HPHONEAPP,DWORD,DWORD,DWORD,LPPHONECAPS);
1021 DWORD WINAPI phoneGetDisplay(HPHONE,LPVARSTRING);
1022 DWORD WINAPI phoneGetGain(HPHONE,DWORD,LPDWORD);
1023 DWORD WINAPI phoneGetHookSwitch(HPHONE,LPDWORD);
1024 DWORD WINAPI phoneGetID(HPHONE,LPVARSTRING,LPCSTR);
1025 DWORD WINAPI phoneGetIcon(DWORD,LPCSTR,HICON *);
1026 DWORD WINAPI phoneGetLamp(HPHONE,DWORD,LPDWORD);
1027 DWORD WINAPI phoneGetRing(HPHONE,LPDWORD,LPDWORD);
1028 DWORD WINAPI phoneGetStatus(HPHONE,LPPHONESTATUS);
1029 DWORD WINAPI phoneGetStatusMessages(HPHONE,LPDWORD,LPDWORD,LPDWORD);
1030 DWORD WINAPI phoneGetVolume(HPHONE,DWORD,LPDWORD);
1031 DWORD WINAPI phoneInitialize(LPHPHONEAPP,HINSTANCE,PHONECALLBACK,LPCSTR,LPDWORD);
1032 DWORD WINAPI phoneNegotiateAPIVersion(HPHONEAPP,DWORD,DWORD,DWORD,LPDWORD,LPPHONEEXTENSIONID);
1033 DWORD WINAPI phoneNegotiateExtVersion(HPHONEAPP,DWORD,DWORD,DWORD,DWORD,LPDWORD);
1034 DWORD WINAPI phoneOpen(HPHONEAPP,DWORD,LPHPHONE,DWORD,DWORD,DWORD,DWORD);
1035 DWORD WINAPI phoneSetButtonInfo(HPHONE,DWORD,LPPHONEBUTTONINFO);
1036 DWORD WINAPI phoneSetData(HPHONE,DWORD,LPVOID,DWORD);
1037 DWORD WINAPI phoneSetDisplay(HPHONE,DWORD,DWORD,LPCSTR,DWORD);
1038 DWORD WINAPI phoneSetGain(HPHONE,DWORD,DWORD);
1039 DWORD WINAPI phoneSetHookSwitch(HPHONE,DWORD,DWORD);
1040 DWORD WINAPI phoneSetLamp(HPHONE,DWORD,DWORD);
1041 DWORD WINAPI phoneSetRing(HPHONE,DWORD,DWORD);
1042 DWORD WINAPI phoneSetStatusMessages(HPHONE,DWORD,DWORD,DWORD);
1043 DWORD WINAPI phoneSetVolume(HPHONE,DWORD,DWORD);
1044 DWORD WINAPI phoneShutdown(HPHONEAPP);
1045 
1046 DWORD WINAPI phoneConfigDialogA(DWORD,HWND,LPCSTR);
1047 DWORD WINAPI phoneGetButtonInfoA(HPHONE,DWORD,LPPHONEBUTTONINFO);
1048 DWORD WINAPI phoneGetDevCapsA(HPHONEAPP,DWORD,DWORD,DWORD,LPPHONECAPS);
1049 DWORD WINAPI phoneGetIDA(HPHONE,LPVARSTRING,LPCSTR);
1050 DWORD WINAPI phoneGetIconA(DWORD,LPCSTR,HICON *);
1051 DWORD WINAPI phoneGetStatusA(HPHONE,LPPHONESTATUS);
1052 DWORD WINAPI phoneSetButtonInfoA(HPHONE,DWORD,LPPHONEBUTTONINFO);
1053 
1054 /* "assisted" functions */
1055 DWORD WINAPI tapiGetLocationInfo(LPSTR,LPSTR);
1056 DWORD WINAPI tapiRequestMakeCall(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
1057 
1058 DWORD WINAPI tapiGetLocationInfoA(LPSTR,LPSTR);
1059 DWORD WINAPI tapiRequestMakeCallA(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
1060 
1061 #ifdef __cplusplus
1062 } /* extern "C" */
1063 #endif /* defined(__cplusplus) */
1064 
1065 #endif /* __WINE_TAPI_H */
1066