Added memicmpW.
[wine.git] / dlls / tapi32 / line.c
blobf97b65ba409990656af690dffddc58cf0abda01c
1 /*
2 * TAPI32 line services
4 * Copyright 1999 Andreas Mohr
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.
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.
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 #include <string.h>
22 #include <stdlib.h>
23 #include <stdarg.h>
24 #include <stdio.h>
25 #include "windef.h"
26 #include "winbase.h"
27 #include "winreg.h"
28 #include "winerror.h"
29 #include "tapi.h"
30 #include "wine/debug.h"
32 WINE_DEFAULT_DEBUG_CHANNEL(tapi);
34 /***********************************************************************
35 * lineAccept (TAPI32.@)
37 DWORD WINAPI lineAccept(HCALL hCall, LPCSTR lpsUserUserInfo, DWORD dwSize)
39 FIXME("(%p, %s, %ld): stub.\n", hCall, lpsUserUserInfo, dwSize);
40 return 1;
43 /***********************************************************************
44 * lineAddProvider (TAPI32.@)
46 DWORD WINAPI lineAddProvider(LPCSTR lpszProviderName, HWND hwndOwner, LPDWORD lpdwPermanentProviderID)
48 FIXME("(%s, %p, %p): stub.\n", lpszProviderName, hwndOwner, lpdwPermanentProviderID);
49 return 1;
52 /***********************************************************************
53 * lineAddToConference (TAPI32.@)
55 DWORD WINAPI lineAddToConference(HCALL hConfCall, HCALL hConsultCall)
57 FIXME("(%p, %p): stub.\n", hConfCall, hConsultCall);
58 return 1;
61 /***********************************************************************
62 * lineAnswer (TAPI32.@)
64 DWORD WINAPI lineAnswer(HCALL hCall, LPCSTR lpsUserUserInfo, DWORD dwSize)
66 FIXME("(%p, %s, %ld): stub.\n", hCall, lpsUserUserInfo, dwSize);
67 return 1;
70 /***********************************************************************
71 * lineBlindTransfer (TAPI32.@)
73 DWORD WINAPI lineBlindTransfer(HCALL hCall, LPCSTR lpszDestAddress, DWORD dwCountryCode)
75 FIXME("(%p, %s, %08lx): stub.\n", hCall, lpszDestAddress, dwCountryCode);
76 return 1;
79 /***********************************************************************
80 * lineClose (TAPI32.@)
82 DWORD WINAPI lineClose(HLINE hLine)
84 FIXME("(%p): stub.\n", hLine);
85 return 0;
88 /***********************************************************************
89 * lineCompleteCall (TAPI32.@)
91 DWORD WINAPI lineCompleteCall(HCALL hCall, LPDWORD lpdwCompletionID, DWORD dwCompletionMode, DWORD dwMessageID)
93 FIXME("(%p, %p, %08lx, %08lx): stub.\n", hCall, lpdwCompletionID, dwCompletionMode, dwMessageID);
94 return 1;
97 /***********************************************************************
98 * lineCompleteTransfer (TAPI32.@)
100 DWORD WINAPI lineCompleteTransfer(HCALL hCall, HCALL hConsultCall, LPHCALL lphConfCall, DWORD dwTransferMode)
102 FIXME("(%p, %p, %p, %08lx): stub.\n", hCall, hConsultCall, lphConfCall, dwTransferMode);
103 return 1;
106 /***********************************************************************
107 * lineConfigDialog (TAPI32.@)
109 DWORD WINAPI lineConfigDialog(DWORD dwDeviceID, HWND hwndOwner, LPCSTR lpszDeviceClass)
111 FIXME("(%08lx, %p, %s): stub.\n", dwDeviceID, hwndOwner, lpszDeviceClass);
112 return 0;
115 /***********************************************************************
116 * lineConfigDialogEdit (TAPI32.@)
118 DWORD WINAPI lineConfigDialogEdit(DWORD dwDeviceID, HWND hwndOwner, LPCSTR lpszDeviceClass, LPVOID const lpDeviceConfigIn, DWORD dwSize, LPVARSTRING lpDeviceConfigOut)
120 FIXME("stub.\n");
121 return 0;
124 /***********************************************************************
125 * lineConfigProvider (TAPI32.@)
127 DWORD WINAPI lineConfigProvider(HWND hwndOwner, DWORD dwPermanentProviderID)
129 FIXME("(%p, %08lx): stub.\n", hwndOwner, dwPermanentProviderID);
130 return 0;
133 /***********************************************************************
134 * lineDeallocateCall (TAPI32.@)
136 DWORD WINAPI lineDeallocateCall(HCALL hCall)
138 FIXME("(%p): stub.\n", hCall);
139 return 0;
142 /***********************************************************************
143 * lineDevSpecific (TAPI32.@)
145 DWORD WINAPI lineDevSpecific(HLINE hLine, DWORD dwAddressId, HCALL hCall, LPVOID lpParams, DWORD dwSize)
147 FIXME("(%p, %08lx, %p, %p, %ld): stub.\n", hLine, dwAddressId, hCall, lpParams, dwSize);
148 return 1;
151 /***********************************************************************
152 * lineDevSpecificFeature (TAPI32.@)
154 DWORD WINAPI lineDevSpecificFeature(HLINE hLine, DWORD dwFeature, LPVOID lpParams, DWORD dwSize)
156 FIXME("(%p, %08lx, %p, %ld): stub.\n", hLine, dwFeature, lpParams, dwSize);
157 return 1;
160 /***********************************************************************
161 * lineDial (TAPI32.@)
163 DWORD WINAPI lineDial(HCALL hCall, LPCSTR lpszDestAddress, DWORD dwCountryCode)
165 FIXME("(%p, %s, %08lx): stub.\n", hCall, lpszDestAddress, dwCountryCode);
166 return 1;
169 /***********************************************************************
170 * lineDrop (TAPI32.@)
172 DWORD WINAPI lineDrop(HCALL hCall, LPCSTR lpsUserUserInfo, DWORD dwSize)
174 FIXME("(%p, %s, %08lx): stub.\n", hCall, lpsUserUserInfo, dwSize);
175 return 1;
178 /***********************************************************************
179 * lineForward (TAPI32.@)
181 DWORD WINAPI lineForward(HLINE hLine, DWORD bAllAddress, DWORD dwAdressID, LPLINEFORWARDLIST lpForwardList, DWORD dwNumRingsNoAnswer, LPHCALL lphConsultCall, LPLINECALLPARAMS lpCallParams)
183 FIXME("stub.\n");
184 return 1;
187 /***********************************************************************
188 * lineGatherDigits (TAPI32.@)
190 DWORD WINAPI lineGatherDigits(HCALL hCall, DWORD dwDigitModes, LPSTR lpsDigits, DWORD dwNumDigits, LPCSTR lpszTerminationDigits, DWORD dwFirstDigitTimeout, DWORD dwInterDigitTimeout)
192 FIXME("stub.\n");
193 return 0;
196 /***********************************************************************
197 * lineGenerateDigits (TAPI32.@)
199 DWORD WINAPI lineGenerateDigits(HCALL hCall, DWORD dwDigitModes, LPCSTR lpszDigits, DWORD dwDuration)
201 FIXME("(%p, %08lx, %s, %ld): stub.\n", hCall, dwDigitModes, lpszDigits, dwDuration);
202 return 0;
205 /***********************************************************************
206 * lineGenerateTone (TAPI32.@)
208 DWORD WINAPI lineGenerateTone(HCALL hCall, DWORD dwToneMode, DWORD dwDuration, DWORD dwNumTones, LPLINEGENERATETONE lpTones)
210 FIXME("(%p, %08lx, %ld, %ld, %p): stub.\n", hCall, dwToneMode, dwDuration, dwNumTones, lpTones);
211 return 0;
214 /***********************************************************************
215 * lineGetAddressCaps (TAPI32.@)
217 DWORD WINAPI lineGetAddressCaps(HLINEAPP hLineApp, DWORD dwDeviceID, DWORD dwAddressID, DWORD dwAPIVersion, DWORD dwExtVersion, LPLINEADDRESSCAPS lpAddressCaps)
219 FIXME("(%p, %08lx, %08lx, %08lx, %08lx, %p): stub.\n", hLineApp, dwDeviceID, dwAddressID, dwAPIVersion, dwExtVersion, lpAddressCaps);
220 return 0;
223 /***********************************************************************
224 * lineGetAddressID (TAPI32.@)
226 DWORD WINAPI lineGetAddressID(HLINE hLine, LPDWORD lpdwAddressID, DWORD dwAddressMode, LPCSTR lpsAddress, DWORD dwSize)
228 FIXME("%p, %p, %08lx, %s, %ld): stub.\n", hLine, lpdwAddressID, dwAddressMode, lpsAddress, dwSize);
229 return 0;
232 /***********************************************************************
233 * lineGetAddressStatus (TAPI32.@)
235 DWORD WINAPI lineGetAddressStatus(HLINE hLine, DWORD dwAddressID, LPLINEADDRESSSTATUS lpAddressStatus)
237 FIXME("(%p, %08lx, %p): stub.\n", hLine, dwAddressID, lpAddressStatus);
238 return 0;
241 /***********************************************************************
242 * lineGetAppPriority (TAPI32.@)
244 DWORD WINAPI lineGetAppPriority(LPCSTR lpszAppFilename, DWORD dwMediaMode, LPLINEEXTENSIONID const lpExtensionID, DWORD dwRequestMode, LPVARSTRING lpExtensionName, LPDWORD lpdwPriority)
246 FIXME("(%s, %08lx, %p, %08lx, %p, %p): stub.\n", lpszAppFilename, dwMediaMode, lpExtensionID, dwRequestMode, lpExtensionName, lpdwPriority);
247 return 0;
250 /***********************************************************************
251 * lineGetCallInfo (TAPI32.@)
253 DWORD WINAPI lineGetCallInfo(HCALL hCall, LPLINECALLINFO lpCallInfo)
255 FIXME("(%p, %p): stub.\n", hCall, lpCallInfo);
256 return 0;
259 /***********************************************************************
260 * lineGetCallStatus (TAPI32.@)
262 DWORD WINAPI lineGetCallStatus(HCALL hCall, LPLINECALLSTATUS lpCallStatus)
264 FIXME("(%p, %p): stub.\n", hCall, lpCallStatus);
265 return 0;
268 /***********************************************************************
269 * lineGetConfRelatedCalls (TAPI32.@)
271 DWORD WINAPI lineGetConfRelatedCalls(HCALL hCall, LPLINECALLLIST lpCallList)
273 FIXME("(%p, %p): stub.\n", hCall, lpCallList);
274 return 0;
277 typedef struct tagTAPI_CountryInfo
279 DWORD dwCountryID;
280 DWORD dwCountryCode;
281 LPSTR lpCountryName;
282 LPSTR lpSameAreaRule;
283 LPSTR lpLongDistanceRule;
284 LPSTR lpInternationalRule;
285 } TAPI_CountryInfo;
287 /***********************************************************************
288 * lineGetCountry (TAPI32.@)
290 DWORD WINAPI lineGetCountry(DWORD dwCountryID, DWORD dwAPIVersion, LPLINECOUNTRYLIST lpLineCountryList)
292 DWORD dwAvailSize, dwOffset, i, num_countries, max_subkey_len;
293 LPLINECOUNTRYENTRY lpLCE;
294 HKEY hkey;
295 char *subkey_name;
297 if(!lpLineCountryList) {
298 TRACE("(%08lx, %08lx, %p): stub. Returning LINEERR_INVALPOINTER\n",
299 dwCountryID, dwAPIVersion, lpLineCountryList);
300 return LINEERR_INVALPOINTER;
303 TRACE("(%08lx, %08lx, %p(%ld)): stub.\n",
304 dwCountryID, dwAPIVersion, lpLineCountryList,
305 lpLineCountryList->dwTotalSize);
307 if(RegOpenKeyA(HKEY_LOCAL_MACHINE,
308 "Software\\Microsoft\\Windows\\CurrentVersion\\Telephony\\Country List",
309 &hkey) != ERROR_SUCCESS)
310 return LINEERR_INIFILECORRUPT;
313 dwAvailSize = lpLineCountryList->dwTotalSize;
314 dwOffset = sizeof (LINECOUNTRYLIST);
316 if(dwAvailSize<dwOffset)
317 return LINEERR_STRUCTURETOOSMALL;
319 memset(lpLineCountryList, 0, dwAvailSize);
321 lpLineCountryList->dwTotalSize = dwAvailSize;
322 lpLineCountryList->dwUsedSize = dwOffset;
323 lpLineCountryList->dwNumCountries = 0;
324 lpLineCountryList->dwCountryListSize = 0;
325 lpLineCountryList->dwCountryListOffset = dwOffset;
327 lpLCE = (LPLINECOUNTRYENTRY)(&lpLineCountryList[1]);
329 if(RegQueryInfoKeyA(hkey, NULL, NULL, NULL, &num_countries, &max_subkey_len,
330 NULL, NULL, NULL, NULL, NULL, NULL) != ERROR_SUCCESS) {
331 RegCloseKey(hkey);
332 return LINEERR_STRUCTURETOOSMALL;
335 if(dwCountryID)
336 dwOffset = sizeof (LINECOUNTRYENTRY);
337 else
338 dwOffset += num_countries * sizeof (LINECOUNTRYENTRY);
340 max_subkey_len++;
341 subkey_name = HeapAlloc(GetProcessHeap(), 0, max_subkey_len);
342 for(i = 0; i < num_countries; i++)
344 DWORD len, size, size_int, size_long, size_name, size_same;
345 HKEY hsubkey;
347 if(RegEnumKeyA(hkey, i, subkey_name, max_subkey_len) !=
348 ERROR_SUCCESS)
349 continue;
351 if(dwCountryID && (atoi(subkey_name) != dwCountryID))
352 continue;
354 if(RegOpenKeyA(hkey, subkey_name, &hsubkey) != ERROR_SUCCESS)
355 continue;
357 RegQueryValueExA(hsubkey, "InternationalRule", NULL, NULL,
358 NULL, &size_int);
359 len = size_int;
361 RegQueryValueExA(hsubkey, "LongDistanceRule", NULL, NULL,
362 NULL, &size_long);
363 len += size_long;
365 RegQueryValueExA(hsubkey, "Name", NULL, NULL,
366 NULL, &size_name);
367 len += size_name;
369 RegQueryValueExA(hsubkey, "SameAreaRule", NULL, NULL,
370 NULL, &size_same);
371 len += size_same;
373 if(dwAvailSize < (dwOffset+len))
375 dwOffset += len;
376 RegCloseKey(hsubkey);
377 if(dwCountryID)
378 break;
379 continue;
382 lpLineCountryList->dwNumCountries++;
383 lpLineCountryList->dwCountryListSize += sizeof (LINECOUNTRYENTRY);
384 lpLineCountryList->dwUsedSize += len + sizeof (LINECOUNTRYENTRY);
386 if(dwCountryID)
387 i = 0;
389 lpLCE[i].dwCountryID = atoi(subkey_name);
390 size = sizeof(DWORD);
391 RegQueryValueExA(hsubkey, "CountryCode", NULL, NULL,
392 (BYTE*)&lpLCE[i].dwCountryCode, &size);
394 lpLCE[i].dwNextCountryID = 0;
396 if(i > 0)
397 lpLCE[i-1].dwNextCountryID = lpLCE[i].dwCountryID;
399 /* add country name */
400 lpLCE[i].dwCountryNameSize = size_name;
401 lpLCE[i].dwCountryNameOffset = dwOffset;
402 RegQueryValueExA(hsubkey, "Name", NULL, NULL,
403 ((LPSTR)lpLineCountryList)+dwOffset,
404 &size_name);
405 dwOffset += size_name;
407 /* add Same Area Rule */
408 lpLCE[i].dwSameAreaRuleSize = size_same;
409 lpLCE[i].dwSameAreaRuleOffset = dwOffset;
410 RegQueryValueExA(hsubkey, "SameAreaRule", NULL, NULL,
411 ((LPSTR)lpLineCountryList)+dwOffset,
412 &size_same);
413 dwOffset += size_same;
415 /* add Long Distance Rule */
416 lpLCE[i].dwLongDistanceRuleSize = size_long;
417 lpLCE[i].dwLongDistanceRuleOffset = dwOffset;
418 RegQueryValueExA(hsubkey, "LongDistanceRule", NULL, NULL,
419 ((LPSTR)lpLineCountryList)+dwOffset,
420 &size_long);
421 dwOffset += size_long;
423 /* add Long Distance Rule */
424 lpLCE[i].dwInternationalRuleSize = size_int;
425 lpLCE[i].dwInternationalRuleOffset = dwOffset;
426 RegQueryValueExA(hsubkey, "InternationalRule", NULL, NULL,
427 ((LPSTR)lpLineCountryList)+dwOffset,
428 &size_int);
429 dwOffset += size_int;
430 RegCloseKey(hsubkey);
432 TRACE("Added country %s at %p\n", (LPSTR)lpLineCountryList + lpLCE[i].dwCountryNameOffset,
433 &lpLCE[i]);
435 if(dwCountryID) break;
438 lpLineCountryList->dwNeededSize = dwOffset;
440 TRACE("%ld available %ld required\n", dwAvailSize, dwOffset);
442 HeapFree(GetProcessHeap(), 0, subkey_name);
443 RegCloseKey(hkey);
445 return 0;
448 /***********************************************************************
449 * lineGetDevCaps (TAPI32.@)
451 DWORD WINAPI lineGetDevCaps(HLINEAPP hLineApp, DWORD dwDeviceID, DWORD dwAPIVersion, DWORD dwExtVersion, LPLINEDEVCAPS lpLineDevCaps)
453 FIXME("(%p, %08lx, %08lx, %08lx, %p): stub.\n", hLineApp, dwDeviceID, dwAPIVersion, dwExtVersion, lpLineDevCaps);
454 return 0;
457 /***********************************************************************
458 * lineGetDevConfig (TAPI32.@)
460 DWORD WINAPI lineGetDevConfig(DWORD dwDeviceID, LPVARSTRING lpDeviceConfig, LPCSTR lpszDeviceClass)
462 FIXME("(%08lx, %p, %s): stub.\n", dwDeviceID, lpDeviceConfig, lpszDeviceClass);
463 return 0;
466 /***********************************************************************
467 * lineGetID (TAPI32.@)
469 DWORD WINAPI lineGetID(HLINE hLine, DWORD dwAddressID, HCALL hCall, DWORD dwSelect, LPVARSTRING lpDeviceID, LPCSTR lpszDeviceClass)
471 FIXME("(%p, %08lx, %p, %08lx, %p, %s): stub.\n", hLine, dwAddressID, hCall, dwSelect, lpDeviceID, lpszDeviceClass);
472 return 0;
475 /***********************************************************************
476 * lineGetIcon (TAPI32.@)
478 DWORD WINAPI lineGetIcon(DWORD dwDeviceID, LPCSTR lpszDeviceClass, HICON *lphIcon)
480 FIXME("(%08lx, %s, %p): stub.\n", dwDeviceID, lpszDeviceClass, lphIcon);
481 return 0;
484 /***********************************************************************
485 * lineGetLineDevStatus (TAPI32.@)
487 DWORD WINAPI lineGetLineDevStatus(HLINE hLine, LPLINEDEVSTATUS lpLineDevStatus)
489 FIXME("(%p, %p): stub.\n", hLine, lpLineDevStatus);
490 return 0;
493 /***********************************************************************
494 * lineGetNewCalls (TAPI32.@)
496 DWORD WINAPI lineGetNewCalls(HLINE hLine, DWORD dwAddressID, DWORD dwSelect, LPLINECALLLIST lpCallList)
498 FIXME("(%p, %08lx, %08lx, %p): stub.\n", hLine, dwAddressID, dwSelect, lpCallList);
499 return 0;
502 /***********************************************************************
503 * lineGetNumRings (TAPI32.@)
505 DWORD WINAPI lineGetNumRings(HLINE hLine, DWORD dwAddressID, LPDWORD lpdwNumRings)
507 FIXME("(%p, %08lx, %p): stub.\n", hLine, dwAddressID, lpdwNumRings);
508 return 0;
511 /***********************************************************************
512 * lineGetProviderList (TAPI32.@)
514 DWORD WINAPI lineGetProviderList(DWORD dwAPIVersion, LPLINEPROVIDERLIST lpProviderList)
516 FIXME("(%08lx, %p): stub.\n", dwAPIVersion, lpProviderList);
517 return 0;
520 /***********************************************************************
521 * lineGetRequest (TAPI32.@)
523 DWORD WINAPI lineGetRequest(HLINEAPP hLineApp, DWORD dwRequestMode, LPVOID lpRequestBuffer)
525 FIXME("%p, %08lx, %p): stub.\n", hLineApp, dwRequestMode, lpRequestBuffer);
526 return 0;
529 /***********************************************************************
530 * lineGetStatusMessages (TAPI32.@)
532 DWORD WINAPI lineGetStatusMessages(HLINE hLine, LPDWORD lpdwLineStatus, LPDWORD lpdwAddressStates)
534 FIXME("(%p, %p, %p): stub.\n", hLine, lpdwLineStatus, lpdwAddressStates);
535 return 0;
538 /***********************************************************************
539 * lineGetTranslateCaps (TAPI32.@)
541 DWORD WINAPI lineGetTranslateCaps(HLINEAPP hLineApp, DWORD dwAPIVersion, LPLINETRANSLATECAPS lpTranslateCaps)
543 FIXME("(%p, %08lx, %p): stub.\n", hLineApp, dwAPIVersion, lpTranslateCaps);
544 if(lpTranslateCaps->dwTotalSize >= sizeof(DWORD))
545 memset(&lpTranslateCaps->dwNeededSize, 0, lpTranslateCaps->dwTotalSize - sizeof(DWORD));
546 return 0;
549 /***********************************************************************
550 * lineHandoff (TAPI32.@)
552 DWORD WINAPI lineHandoff(HCALL hCall, LPCSTR lpszFileName, DWORD dwMediaMode)
554 FIXME("(%p, %s, %08lx): stub.\n", hCall, lpszFileName, dwMediaMode);
555 return 0;
558 /***********************************************************************
559 * lineHold (TAPI32.@)
561 DWORD WINAPI lineHold(HCALL hCall)
563 FIXME("(%p): stub.\n", hCall);
564 return 1;
567 /***********************************************************************
568 * lineInitialize (TAPI32.@)
570 DWORD WINAPI lineInitialize(
571 LPHLINEAPP lphLineApp,
572 HINSTANCE hInstance,
573 LINECALLBACK lpfnCallback,
574 LPCSTR lpszAppName,
575 LPDWORD lpdwNumDevs)
577 FIXME("(%p, %p, %p, %s, %p): stub.\n", lphLineApp, hInstance,
578 lpfnCallback, debugstr_a(lpszAppName), lpdwNumDevs);
579 return 0;
582 /***********************************************************************
583 * lineMakeCall (TAPI32.@)
585 DWORD WINAPI lineMakeCall(HLINE hLine, LPHCALL lphCall, LPCSTR lpszDestAddress, DWORD dwCountryCode, LPLINECALLPARAMS lpCallParams)
587 FIXME("(%p, %p, %s, %08lx, %p): stub.\n", hLine, lphCall, lpszDestAddress, dwCountryCode, lpCallParams);
588 return 1;
591 /***********************************************************************
592 * lineMonitorDigits (TAPI32.@)
594 DWORD WINAPI lineMonitorDigits(HCALL hCall, DWORD dwDigitModes)
596 FIXME("(%p, %08lx): stub.\n", hCall, dwDigitModes);
597 return 0;
600 /***********************************************************************
601 * lineMonitorMedia (TAPI32.@)
603 DWORD WINAPI lineMonitorMedia(HCALL hCall, DWORD dwMediaModes)
605 FIXME("(%p, %08lx): stub.\n", hCall, dwMediaModes);
606 return 0;
609 /***********************************************************************
610 * lineMonitorTones (TAPI32.@)
612 DWORD WINAPI lineMonitorTones(HCALL hCall, LPLINEMONITORTONE lpToneList, DWORD dwNumEntries)
614 FIXME("(%p, %p, %08lx): stub.\n", hCall, lpToneList, dwNumEntries);
615 return 0;
618 /***********************************************************************
619 * lineNegotiateAPIVersion (TAPI32.@)
621 DWORD WINAPI lineNegotiateAPIVersion(
622 HLINEAPP hLineApp,
623 DWORD dwDeviceID,
624 DWORD dwAPILowVersion,
625 DWORD dwAPIHighVersion,
626 LPDWORD lpdwAPIVersion,
627 LPLINEEXTENSIONID lpExtensionID
630 FIXME("(%p, %ld, %ld, %ld, %p, %p): stub.\n", hLineApp, dwDeviceID,
631 dwAPILowVersion, dwAPIHighVersion, lpdwAPIVersion, lpExtensionID);
632 *lpdwAPIVersion = dwAPIHighVersion;
633 return 0;
636 /***********************************************************************
637 * lineNegotiateExtVersion (TAPI32.@)
639 DWORD WINAPI lineNegotiateExtVersion(HLINEAPP hLineApp, DWORD dwDeviceID, DWORD dwAPIVersion, DWORD dwExtLowVersion, DWORD dwExtHighVersion, LPDWORD lpdwExtVersion)
641 FIXME("stub.\n");
642 return 0;
645 /***********************************************************************
646 * lineOpen (TAPI32.@)
648 DWORD WINAPI lineOpen(HLINEAPP hLineApp, DWORD dwDeviceID, LPHLINE lphLine, DWORD dwAPIVersion, DWORD dwExtVersion, DWORD dwCallbackInstance, DWORD dwPrivileges, DWORD dwMediaModes, LPLINECALLPARAMS lpCallParams)
650 FIXME("stub.\n");
651 return 0;
654 /***********************************************************************
655 * linePark (TAPI32.@)
657 DWORD WINAPI linePark(HCALL hCall, DWORD dwParkMode, LPCSTR lpszDirAddress, LPVARSTRING lpNonDirAddress)
659 FIXME("(%p, %08lx, %s, %p): stub.\n", hCall, dwParkMode, lpszDirAddress, lpNonDirAddress);
660 return 1;
663 /***********************************************************************
664 * linePickup (TAPI32.@)
666 DWORD WINAPI linePickup(HLINE hLine, DWORD dwAddressID, LPHCALL lphCall, LPCSTR lpszDestAddress, LPCSTR lpszGroupID)
668 FIXME("(%p, %08lx, %p, %s, %s): stub.\n", hLine, dwAddressID, lphCall, lpszDestAddress, lpszGroupID);
669 return 1;
672 /***********************************************************************
673 * linePrepareAddToConference (TAPI32.@)
675 DWORD WINAPI linePrepareAddToConference(HCALL hConfCall, LPHCALL lphConsultCall, LPLINECALLPARAMS lpCallParams)
677 FIXME("(%p, %p, %p): stub.\n", hConfCall, lphConsultCall, lpCallParams);
678 return 1;
681 /***********************************************************************
682 * lineRedirect (TAPI32.@)
684 DWORD WINAPI lineRedirect(
685 HCALL hCall,
686 LPCSTR lpszDestAddress,
687 DWORD dwCountryCode) {
689 FIXME(": stub.\n");
690 return 1;
693 /***********************************************************************
694 * lineRegisterRequestRecipient (TAPI32.@)
696 DWORD WINAPI lineRegisterRequestRecipient(HLINEAPP hLineApp, DWORD dwRegistrationInstance, DWORD dwRequestMode, DWORD dwEnable)
698 FIXME("(%p, %08lx, %08lx, %08lx): stub.\n", hLineApp, dwRegistrationInstance, dwRequestMode, dwEnable);
699 return 1;
702 /***********************************************************************
703 * lineReleaseUserUserInfo (TAPI32.@)
705 DWORD WINAPI lineReleaseUserUserInfo(HCALL hCall)
707 FIXME("(%p): stub.\n", hCall);
708 return 1;
711 /***********************************************************************
712 * lineRemoveFromConference (TAPI32.@)
714 DWORD WINAPI lineRemoveFromConference(HCALL hCall)
716 FIXME("(%p): stub.\n", hCall);
717 return 1;
720 /***********************************************************************
721 * lineRemoveProvider (TAPI32.@)
723 DWORD WINAPI lineRemoveProvider(DWORD dwPermanentProviderID, HWND hwndOwner)
725 FIXME("(%08lx, %p): stub.\n", dwPermanentProviderID, hwndOwner);
726 return 1;
729 /***********************************************************************
730 * lineSecureCall (TAPI32.@)
732 DWORD WINAPI lineSecureCall(HCALL hCall)
734 FIXME("(%p): stub.\n", hCall);
735 return 1;
738 /***********************************************************************
739 * lineSendUserUserInfo (TAPI32.@)
741 DWORD WINAPI lineSendUserUserInfo(HCALL hCall, LPCSTR lpsUserUserInfo, DWORD dwSize)
743 FIXME("(%p, %s, %08lx): stub.\n", hCall, lpsUserUserInfo, dwSize);
744 return 1;
747 /***********************************************************************
748 * lineSetAppPriority (TAPI32.@)
750 DWORD WINAPI lineSetAppPriority(LPCSTR lpszAppFilename, DWORD dwMediaMode, LPLINEEXTENSIONID const lpExtensionID, DWORD dwRequestMode, LPCSTR lpszExtensionName, DWORD dwPriority)
752 FIXME("(%s, %08lx, %p, %08lx, %s, %08lx): stub.\n", lpszAppFilename, dwMediaMode, lpExtensionID, dwRequestMode, lpszExtensionName, dwPriority);
753 return 0;
756 /***********************************************************************
757 * lineSetAppSpecific (TAPI32.@)
759 DWORD WINAPI lineSetAppSpecific(HCALL hCall, DWORD dwAppSpecific)
761 FIXME("(%p, %08lx): stub.\n", hCall, dwAppSpecific);
762 return 0;
765 /***********************************************************************
766 * lineSetCallParams (TAPI32.@)
768 DWORD WINAPI lineSetCallParams(HCALL hCall, DWORD dwBearerMode, DWORD dwMinRate, DWORD dwMaxRate, LPLINEDIALPARAMS lpDialParams)
770 FIXME("(%p, %08lx, %08lx, %08lx, %p): stub.\n", hCall, dwBearerMode, dwMinRate, dwMaxRate, lpDialParams);
771 return 1;
774 /***********************************************************************
775 * lineSetCallPrivilege (TAPI32.@)
777 DWORD WINAPI lineSetCallPrivilege(HCALL hCall, DWORD dwCallPrivilege)
779 FIXME("(%p, %08lx): stub.\n", hCall, dwCallPrivilege);
780 return 0;
783 /***********************************************************************
784 * lineSetCurrentLocation (TAPI32.@)
786 DWORD WINAPI lineSetCurrentLocation(HLINEAPP hLineApp, DWORD dwLocation)
788 FIXME("(%p, %08lx): stub.\n", hLineApp, dwLocation);
789 return 0;
792 /***********************************************************************
793 * lineSetDevConfig (TAPI32.@)
795 DWORD WINAPI lineSetDevConfig(DWORD dwDeviceID, LPVOID lpDeviceConfig, DWORD dwSize, LPCSTR lpszDeviceClass)
797 FIXME("(%08lx, %p, %08lx, %s): stub.\n", dwDeviceID, lpDeviceConfig, dwSize, lpszDeviceClass);
798 return 0;
801 /***********************************************************************
802 * lineSetMediaControl (TAPI32.@)
804 DWORD WINAPI lineSetMediaControl(
805 HLINE hLine,
806 DWORD dwAddressID,
807 HCALL hCall,
808 DWORD dwSelect,
809 LPLINEMEDIACONTROLDIGIT const lpDigitList,
810 DWORD dwDigitNumEntries,
811 LPLINEMEDIACONTROLMEDIA const lpMediaList,
812 DWORD dwMediaNumEntries,
813 LPLINEMEDIACONTROLTONE const lpToneList,
814 DWORD dwToneNumEntries,
815 LPLINEMEDIACONTROLCALLSTATE const lpCallStateList,
816 DWORD dwCallStateNumEntries)
818 FIXME(": stub.\n");
819 return 0;
822 /***********************************************************************
823 * lineSetMediaMode (TAPI32.@)
825 DWORD WINAPI lineSetMediaMode(HCALL hCall, DWORD dwMediaModes)
827 FIXME("(%p, %08lx): stub.\n", hCall, dwMediaModes);
828 return 0;
831 /***********************************************************************
832 * lineSetNumRings (TAPI32.@)
834 DWORD WINAPI lineSetNumRings(HLINE hLine, DWORD dwAddressID, DWORD dwNumRings)
836 FIXME("(%p, %08lx, %08lx): stub.\n", hLine, dwAddressID, dwNumRings);
837 return 0;
840 /***********************************************************************
841 * lineSetStatusMessages (TAPI32.@)
843 DWORD WINAPI lineSetStatusMessages(HLINE hLine, DWORD dwLineStates, DWORD dwAddressStates)
845 FIXME("(%p, %08lx, %08lx): stub.\n", hLine, dwLineStates, dwAddressStates);
846 return 0;
849 /***********************************************************************
850 * lineSetTerminal (TAPI32.@)
852 DWORD WINAPI lineSetTerminal(HLINE hLine, DWORD dwAddressID, HCALL hCall, DWORD dwSelect, DWORD dwTerminalModes, DWORD dwTerminalID, DWORD bEnable)
854 FIXME("(%p, %08lx, %p, %08lx, %08lx, %08lx, %08lx): stub.\n", hLine, dwAddressID, hCall, dwSelect, dwTerminalModes, dwTerminalID, bEnable);
855 return 1;
858 /***********************************************************************
859 * lineSetTollList (TAPI32.@)
861 DWORD WINAPI lineSetTollList(HLINEAPP hLineApp, DWORD dwDeviceID, LPCSTR lpszAddressIn, DWORD dwTollListOption)
863 FIXME("(%p, %08lx, %s, %08lx): stub.\n", hLineApp, dwDeviceID, lpszAddressIn, dwTollListOption);
864 return 0;
867 /***********************************************************************
868 * lineSetupConference (TAPI32.@)
870 DWORD WINAPI lineSetupConference(HCALL hCall, HLINE hLine, LPHCALL lphConfCall, LPHCALL lphConsultCall, DWORD dwNumParties, LPLINECALLPARAMS lpCallParams)
872 FIXME("(%p, %p, %p, %p, %08lx, %p): stub.\n", hCall, hLine, lphConfCall, lphConsultCall, dwNumParties, lpCallParams);
873 return 1;
876 /***********************************************************************
877 * lineSetupTransfer (TAPI32.@)
879 DWORD WINAPI lineSetupTransfer(HCALL hCall, LPHCALL lphConsultCall, LPLINECALLPARAMS lpCallParams)
881 FIXME("(%p, %p, %p): stub.\n", hCall, lphConsultCall, lpCallParams);
882 return 1;
885 /***********************************************************************
886 * lineShutdown (TAPI32.@)
888 DWORD WINAPI lineShutdown(HLINEAPP hLineApp)
890 FIXME("(%p): stub.\n", hLineApp);
891 return 0;
894 /***********************************************************************
895 * lineSwapHold (TAPI32.@)
897 DWORD WINAPI lineSwapHold(HCALL hActiveCall, HCALL hHeldCall)
899 FIXME("(active: %p, held: %p): stub.\n", hActiveCall, hHeldCall);
900 return 1;
903 /***********************************************************************
904 * lineTranslateAddress (TAPI32.@)
906 DWORD WINAPI lineTranslateAddress(HLINEAPP hLineApp, DWORD dwDeviceID, DWORD dwAPIVersion, LPCSTR lpszAddressIn, DWORD dwCard, DWORD dwTranslateOptions, LPLINETRANSLATEOUTPUT lpTranslateOutput)
908 FIXME("(%p, %08lx, %08lx, %s, %08lx, %08lx, %p): stub.\n", hLineApp, dwDeviceID, dwAPIVersion, lpszAddressIn, dwCard, dwTranslateOptions, lpTranslateOutput);
909 return 0;
912 /***********************************************************************
913 * lineTranslateDialog (TAPI32.@)
915 DWORD WINAPI lineTranslateDialog(HLINEAPP hLineApp, DWORD dwDeviceID, DWORD dwAPIVersion, HWND hwndOwner, LPCSTR lpszAddressIn)
917 FIXME("(%p, %08lx, %08lx, %p, %s): stub.\n", hLineApp, dwDeviceID, dwAPIVersion, hwndOwner, lpszAddressIn);
918 return 0;
921 /***********************************************************************
922 * lineUncompleteCall (TAPI32.@)
924 DWORD WINAPI lineUncompleteCall(HLINE hLine, DWORD dwCompletionID)
926 FIXME("(%p, %08lx): stub.\n", hLine, dwCompletionID);
927 return 1;
930 /***********************************************************************
931 * lineUnhold (TAPI32.@)
933 DWORD WINAPI lineUnhold(HCALL hCall)
935 FIXME("(%p): stub.\n", hCall);
936 return 1;
939 /***********************************************************************
940 * lineUnpark (TAPI32.@)
942 DWORD WINAPI lineUnpark(HLINE hLine, DWORD dwAddressID, LPHCALL lphCall, LPCSTR lpszDestAddress)
944 FIXME("(%p, %08lx, %p, %s): stub.\n", hLine, dwAddressID, lphCall, lpszDestAddress);
945 return 1;