No longer directly accessing debuggee memory.
[wine] / dlls / tapi32 / line.c
1 /*
2  * TAPI32 line services
3  *
4  * Copyright 1999  Andreas Mohr
5  */
6
7 #include <string.h>
8 #include <stdlib.h>
9 #include <stdio.h>
10 #include "winbase.h"
11 #include "windef.h"
12 #include "tapi.h"
13 #include "debugtools.h"
14
15 DEFAULT_DEBUG_CHANNEL(tapi)
16 DECLARE_DEBUG_CHANNEL(comm)
17
18 DWORD WINAPI lineAccept(HCALL hCall, LPCSTR lpsUserUserInfo, DWORD dwSize)
19 {
20     FIXME("(%04x, %s, %ld): stub.\n", hCall, lpsUserUserInfo, dwSize);
21     return 1;
22 }
23
24 DWORD WINAPI lineAddProvider(LPCSTR lpszProviderName, HWND hwndOwner, LPDWORD lpdwPermanentProviderID)
25 {
26     FIXME("(%s, %04x, %p): stub.\n", lpszProviderName, hwndOwner, lpdwPermanentProviderID);
27     return 1;
28 }       
29
30 DWORD WINAPI lineAddToConference(HCALL hConfCall, HCALL hConsultCall)
31 {
32     FIXME("(%04x, %04x): stub.\n", hConfCall, hConsultCall);
33     return 1;
34 }
35
36 DWORD WINAPI lineAnswer(HCALL hCall, LPCSTR lpsUserUserInfo, DWORD dwSize)
37 {
38     FIXME("(%04x, %s, %ld): stub.\n", hCall, lpsUserUserInfo, dwSize);
39     return 1;
40 }       
41
42 DWORD WINAPI lineBlindTransfer(HCALL hCall, LPCSTR lpszDestAddress, DWORD dwCountryCode)
43 {
44     FIXME("(%04x, %s, %08lx): stub.\n", hCall, lpszDestAddress, dwCountryCode);
45     return 1;
46 }       
47
48 DWORD WINAPI lineClose(HLINE hLine)
49 {
50     FIXME("(%04x): stub.\n", hLine);
51     return 0;
52 }       
53
54 DWORD WINAPI lineCompleteCall(HCALL hCall, LPDWORD lpdwCompletionID, DWORD dwCompletionMode, DWORD dwMessageID)
55 {
56     FIXME("(%04x, %p, %08lx, %08lx): stub.\n", hCall, lpdwCompletionID, dwCompletionMode, dwMessageID);
57     return 1;
58 }       
59
60 DWORD WINAPI lineCompleteTransfer(HCALL hCall, HCALL hConsultCall, LPHCALL lphConfCall, DWORD dwTransferMode)
61 {
62     FIXME("(%04x, %04x, %p, %08lx): stub.\n", hCall, hConsultCall, lphConfCall, dwTransferMode);
63     return 1;
64 }
65
66 DWORD WINAPI lineConfigDialog(DWORD dwDeviceID, HWND hwndOwner, LPCSTR lpszDeviceClass)
67 {
68     FIXME("(%08lx, %04x, %s): stub.\n", dwDeviceID, hwndOwner, lpszDeviceClass);
69     return 0;
70 }       
71
72 DWORD WINAPI lineConfigDialogEdit(DWORD dwDeviceID, HWND hwndOwner, LPCSTR lpszDeviceClass, LPVOID const lpDeviceConfigIn, DWORD dwSize, LPVARSTRING lpDeviceConfigOut)
73 {
74     FIXME("stub.\n");
75     return 0;
76 }       
77
78 DWORD WINAPI lineConfigProvider(HWND hwndOwner, DWORD dwPermanentProviderID)
79 {
80     FIXME("(%04x, %08lx): stub.\n", hwndOwner, dwPermanentProviderID);
81     return 0;
82 }
83
84 DWORD WINAPI lineDeallocateCall(HCALL hCall)
85 {
86     FIXME("(%04x): stub.\n", hCall);
87     return 0;
88 }
89
90 DWORD WINAPI lineDevSpecific(HLINE hLine, DWORD dwAddressId, HCALL hCall, LPVOID lpParams, DWORD dwSize)
91 {
92     FIXME("(%04x, %08lx, %04x, %p, %ld): stub.\n", hLine, dwAddressId, hCall, lpParams, dwSize);
93     return 1;
94 }       
95
96 DWORD WINAPI lineDevSpecificFeature(HLINE hLine, DWORD dwFeature, LPVOID lpParams, DWORD dwSize)
97 {
98     FIXME("(%04x, %08lx, %p, %ld): stub.\n", hLine, dwFeature, lpParams, dwSize);
99     return 1;
100 }
101
102 DWORD WINAPI lineDial(HCALL hCall, LPCSTR lpszDestAddress, DWORD dwCountryCode)
103 {
104     FIXME("(%04x, %s, %08lx): stub.\n", hCall, lpszDestAddress, dwCountryCode);
105     return 1;
106 }
107     
108 DWORD WINAPI lineDrop(HCALL hCall, LPCSTR lpsUserUserInfo, DWORD dwSize)
109 {
110     FIXME("(%04x, %s, %08lx): stub.\n", hCall, lpsUserUserInfo, dwSize);
111     return 1;
112 }
113
114 DWORD WINAPI lineForward(HLINE hLine, DWORD bAllAddress, DWORD dwAdressID, LPLINEFORWARDLIST lpForwardList, DWORD dwNumRingsNoAnswer, LPHCALL lphConsultCall, LPLINECALLPARAMS lpCallParams)
115 {
116     FIXME("stub.\n");
117     return 1;
118 }       
119         
120 DWORD WINAPI lineGatherDigits(HCALL hCall, DWORD dwDigitModes, LPSTR lpsDigits, DWORD dwNumDigits, LPCSTR lpszTerminationDigits, DWORD dwFirstDigitTimeout, DWORD dwInterDigitTimeout)
121 {
122     FIXME("stub.\n");
123     return 0;
124 }
125
126 DWORD WINAPI lineGenerateDigits(HCALL hCall, DWORD dwDigitModes, LPCSTR lpszDigits, DWORD dwDuration)
127 {
128     FIXME("(%04x, %08lx, %s, %ld): stub.\n", hCall, dwDigitModes, lpszDigits, dwDuration);
129     return 0;
130 }
131
132 DWORD WINAPI lineGenerateTone(HCALL hCall, DWORD dwToneMode, DWORD dwDuration, DWORD dwNumTones, LPLINEGENERATETONE lpTones)
133 {
134     FIXME("(%04x, %08lx, %ld, %ld, %p): stub.\n", hCall, dwToneMode, dwDuration, dwNumTones, lpTones);
135     return 0;
136 }       
137
138 DWORD WINAPI lineGetAddressCaps(HLINEAPP hLineApp, DWORD dwDeviceID, DWORD dwAddressID, DWORD dwAPIVersion, DWORD dwExtVersion, LPLINEADDRESSCAPS lpAddressCaps)
139 {
140     FIXME("(%04x, %08lx, %08lx, %08lx, %08lx, %p): stub.\n", hLineApp, dwDeviceID, dwAddressID, dwAPIVersion, dwExtVersion, lpAddressCaps);
141     return 0;
142 }
143
144 DWORD WINAPI lineGetAddressID(HLINE hLine, LPDWORD lpdwAddressID, DWORD dwAddressMode, LPCSTR lpsAddress, DWORD dwSize)
145 {
146     FIXME("%04x, %p, %08lx, %s, %ld): stub.\n", hLine, lpdwAddressID, dwAddressMode, lpsAddress, dwSize);
147     return 0;
148 }
149
150 DWORD WINAPI lineGetAddressStatus(HLINE hLine, DWORD dwAddressID, LPLINEADDRESSSTATUS lpAddressStatus)
151 {
152     FIXME("(%04x, %08lx, %p): stub.\n", hLine, dwAddressID, lpAddressStatus);
153     return 0;
154 }       
155
156 DWORD WINAPI lineGetAppPriority(LPCSTR lpszAppFilename, DWORD dwMediaMode, LPLINEEXTENSIONID const lpExtensionID, DWORD dwRequestMode, LPVARSTRING lpExtensionName, LPDWORD lpdwPriority)
157 {
158     FIXME("(%s, %08lx, %p, %08lx, %p, %p): stub.\n", lpszAppFilename, dwMediaMode, lpExtensionID, dwRequestMode, lpExtensionName, lpdwPriority);
159     return 0;
160 }       
161
162 DWORD WINAPI lineGetCallInfo(HCALL hCall, LPLINECALLINFO lpCallInfo)
163 {
164     FIXME("(%04x, %p): stub.\n", hCall, lpCallInfo);
165     return 0;
166 }
167
168 DWORD WINAPI lineGetCallStatus(HCALL hCall, LPLINECALLSTATUS lpCallStatus)
169 {
170     FIXME("(%04x, %p): stub.\n", hCall, lpCallStatus);
171     return 0;
172 }
173
174 DWORD WINAPI lineGetConfRelatedCalls(HCALL hCall, LPLINECALLLIST lpCallList)
175 {
176     FIXME("(%04x, %p): stub.\n", hCall, lpCallList);
177     return 0;
178 }       
179
180 DWORD WINAPI lineGetCountry(DWORD dwCountryID, DWORD dwAPIVersion, LPLINECOUNTRYLIST lpLineCountryList)
181 {
182     FIXME("(%08lx, %08lx, %p): stub.\n", dwCountryID, dwAPIVersion, lpLineCountryList);
183     return 0;
184 }
185
186 DWORD WINAPI lineGetDevCaps(HLINEAPP hLineApp, DWORD dwDeviceID, DWORD dwAPIVersion, DWORD dwExtVersion, LPLINEDEVCAPS lpLineDevCaps)
187 {
188     FIXME("(%04x, %08lx, %08lx, %08lx, %p): stub.\n", hLineApp, dwDeviceID, dwAPIVersion, dwExtVersion, lpLineDevCaps);
189     return 0;
190 }       
191
192 DWORD WINAPI lineGetDevConfig(DWORD dwDeviceID, LPVARSTRING lpDeviceConfig, LPCSTR lpszDeviceClass)
193 {
194     FIXME("(%08lx, %p, %s): stub.\n", dwDeviceID, lpDeviceConfig, lpszDeviceClass);
195     return 0;
196 }
197
198 DWORD WINAPI lineGetID(HLINE hLine, DWORD dwAddressID, HCALL hCall, DWORD dwSelect, LPVARSTRING lpDeviceID, LPCSTR lpszDeviceClass)
199 {
200     FIXME("(%04x, %08lx, %04x, %08lx, %p, %s): stub.\n", hLine, dwAddressID, hCall, dwSelect, lpDeviceID, lpszDeviceClass);
201     return 0;
202 }
203
204 DWORD WINAPI lineGetIcon(DWORD dwDeviceID, LPCSTR lpszDeviceClass, HICON *lphIcon)
205 {
206     FIXME("(%08lx, %s, %p): stub.\n", dwDeviceID, lpszDeviceClass, lphIcon);
207     return 0;
208 }       
209
210 DWORD WINAPI lineGetLineDevStatus(HLINE hLine, LPLINEDEVSTATUS lpLineDevStatus)
211 {
212     FIXME("(%04x, %p): stub.\n", hLine, lpLineDevStatus);
213     return 0;
214 }       
215
216 DWORD WINAPI lineGetNewCalls(HLINE hLine, DWORD dwAddressID, DWORD dwSelect, LPLINECALLLIST lpCallList)
217 {
218     FIXME("(%04x, %08lx, %08lx, %p): stub.\n", hLine, dwAddressID, dwSelect, lpCallList);
219     return 0;
220 }
221
222
223 DWORD WINAPI lineGetNumRings(HLINE hLine, DWORD dwAddressID, LPDWORD lpdwNumRings)
224 {
225     FIXME("(%04x, %08lx, %p): stub.\n", hLine, dwAddressID, lpdwNumRings);
226     return 0;
227 }
228
229 DWORD WINAPI lineGetProviderList(DWORD dwAPIVersion, LPLINEPROVIDERLIST lpProviderList)
230 {
231     FIXME("(%08lx, %p): stub.\n", dwAPIVersion, lpProviderList);
232     return 0;
233 }       
234
235 DWORD WINAPI lineGetRequest(HLINEAPP hLineApp, DWORD dwRequestMode, LPVOID lpRequestBuffer)
236 {
237     FIXME("%04x, %08lx, %p): stub.\n", hLineApp, dwRequestMode, lpRequestBuffer);
238     return 0;
239 }       
240
241 DWORD WINAPI lineGetStatusMessages(HLINE hLine, LPDWORD lpdwLineStatus, LPDWORD lpdwAddressStates)
242 {
243     FIXME("(%04x, %p, %p): stub.\n", hLine, lpdwLineStatus, lpdwAddressStates);
244     return 0;
245 }       
246
247 DWORD WINAPI lineGetTranslateCaps(HLINEAPP hLineApp, DWORD dwAPIVersion, LPLINETRANSLATECAPS lpTranslateCaps)
248 {
249     FIXME("(%04x, %08lx, %p): stub.\n", hLineApp, dwAPIVersion, lpTranslateCaps);
250     return 0;
251 }
252
253 DWORD WINAPI lineHandoff(HCALL hCall, LPCSTR lpszFileName, DWORD dwMediaMode)
254 {
255     FIXME("(%04x, %s, %08lx): stub.\n", hCall, lpszFileName, dwMediaMode);
256     return 0;
257 }       
258
259 DWORD WINAPI lineHold(HCALL hCall)
260 {
261     FIXME("(%04x): stub.\n", hCall);
262     return 1;
263 }       
264
265 DWORD WINAPI lineInitialize(
266   LPHLINEAPP lphLineApp,
267   HINSTANCE hInstance,
268   LINECALLBACK lpfnCallback,
269   LPCSTR lpszAppName,
270   LPDWORD lpdwNumDevs)
271 {
272     FIXME_(comm)("stub.\n");
273     return 0;
274 }
275
276 DWORD WINAPI lineMakeCall(HLINE hLine, LPHCALL lphCall, LPCSTR lpszDestAddress, DWORD dwCountryCode, LPLINECALLPARAMS lpCallParams)
277 {
278     FIXME("(%04x, %p, %s, %08lx, %p): stub.\n", hLine, lphCall, lpszDestAddress, dwCountryCode, lpCallParams);
279     return 1;
280 }
281
282 DWORD WINAPI lineMonitorDigits(HCALL hCall, DWORD dwDigitModes)
283 {
284     FIXME("(%04x, %08lx): stub.\n", hCall, dwDigitModes);
285     return 0;
286 }
287
288 DWORD WINAPI lineMonitorMedia(HCALL hCall, DWORD dwMediaModes)
289 {
290     FIXME("(%04x, %08lx): stub.\n", hCall, dwMediaModes);
291     return 0;
292 }       
293
294 DWORD WINAPI lineMonitorTones(HCALL hCall, LPLINEMONITORTONE lpToneList, DWORD dwNumEntries)
295 {
296     FIXME("(%04x, %p, %08lx): stub.\n", hCall, lpToneList, dwNumEntries);
297     return 0;
298 }       
299
300 DWORD WINAPI lineNegotiateAPIVersion(
301   HLINEAPP hLineApp,
302   DWORD dwDeviceID,
303   DWORD dwAPILowVersion,
304   DWORD dwAPIHighVersion,
305   LPDWORD lpdwAPIVersion,
306   LPLINEEXTENSIONID lpExtensionID
307 )
308 {
309     FIXME_(comm)("stub.\n");
310     *lpdwAPIVersion = dwAPIHighVersion;
311     return 0;
312 }
313
314 DWORD WINAPI lineNegotiateExtVersion(HLINEAPP hLineApp, DWORD dwDeviceID, DWORD dwAPIVersion, DWORD dwExtLowVersion, DWORD dwExtHighVersion, LPDWORD lpdwExtVersion)
315 {
316     FIXME("stub.\n");
317     return 0;
318 }
319
320 DWORD WINAPI lineOpen(HLINEAPP hLineApp, DWORD dwDeviceID, LPHLINE lphLine, DWORD dwAPIVersion, DWORD dwExtVersion, DWORD dwCallbackInstance, DWORD dwPrivileges, DWORD dwMediaModes, LPLINECALLPARAMS lpCallParams)
321 {
322     FIXME("stub.\n");
323     return 0;
324 }
325
326 DWORD WINAPI linePark(HCALL hCall, DWORD dwParkMode, LPCSTR lpszDirAddress, LPVARSTRING lpNonDirAddress)
327 {
328     FIXME("(%04x, %08lx, %s, %p): stub.\n", hCall, dwParkMode, lpszDirAddress, lpNonDirAddress);
329     return 1;
330 }       
331
332 DWORD WINAPI linePickup(HLINE hLine, DWORD dwAddressID, LPHCALL lphCall, LPCSTR lpszDestAddress, LPCSTR lpszGroupID)
333 {
334     FIXME("(%04x, %08lx, %p, %s, %s): stub.\n", hLine, dwAddressID, lphCall, lpszDestAddress, lpszGroupID);
335     return 1;
336 }       
337
338 DWORD WINAPI linePrepareAddToConference(HCALL hConfCall, LPHCALL lphConsultCall, LPLINECALLPARAMS lpCallParams)
339 {
340     FIXME("(%04x, %p, %p): stub.\n", hConfCall, lphConsultCall, lpCallParams);
341     return 1;
342 }       
343
344 /*************************************************************************
345  * lineRedirect [TAPI32.53]
346  * 
347  */
348 DWORD WINAPI lineRedirect(
349   HCALL hCall,
350   LPCSTR lpszDestAddress,
351   DWORD  dwCountryCode) {
352
353   FIXME_(comm)(": stub.\n");
354   return 1;
355 }
356
357 DWORD WINAPI lineRegisterRequestRecipient(HLINEAPP hLineApp, DWORD dwRegistrationInstance, DWORD dwRequestMode, DWORD dwEnable)
358 {
359     FIXME("(%04x, %08lx, %08lx, %08lx): stub.\n", hLineApp, dwRegistrationInstance, dwRequestMode, dwEnable);
360     return 1;
361 }
362
363 DWORD WINAPI lineReleaseUserUserInfo(HCALL hCall)
364 {
365     FIXME("(%04x): stub.\n", hCall);
366     return 1;
367 }       
368
369 DWORD WINAPI lineRemoveFromConference(HCALL hCall)
370 {
371     FIXME("(%04x): stub.\n", hCall);
372     return 1;
373 }
374
375 DWORD WINAPI lineRemoveProvider(DWORD dwPermanentProviderID, HWND hwndOwner)
376 {
377     FIXME("(%08lx, %04x): stub.\n", dwPermanentProviderID, hwndOwner);
378     return 1;
379 }       
380
381 DWORD WINAPI lineSecureCall(HCALL hCall)
382 {
383     FIXME("(%04x): stub.\n", hCall);
384     return 1;
385 }
386
387 DWORD WINAPI lineSendUserUserInfo(HCALL hCall, LPCSTR lpsUserUserInfo, DWORD dwSize)
388 {
389     FIXME("(%04x, %s, %08lx): stub.\n", hCall, lpsUserUserInfo, dwSize);
390     return 1;
391 }
392
393 DWORD WINAPI lineSetAppPriority(LPCSTR lpszAppFilename, DWORD dwMediaMode, LPLINEEXTENSIONID const lpExtensionID, DWORD dwRequestMode, LPCSTR lpszExtensionName, DWORD dwPriority)
394 {
395     FIXME("(%s, %08lx, %p, %08lx, %s, %08lx): stub.\n", lpszAppFilename, dwMediaMode, lpExtensionID, dwRequestMode, lpszExtensionName, dwPriority);
396     return 0;
397 }
398
399 DWORD WINAPI lineSetAppSpecific(HCALL hCall, DWORD dwAppSpecific)
400 {
401     FIXME("(%04x, %08lx): stub.\n", hCall, dwAppSpecific);
402     return 0;
403 }
404
405 DWORD WINAPI lineSetCallParams(HCALL hCall, DWORD dwBearerMode, DWORD dwMinRate, DWORD dwMaxRate, LPLINEDIALPARAMS lpDialParams)
406 {
407     FIXME("(%04x, %08lx, %08lx, %08lx, %p): stub.\n", hCall, dwBearerMode, dwMinRate, dwMaxRate, lpDialParams);
408     return 1;
409 }
410
411 DWORD WINAPI lineSetCallPrivilege(HCALL hCall, DWORD dwCallPrivilege)
412 {
413     FIXME("(%04x, %08lx): stub.\n", hCall, dwCallPrivilege);
414     return 0;
415 }       
416                 
417 DWORD WINAPI lineSetCurrentLocation(HLINEAPP hLineApp, DWORD dwLocation)
418 {
419     FIXME("(%04x, %08lx): stub.\n", hLineApp, dwLocation);
420     return 0;
421 }
422
423 DWORD WINAPI lineSetDevConfig(DWORD dwDeviceID, LPVOID lpDeviceConfig, DWORD dwSize, LPCSTR lpszDeviceClass)
424 {
425     FIXME("(%0lx, %p, %08lx, %s): stub.\n", dwDeviceID, lpDeviceConfig, dwSize, lpszDeviceClass);
426     return 0;
427 }
428
429 DWORD WINAPI lineSetMediaControl(
430 HLINE hLine,
431 DWORD dwAddressID,
432 HCALL hCall,
433 DWORD dwSelect,
434 LPLINEMEDIACONTROLDIGIT const lpDigitList,
435 DWORD dwDigitNumEntries,
436 LPLINEMEDIACONTROLMEDIA const lpMediaList,
437 DWORD dwMediaNumEntries,
438 LPLINEMEDIACONTROLTONE const lpToneList, 
439 DWORD dwToneNumEntries,
440 LPLINEMEDIACONTROLCALLSTATE const lpCallStateList,
441 DWORD dwCallStateNumEntries)
442 {
443     FIXME(": stub.\n");
444     return 0;
445 }
446
447 DWORD WINAPI lineSetMediaMode(HCALL hCall, DWORD dwMediaModes)
448 {
449     FIXME("(%04x, %08lx): stub.\n", hCall, dwMediaModes);
450     return 0;
451 }       
452
453 DWORD WINAPI lineSetNumRings(HLINE hLine, DWORD dwAddressID, DWORD dwNumRings)
454 {
455     FIXME("(%04x, %08lx, %08lx): stub.\n", hLine, dwAddressID, dwNumRings);
456     return 0;
457 }       
458                 
459 DWORD WINAPI lineSetStatusMessages(HLINE hLine, DWORD dwLineStates, DWORD dwAddressStates)
460 {
461     FIXME("(%04x, %08lx, %08lx): stub.\n", hLine, dwLineStates, dwAddressStates);
462     return 0;
463 }       
464                 
465 DWORD WINAPI lineSetTerminal(HLINE hLine, DWORD dwAddressID, HCALL hCall, DWORD dwSelect, DWORD dwTerminalModes, DWORD dwTerminalID, DWORD bEnable)
466 {
467     FIXME("(%04x, %08lx, %04x, %08lx, %08lx, %08lx, %08lx): stub.\n", hLine, dwAddressID, hCall, dwSelect, dwTerminalModes, dwTerminalID, bEnable);
468     return 1;
469 }       
470
471 DWORD WINAPI lineSetTollList(HLINEAPP hLineApp, DWORD dwDeviceID, LPCSTR lpszAddressIn, DWORD dwTollListOption)
472 {
473     FIXME("(%04x, %08lx, %s, %08lx): stub.\n", hLineApp, dwDeviceID, lpszAddressIn, dwTollListOption);
474     return 0;
475 }       
476                 
477 DWORD WINAPI lineSetupConference(HCALL hCall, HLINE hLine, LPHCALL lphConfCall, LPHCALL lphConsultCall, DWORD dwNumParties, LPLINECALLPARAMS lpCallParams)
478 {
479     FIXME("(%04x, %04x, %p, %p, %08lx, %p): stub.\n", hCall, hLine, lphConfCall, lphConsultCall, dwNumParties, lpCallParams);
480     return 1;
481 }
482
483 DWORD WINAPI lineSetupTransfer(HCALL hCall, LPHCALL lphConsultCall, LPLINECALLPARAMS lpCallParams)
484 {
485     FIXME("(%04x, %p, %p): stub.\n", hCall, lphConsultCall, lpCallParams);
486     return 1;
487 }       
488
489 DWORD WINAPI lineShutdown(HLINEAPP hLineApp)
490 {
491     FIXME("(%04x): stub.\n", hLineApp);
492     return 0;
493 }
494
495 DWORD WINAPI lineSwapHold(HCALL hActiveCall, HCALL hHeldCall)
496 {
497     FIXME("(active: %04x, held: %04x): stub.\n", hActiveCall, hHeldCall);
498     return 1;
499 }
500
501 DWORD WINAPI lineTranslateAddress(HLINEAPP hLineApp, DWORD dwDeviceID, DWORD dwAPIVersion, LPCSTR lpszAddressIn, DWORD dwCard, DWORD dwTranslateOptions, LPLINETRANSLATEOUTPUT lpTranslateOutput)
502 {
503     FIXME("(%04x, %08lx, %08lx, %s, %08lx, %08lx, %p): stub.\n", hLineApp, dwDeviceID, dwAPIVersion, lpszAddressIn, dwCard, dwTranslateOptions, lpTranslateOutput);
504     return 0;
505 }
506
507 DWORD WINAPI lineTranslateDialog(HLINEAPP hLineApp, DWORD dwDeviceID, DWORD dwAPIVersion, HWND hwndOwner, LPCSTR lpszAddressIn)
508 {
509     FIXME("(%04x, %08lx, %08lx, %04x, %s): stub.\n", hLineApp, dwDeviceID, dwAPIVersion, hwndOwner, lpszAddressIn);
510     return 0;
511 }
512
513 DWORD WINAPI lineUncompleteCall(HLINE hLine, DWORD dwCompletionID)
514 {
515     FIXME("(%04x, %08lx): stub.\n", hLine, dwCompletionID);
516     return 1;
517 }
518
519 DWORD WINAPI lineUnhold(HCALL hCall)
520 {
521     FIXME("(%04x): stub.\n", hCall);
522     return 1;
523 }
524
525 DWORD WINAPI lineUnpark(HLINE hLine, DWORD dwAddressID, LPHCALL lphCall, LPCSTR lpszDestAddress)
526 {
527     FIXME("(%04x, %08lx, %p, %s): stub.\n", hLine, dwAddressID, lphCall, lpszDestAddress);
528     return 1;
529 }