Avoid dumping the contents of output strings.
[wine] / dlls / rasapi32 / rasapi.c
1 /*
2  * RASAPI32
3  *
4  * Copyright 1998,2001 Marcus Meissner
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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  */
20
21 #include <stdarg.h>
22
23 #include "windef.h"
24 #include "winbase.h"
25 #include "ras.h"
26 #include "wine/debug.h"
27
28 WINE_DEFAULT_DEBUG_CHANNEL(ras);
29
30 DWORD WINAPI RasConnectionNotificationA(HRASCONN hrasconn, HANDLE hEvent, DWORD dwFlags)
31 {
32     FIXME("(%p,%p,0x%08lx),stub!\n",hrasconn,hEvent,dwFlags);
33     return 1;
34 }
35
36 DWORD WINAPI RasConnectionNotificationW(HRASCONN hrasconn, HANDLE hEvent, DWORD dwFlags)
37 {
38     FIXME("(%p,%p,0x%08lx),stub!\n",hrasconn,hEvent,dwFlags);
39     return 1;
40 }
41
42 DWORD WINAPI RasCreatePhonebookEntryA(HWND hwnd, LPCSTR lpszPhonebook)
43 {
44     FIXME("(%p,%s),stub!\n",hwnd,debugstr_a(lpszPhonebook));
45     return 0;
46 }
47
48 DWORD WINAPI RasCreatePhonebookEntryW(HWND hwnd, LPCWSTR lpszPhonebook)
49 {
50     FIXME("(%p,%s),stub!\n",hwnd,debugstr_w(lpszPhonebook));
51     return 0;
52 }
53
54 DWORD WINAPI RasDeleteSubEntryA(LPCSTR lpszPhonebook, LPCSTR lpszEntry, DWORD dwSubEntryId)
55 {
56     FIXME("(%s,%s,0x%08lx),stub!\n",debugstr_a(lpszPhonebook),
57           debugstr_a(lpszEntry),dwSubEntryId);
58     return 0;
59 }
60
61 DWORD WINAPI RasDeleteSubEntryW(LPCWSTR lpszPhonebook, LPCWSTR lpszEntry, DWORD dwSubEntryId)
62 {
63     FIXME("(%s,%s,0x%08lx),stub!\n",debugstr_w(lpszPhonebook),
64           debugstr_w(lpszEntry),dwSubEntryId);
65     return 0;
66 }
67
68 DWORD WINAPI RasDialA(LPRASDIALEXTENSIONS lpRasDialExtensions, LPCSTR lpszPhonebook,
69                       LPRASDIALPARAMSA lpRasDialParams, DWORD dwNotifierType,
70                       LPVOID lpvNotifier, LPHRASCONN lphRasConn)
71 {
72     FIXME("(%p,%s,%p,0x%08lx,%p,%p),stub!\n",lpRasDialExtensions,debugstr_a(lpszPhonebook),
73           lpRasDialParams,dwNotifierType,lpvNotifier,lphRasConn);
74     return 1;
75 }
76
77 DWORD WINAPI RasDialW(LPRASDIALEXTENSIONS lpRasDialExtensions, LPCWSTR lpszPhonebook,
78                       LPRASDIALPARAMSW lpRasDialParams, DWORD dwNotifierType,
79                       LPVOID lpvNotifier, LPHRASCONN lphRasConn)
80 {
81     FIXME("(%p,%s,%p,0x%08lx,%p,%p),stub!\n",lpRasDialExtensions,debugstr_w(lpszPhonebook),
82           lpRasDialParams,dwNotifierType,lpvNotifier,lphRasConn);
83     return 1;
84 }
85
86 DWORD WINAPI RasEditPhonebookEntryA(HWND hwnd, LPCSTR lpszPhonebook, LPCSTR lpszEntryName)
87 {
88     FIXME("(%p,%s,%s),stub!\n",hwnd,debugstr_a(lpszPhonebook),debugstr_a(lpszEntryName));
89     return 0;
90 }
91
92 DWORD WINAPI RasEditPhonebookEntryW(HWND hwnd, LPCWSTR lpszPhonebook, LPCWSTR lpszEntryName)
93 {
94     FIXME("(%p,%s,%s),stub!\n",hwnd,debugstr_w(lpszPhonebook),debugstr_w(lpszEntryName));
95     return 0;
96 }
97
98 /**************************************************************************
99  *                 RasEnumConnectionsA                  [RASAPI32.544]
100  */
101 DWORD WINAPI RasEnumConnectionsA( LPRASCONNA rca, LPDWORD lpcb, LPDWORD lpcConnections) {
102         /* Remote Access Service stuff is done by underlying OS anyway */
103         FIXME("(%p,%p,%p),stub!\n",rca,lpcb,lpcConnections);
104         FIXME("RAS support is not implemented! Configure program to use LAN connection/winsock instead!\n");
105         *lpcConnections = 0; /* no RAS connections available */
106
107         return 0;
108 }
109
110 /**************************************************************************
111  *                 RasEnumConnectionsW                  [RASAPI32.545]
112  */
113 DWORD WINAPI RasEnumConnectionsW( LPRASCONNW rcw, LPDWORD lpcb, LPDWORD lpcConnections) {
114         /* Remote Access Service stuff is done by underlying OS anyway */
115         FIXME("(%p,%p,%p),stub!\n",rcw,lpcb,lpcConnections);
116         FIXME("RAS support is not implemented! Configure program to use LAN connection/winsock instead!\n");
117         *lpcConnections = 0; /* no RAS connections available */
118
119         return 0;
120 }
121
122 /**************************************************************************
123  *                 RasEnumEntriesA                              [RASAPI32.546]
124  */
125 DWORD WINAPI RasEnumEntriesA( LPCSTR Reserved, LPCSTR lpszPhoneBook,
126         LPRASENTRYNAMEA lpRasEntryName,
127         LPDWORD lpcb, LPDWORD lpcEntries)
128 {
129         FIXME("(%p,%s,%p,%p,%p),stub!\n",Reserved,debugstr_a(lpszPhoneBook),
130             lpRasEntryName,lpcb,lpcEntries);
131         *lpcEntries = 0;
132         return 0;
133 }
134
135 /**************************************************************************
136  *                 RasEnumEntriesW                              [RASAPI32.547]
137  */
138 DWORD WINAPI RasEnumEntriesW( LPCWSTR Reserved, LPCWSTR lpszPhoneBook,
139         LPRASENTRYNAMEW lpRasEntryName,
140         LPDWORD lpcb, LPDWORD lpcEntries)
141 {
142         FIXME("(%p,%s,%p,%p,%p),stub!\n",Reserved,debugstr_w(lpszPhoneBook),
143             lpRasEntryName,lpcb,lpcEntries);
144         *lpcEntries = 0;
145         return 0;
146 }
147
148 DWORD WINAPI RasGetConnectStatusA(HRASCONN hrasconn, LPRASCONNSTATUSA lprasconnstatus)
149 {
150     FIXME("(%p,%p),stub!\n",hrasconn,lprasconnstatus);
151     return 0;
152 }
153
154 DWORD WINAPI RasGetConnectStatusW(HRASCONN hrasconn, LPRASCONNSTATUSW lprasconnstatus)
155 {
156     FIXME("(%p,%p),stub!\n",hrasconn,lprasconnstatus);
157     return 0;
158 }
159
160 /**************************************************************************
161  *                 RasGetEntryDialParamsA                       [RASAPI32.550]
162  */
163 DWORD WINAPI RasGetEntryDialParamsA(
164         LPCSTR lpszPhoneBook, LPRASDIALPARAMSA lpRasDialParams,
165         LPBOOL lpfPassword)
166 {
167         FIXME("(%s,%p,%p),stub!\n",debugstr_a(lpszPhoneBook),
168             lpRasDialParams,lpfPassword);
169         return 0;
170 }
171
172 /**************************************************************************
173  *                 RasGetEntryDialParamsW           [RASAPI32.551]
174  */
175 DWORD WINAPI RasGetEntryDialParamsW(
176     LPCWSTR lpszPhoneBook, LPRASDIALPARAMSW lpRasDialParams,
177     LPBOOL lpfPassword)
178 {
179     FIXME("(%s,%p,%p),stub!\n",debugstr_w(lpszPhoneBook),
180             lpRasDialParams,lpfPassword);
181     return 0;
182 }
183
184 /**************************************************************************
185  *                 RasHangUpA                   [RASAPI32.556]
186  */
187 DWORD WINAPI RasHangUpA( HRASCONN hrasconn)
188 {
189         FIXME("(%p),stub!\n",hrasconn);
190         return 0;
191 }
192
193 /**************************************************************************
194  *                 RasHangUpW           [RASAPI32.557]
195  */
196 DWORD WINAPI RasHangUpW(HRASCONN hrasconn)
197 {
198     FIXME("(%p),stub!\n",hrasconn);
199     return 0;
200 }
201
202 /**************************************************************************
203  *                 RasDeleteEntryA              [RASAPI32.7]
204  */
205 DWORD WINAPI RasDeleteEntryA(LPCSTR a, LPCSTR b)
206 {
207         FIXME("(%s,%s),stub!\n",debugstr_a(a),debugstr_a(b));
208         return 0;
209 }
210
211 /**************************************************************************
212  *                 RasDeleteEntryW              [RASAPI32.8]
213  */
214 DWORD WINAPI RasDeleteEntryW(LPCWSTR a, LPCWSTR b)
215 {
216         FIXME("(%s,%s),stub!\n",debugstr_w(a),debugstr_w(b));
217         return 0;
218 }
219
220 /**************************************************************************
221  *                 RasEnumAutodialAddressesA    [RASAPI32.14]
222  */
223 DWORD WINAPI RasEnumAutodialAddressesA(LPCSTR *a, LPDWORD b, LPDWORD c)
224 {
225         FIXME("(%p,%p,%p),stub!\n",a,b,c);
226         return 0;
227 }
228
229 /**************************************************************************
230  *                 RasEnumAutodialAddressesW    [RASAPI32.15]
231  */
232 DWORD WINAPI RasEnumAutodialAddressesW(LPCWSTR *a, LPDWORD b, LPDWORD c)
233 {
234         FIXME("(%p,%p,%p),stub!\n",a,b,c);
235         return 0;
236 }
237
238 typedef LPVOID LPRASAUTODIALENTRYA;
239 typedef LPVOID LPRASAUTODIALENTRYW;
240
241 /**************************************************************************
242  *                 RasEnumDevicesA              [RASAPI32.19]
243  *
244  * Just return a virtual modem too see what other APIs programs will
245  * call with it.
246  */
247 DWORD WINAPI RasEnumDevicesA(LPRASDEVINFOA lpRasDevinfo, LPDWORD lpcb, LPDWORD lpcDevices)
248 {
249         FIXME("(%p,%p,%p),stub!\n",lpRasDevinfo,lpcb,lpcDevices);
250         if (*lpcb < sizeof(RASDEVINFOA)) {
251                 *lpcb = sizeof(RASDEVINFOA);
252                 return ERROR_BUFFER_TOO_SMALL;
253         }
254         /* honor dwSize ? */
255         strcpy(lpRasDevinfo->szDeviceType, RASDT_Modem);
256         strcpy(lpRasDevinfo->szDeviceName, "WINE virtmodem");
257         return 0;
258 }
259
260 /**************************************************************************
261  *                 RasEnumDevicesW              [RASAPI32.20]
262  */
263 DWORD WINAPI RasEnumDevicesW(LPRASDEVINFOW a, LPDWORD b, LPDWORD c)
264 {
265         FIXME("(%p,%p,%p),stub!\n",a,b,c);
266         return 0;
267 }
268
269 /**************************************************************************
270  *                 RasGetAutodialAddressA       [RASAPI32.24]
271  */
272 DWORD WINAPI RasGetAutodialAddressA(LPCSTR a, LPDWORD b, LPRASAUTODIALENTRYA c,
273                                         LPDWORD d, LPDWORD e)
274 {
275         FIXME("(%s,%p,%p,%p,%p),stub!\n",debugstr_a(a),b,c,d,e);
276         return 0;
277 }
278
279 /**************************************************************************
280  *                 RasGetAutodialAddressW       [RASAPI32.25]
281  */
282 DWORD WINAPI RasGetAutodialAddressW(LPCWSTR a, LPDWORD b, LPRASAUTODIALENTRYW c,
283                                         LPDWORD d, LPDWORD e)
284 {
285         FIXME("(%s,%p,%p,%p,%p),stub!\n",debugstr_w(a),b,c,d,e);
286         return 0;
287 }
288
289 /**************************************************************************
290  *                 RasGetAutodialEnableA        [RASAPI32.26]
291  */
292 DWORD WINAPI RasGetAutodialEnableA(DWORD a, LPBOOL b)
293 {
294         FIXME("(%lx,%p),stub!\n",a,b);
295         return 0;
296 }
297
298 /**************************************************************************
299  *                 RasGetAutodialEnableW        [RASAPI32.27]
300  */
301 DWORD WINAPI RasGetAutodialEnableW(DWORD a, LPBOOL b)
302 {
303         FIXME("(%lx,%p),stub!\n",a,b);
304         return 0;
305 }
306
307 /**************************************************************************
308  *                 RasGetAutodialParamA         [RASAPI32.28]
309  */
310 DWORD WINAPI RasGetAutodialParamA(DWORD dwKey, LPVOID lpvValue, LPDWORD lpdwcbValue)
311 {
312         FIXME("(%lx,%p,%p),stub!\n",dwKey,lpvValue,lpdwcbValue);
313         return 0;
314 }
315
316 /**************************************************************************
317  *                 RasGetAutodialParamW         [RASAPI32.29]
318  */
319 DWORD WINAPI RasGetAutodialParamW(DWORD dwKey, LPVOID lpvValue, LPDWORD lpdwcbValue)
320 {
321         FIXME("(%lx,%p,%p),stub!\n",dwKey,lpvValue,lpdwcbValue);
322         return 0;
323 }
324
325 /**************************************************************************
326  *                 RasSetAutodialAddressA       [RASAPI32.57]
327  */
328 DWORD WINAPI RasSetAutodialAddressA(LPCSTR a, DWORD b, LPRASAUTODIALENTRYA c,
329                                         DWORD d, DWORD e)
330 {
331         FIXME("(%s,%lx,%p,%lx,%lx),stub!\n",debugstr_a(a),b,c,d,e);
332         return 0;
333 }
334
335 /**************************************************************************
336  *                 RasSetAutodialAddressW       [RASAPI32.58]
337  */
338 DWORD WINAPI RasSetAutodialAddressW(LPCWSTR a, DWORD b, LPRASAUTODIALENTRYW c,
339                                         DWORD d, DWORD e)
340 {
341         FIXME("(%s,%lx,%p,%lx,%lx),stub!\n",debugstr_w(a),b,c,d,e);
342         return 0;
343 }
344
345 /**************************************************************************
346  *                 RasSetAutodialEnableA        [RASAPI32.59]
347  */
348 DWORD WINAPI RasSetAutodialEnableA(DWORD dwDialingLocation, BOOL fEnabled)
349 {
350         FIXME("(%lx,%x),stub!\n",dwDialingLocation,fEnabled);
351         return 0;
352 }
353
354 /**************************************************************************
355  *                 RasSetAutodialEnableW        [RASAPI32.60]
356  */
357 DWORD WINAPI RasSetAutodialEnableW(DWORD dwDialingLocation, BOOL fEnabled)
358 {
359         FIXME("(%lx,%x),stub!\n",dwDialingLocation,fEnabled);
360         return 0;
361 }
362
363 /**************************************************************************
364  *                 RasSetAutodialParamA [RASAPI32.61]
365  */
366 DWORD WINAPI RasSetAutodialParamA(DWORD a, LPVOID b, DWORD c)
367 {
368         FIXME("(%lx,%p,%lx),stub!\n",a,b,c);
369         return 0;
370 }
371
372 /**************************************************************************
373  *                 RasSetAutodialParamW [RASAPI32.62]
374  */
375 DWORD WINAPI RasSetAutodialParamW(DWORD a, LPVOID b, DWORD c)
376 {
377         FIXME("(%lx,%p,%lx),stub!\n",a,b,c);
378         return 0;
379 }
380
381 /**************************************************************************
382  *                 RasSetEntryPropertiesA       [RASAPI32.67]
383  */
384 DWORD WINAPI RasSetEntryPropertiesA(LPCSTR lpszPhonebook, LPCSTR lpszEntry,
385         LPRASENTRYA lpRasEntry, DWORD dwEntryInfoSize, LPBYTE lpbDeviceInfo,
386         DWORD dwDeviceInfoSize
387 ) {
388         FIXME("(%s,%s,%p,%ld,%p,%ld), stub!\n",
389                 debugstr_a(lpszPhonebook),debugstr_a(lpszEntry),
390                 lpRasEntry,dwEntryInfoSize,lpbDeviceInfo,dwDeviceInfoSize
391         );
392         FIXME("Rasentry:\n");
393         FIXME("\tdwfOptions %lx\n",lpRasEntry->dwfOptions);
394         FIXME("\tszLocalPhoneNumber %s\n",debugstr_a(lpRasEntry->szLocalPhoneNumber));
395         return 0;
396 }
397
398 /**************************************************************************
399  *                 RasSetEntryPropertiesW       [RASAPI32.68]
400  */
401 DWORD WINAPI RasSetEntryPropertiesW(LPCWSTR lpszPhonebook, LPCWSTR lpszEntry,
402         LPRASENTRYW lpRasEntry, DWORD dwEntryInfoSize, LPBYTE lpbDeviceInfo,
403         DWORD dwDeviceInfoSize
404 ) {
405         FIXME("(%s,%s,%p,%ld,%p,%ld), stub!\n",
406                 debugstr_w(lpszPhonebook),debugstr_w(lpszEntry),
407                 lpRasEntry,dwEntryInfoSize,lpbDeviceInfo,dwDeviceInfoSize
408         );
409         return 0;
410 }
411
412 /**************************************************************************
413  *                 RasValidateEntryNameA        [RASAPI32.72]
414  */
415 DWORD WINAPI RasValidateEntryNameA(LPCSTR lpszPhonebook, LPCSTR lpszEntry) {
416         FIXME("(%s,%s), stub!\n",debugstr_a(lpszPhonebook),debugstr_a(lpszEntry));
417         return 0;
418 }
419
420 /**************************************************************************
421  *                 RasValidateEntryNameW        [RASAPI32.73]
422  */
423 DWORD WINAPI RasValidateEntryNameW(LPCWSTR lpszPhonebook, LPCWSTR lpszEntry) {
424         FIXME("(%s,%s), stub!\n",debugstr_w(lpszPhonebook),debugstr_w(lpszEntry));
425         return 0;
426 }
427
428 /**************************************************************************
429  *                 RasGetEntryPropertiesA       [RASAPI32.@]
430  */
431 DWORD WINAPI RasGetEntryPropertiesA(LPCSTR lpszPhonebook, LPCSTR lpszEntry, LPRASENTRYA lpRasEntry,
432         LPDWORD lpdwEntryInfoSize, LPBYTE lpbDeviceInfo, LPDWORD lpdwDeviceInfoSize
433 ) {
434         FIXME("(%s,%s,%p,%p,%p,%p), stub!\n", debugstr_a(lpszPhonebook), debugstr_a(lpszEntry), lpRasEntry,
435           lpdwEntryInfoSize, lpbDeviceInfo, lpdwDeviceInfoSize);
436         return 0;
437 }
438
439 /**************************************************************************
440  *                 RasGetEntryPropertiesW   [RASAPI32.@]
441  */
442 DWORD WINAPI RasGetEntryPropertiesW(LPCWSTR lpszPhonebook, LPCWSTR lpszEntry, LPRASENTRYW lpRasEntry,
443     LPDWORD lpdwEntryInfoSize, LPBYTE lpbDeviceInfo, LPDWORD lpdwDeviceInfoSize
444 ) {
445     FIXME("(%s,%s,%p,%p,%p,%p), stub!\n", debugstr_w(lpszPhonebook), debugstr_w(lpszEntry), lpRasEntry,
446           lpdwEntryInfoSize, lpbDeviceInfo, lpdwDeviceInfoSize);
447     return 0;
448 }
449
450 DWORD WINAPI RasGetErrorStringA(UINT uErrorValue, LPSTR lpszErrorString, DWORD cBufSize)
451 {
452     FIXME("(0x%08x,%p,0x%08lx), stub!\n", uErrorValue, lpszErrorString, cBufSize);
453     return 1;
454 }
455
456 DWORD WINAPI RasGetErrorStringW(UINT uErrorValue, LPWSTR lpszErrorString, DWORD cBufSize)
457 {
458     FIXME("(0x%08x,%p,0x%08lx), stub!\n", uErrorValue, lpszErrorString, cBufSize);
459     return 1;
460 }
461
462 DWORD WINAPI RasGetProjectionInfoA(HRASCONN hrasconn, RASPROJECTION rasprojection,
463                                    LPVOID lpprojection, LPDWORD lpcb)
464 {
465     FIXME("(%p,0x%08x,%p,%p), stub!\n", hrasconn, rasprojection, lpprojection, lpcb);
466     return 1;
467 }
468
469 DWORD WINAPI RasGetProjectionInfoW(HRASCONN hrasconn, RASPROJECTION rasprojection,
470                                    LPVOID lpprojection, LPDWORD lpcb)
471 {
472     FIXME("(%p,0x%08x,%p,%p), stub!\n", hrasconn, rasprojection, lpprojection, lpcb);
473     return 1;
474 }
475
476 DWORD WINAPI RasRenameEntryA(LPCSTR lpszPhonebook, LPCSTR lpszOldEntry, LPCSTR lpszNewEntry)
477 {
478     FIXME("(%s,%s,%s), stub!\n", debugstr_a(lpszPhonebook), debugstr_a(lpszOldEntry),
479           debugstr_a(lpszNewEntry));
480     return 0;
481 }
482
483 DWORD WINAPI RasRenameEntryW(LPCWSTR lpszPhonebook, LPCWSTR lpszOldEntry, LPCWSTR lpszNewEntry)
484 {
485     FIXME("(%s,%s,%s), stub!\n", debugstr_w(lpszPhonebook), debugstr_w(lpszOldEntry),
486           debugstr_w(lpszNewEntry));
487     return 0;
488 }
489
490 DWORD WINAPI RasSetEntryDialParamsA(LPCSTR lpszPhonebook, LPRASDIALPARAMSA lprasdialparams,
491                                     BOOL fRemovePassword)
492 {
493     FIXME("(%s,%p,0x%x), stub!\n", debugstr_a(lpszPhonebook), lprasdialparams, fRemovePassword);
494     return 0;
495 }
496
497 DWORD WINAPI RasSetEntryDialParamsW(LPCWSTR lpszPhonebook, LPRASDIALPARAMSW lprasdialparams,
498                                     BOOL fRemovePassword)
499 {
500     FIXME("(%s,%p,0x%x), stub!\n", debugstr_w(lpszPhonebook), lprasdialparams, fRemovePassword);
501     return 0;
502 }
503
504 DWORD WINAPI RasSetSubEntryPropertiesA(LPCSTR lpszPhonebook, LPCSTR lpszEntry, DWORD dwSubEntry,
505                                        LPRASSUBENTRYA lpRasSubEntry, DWORD dwcbRasSubEntry,
506                                        LPBYTE lpbDeviceConfig, DWORD dwcbDeviceConfig)
507 {
508     FIXME("(%s,%s,0x%08lx,%p,0x%08lx,%p,0x%08lx), stub!\n", debugstr_a(lpszPhonebook),
509           debugstr_a(lpszEntry), dwSubEntry, lpRasSubEntry, dwcbRasSubEntry, lpbDeviceConfig,
510           dwcbDeviceConfig);
511     return 0;
512 }
513
514 DWORD WINAPI RasSetSubEntryPropertiesW(LPCWSTR lpszPhonebook, LPCWSTR lpszEntry, DWORD dwSubEntry,
515                                        LPRASSUBENTRYW lpRasSubEntry, DWORD dwcbRasSubEntry,
516                                        LPBYTE lpbDeviceConfig, DWORD dwcbDeviceConfig)
517 {
518     FIXME("(%s,%s,0x%08lx,%p,0x%08lx,%p,0x%08lx), stub!\n", debugstr_w(lpszPhonebook),
519           debugstr_w(lpszEntry), dwSubEntry, lpRasSubEntry, dwcbRasSubEntry, lpbDeviceConfig,
520           dwcbDeviceConfig);
521     return 0;
522 }