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