14 #include "debugtools.h"
16 DEFAULT_DEBUG_CHANNEL(mpr
);
23 /*********************************************************************
24 * WNetOpenEnumA [MPR.@]
26 DWORD WINAPI
WNetOpenEnumA( DWORD dwScope
, DWORD dwType
, DWORD dwUsage
,
27 LPNETRESOURCEA lpNet
, LPHANDLE lphEnum
)
29 FIXME( "(%08lX, %08lX, %08lX, %p, %p): stub\n",
30 dwScope
, dwType
, dwUsage
, lpNet
, lphEnum
);
32 SetLastError(WN_NO_NETWORK
);
36 /*********************************************************************
37 * WNetOpenEnumW [MPR.@]
39 DWORD WINAPI
WNetOpenEnumW( DWORD dwScope
, DWORD dwType
, DWORD dwUsage
,
40 LPNETRESOURCEW lpNet
, LPHANDLE lphEnum
)
42 FIXME( "(%08lX, %08lX, %08lX, %p, %p): stub\n",
43 dwScope
, dwType
, dwUsage
, lpNet
, lphEnum
);
45 SetLastError(WN_NO_NETWORK
);
49 /*********************************************************************
50 * WNetEnumResourceA [MPR.@]
52 DWORD WINAPI
WNetEnumResourceA( HANDLE hEnum
, LPDWORD lpcCount
,
53 LPVOID lpBuffer
, LPDWORD lpBufferSize
)
55 FIXME( "(%04X, %p, %p, %p): stub\n",
56 hEnum
, lpcCount
, lpBuffer
, lpBufferSize
);
58 SetLastError(WN_NO_NETWORK
);
62 /*********************************************************************
63 * WNetEnumResourceW [MPR.@]
65 DWORD WINAPI
WNetEnumResourceW( HANDLE hEnum
, LPDWORD lpcCount
,
66 LPVOID lpBuffer
, LPDWORD lpBufferSize
)
68 FIXME( "(%04X, %p, %p, %p): stub\n",
69 hEnum
, lpcCount
, lpBuffer
, lpBufferSize
);
71 SetLastError(WN_NO_NETWORK
);
75 /*********************************************************************
76 * WNetCloseEnum [MPR.@]
78 DWORD WINAPI
WNetCloseEnum( HANDLE hEnum
)
80 FIXME( "(%04X): stub\n", hEnum
);
82 SetLastError(WN_NO_NETWORK
);
86 /*********************************************************************
87 * WNetGetResourceInformationA [MPR.@]
89 DWORD WINAPI
WNetGetResourceInformationA( LPNETRESOURCEA lpNetResource
,
90 LPVOID lpBuffer
, LPDWORD cbBuffer
,
93 FIXME( "(%p, %p, %p, %p): stub\n",
94 lpNetResource
, lpBuffer
, cbBuffer
, lplpSystem
);
96 SetLastError(WN_NO_NETWORK
);
100 /*********************************************************************
101 * WNetGetResourceInformationW [MPR.@]
103 DWORD WINAPI
WNetGetResourceInformationW( LPNETRESOURCEW lpNetResource
,
104 LPVOID lpBuffer
, LPDWORD cbBuffer
,
107 FIXME( "(%p, %p, %p, %p): stub\n",
108 lpNetResource
, lpBuffer
, cbBuffer
, lplpSystem
);
110 SetLastError(WN_NO_NETWORK
);
111 return WN_NO_NETWORK
;
114 /*********************************************************************
115 * WNetGetResourceParentA [MPR.@]
117 DWORD WINAPI
WNetGetResourceParentA( LPNETRESOURCEA lpNetResource
,
118 LPVOID lpBuffer
, LPDWORD lpBufferSize
)
120 FIXME( "(%p, %p, %p): stub\n",
121 lpNetResource
, lpBuffer
, lpBufferSize
);
123 SetLastError(WN_NO_NETWORK
);
124 return WN_NO_NETWORK
;
127 /*********************************************************************
128 * WNetGetResourceParentW [MPR.@]
130 DWORD WINAPI
WNetGetResourceParentW( LPNETRESOURCEW lpNetResource
,
131 LPVOID lpBuffer
, LPDWORD lpBufferSize
)
133 FIXME( "(%p, %p, %p): stub\n",
134 lpNetResource
, lpBuffer
, lpBufferSize
);
136 SetLastError(WN_NO_NETWORK
);
137 return WN_NO_NETWORK
;
143 * Connection Functions
146 /*********************************************************************
147 * WNetAddConnectionA [MPR.@]
149 DWORD WINAPI
WNetAddConnectionA( LPCSTR lpRemoteName
, LPCSTR lpPassword
,
152 FIXME( "(%s, %p, %s): stub\n",
153 debugstr_a(lpRemoteName
), lpPassword
, debugstr_a(lpLocalName
) );
155 SetLastError(WN_NO_NETWORK
);
156 return WN_NO_NETWORK
;
159 /*********************************************************************
160 * WNetAddConnectionW [MPR.@]
162 DWORD WINAPI
WNetAddConnectionW( LPCWSTR lpRemoteName
, LPCWSTR lpPassword
,
163 LPCWSTR lpLocalName
)
165 FIXME( "(%s, %p, %s): stub\n",
166 debugstr_w(lpRemoteName
), lpPassword
, debugstr_w(lpLocalName
) );
168 SetLastError(WN_NO_NETWORK
);
169 return WN_NO_NETWORK
;
172 /*********************************************************************
173 * WNetAddConnection2A [MPR.@]
175 DWORD WINAPI
WNetAddConnection2A( LPNETRESOURCEA lpNetResource
,
176 LPCSTR lpPassword
, LPCSTR lpUserID
,
179 FIXME( "(%p, %p, %s, 0x%08lX): stub\n",
180 lpNetResource
, lpPassword
, debugstr_a(lpUserID
), dwFlags
);
182 SetLastError(WN_NO_NETWORK
);
183 return WN_NO_NETWORK
;
186 /*********************************************************************
187 * WNetAddConnection2W [MPR.@]
189 DWORD WINAPI
WNetAddConnection2W( LPNETRESOURCEW lpNetResource
,
190 LPCWSTR lpPassword
, LPCWSTR lpUserID
,
193 FIXME( "(%p, %p, %s, 0x%08lX): stub\n",
194 lpNetResource
, lpPassword
, debugstr_w(lpUserID
), dwFlags
);
196 SetLastError(WN_NO_NETWORK
);
197 return WN_NO_NETWORK
;
200 /*********************************************************************
201 * WNetAddConnection3A [MPR.@]
203 DWORD WINAPI
WNetAddConnection3A( HWND hwndOwner
, LPNETRESOURCEA lpNetResource
,
204 LPCSTR lpPassword
, LPCSTR lpUserID
,
207 FIXME( "(%04x, %p, %p, %s, 0x%08lX), stub\n",
208 hwndOwner
, lpNetResource
, lpPassword
, debugstr_a(lpUserID
), dwFlags
);
210 SetLastError(WN_NO_NETWORK
);
211 return WN_NO_NETWORK
;
214 /*********************************************************************
215 * WNetAddConnection3W [MPR.@]
217 DWORD WINAPI
WNetAddConnection3W( HWND hwndOwner
, LPNETRESOURCEW lpNetResource
,
218 LPCWSTR lpPassword
, LPCWSTR lpUserID
,
221 FIXME( "(%04x, %p, %p, %s, 0x%08lX), stub\n",
222 hwndOwner
, lpNetResource
, lpPassword
, debugstr_w(lpUserID
), dwFlags
);
224 SetLastError(WN_NO_NETWORK
);
225 return WN_NO_NETWORK
;
228 /*****************************************************************
229 * WNetUseConnectionA [MPR.@]
231 DWORD WINAPI
WNetUseConnectionA( HWND hwndOwner
, LPNETRESOURCEA lpNetResource
,
232 LPCSTR lpPassword
, LPCSTR lpUserID
, DWORD dwFlags
,
233 LPSTR lpAccessName
, LPDWORD lpBufferSize
,
236 FIXME( "(%04x, %p, %p, %s, 0x%08lX, %s, %p, %p), stub\n",
237 hwndOwner
, lpNetResource
, lpPassword
, debugstr_a(lpUserID
), dwFlags
,
238 debugstr_a(lpAccessName
), lpBufferSize
, lpResult
);
240 SetLastError(WN_NO_NETWORK
);
241 return WN_NO_NETWORK
;
244 /*****************************************************************
245 * WNetUseConnectionW [MPR.@]
247 DWORD WINAPI
WNetUseConnectionW( HWND hwndOwner
, LPNETRESOURCEW lpNetResource
,
248 LPCWSTR lpPassword
, LPCWSTR lpUserID
, DWORD dwFlags
,
249 LPWSTR lpAccessName
, LPDWORD lpBufferSize
,
252 FIXME( "(%04x, %p, %p, %s, 0x%08lX, %s, %p, %p), stub\n",
253 hwndOwner
, lpNetResource
, lpPassword
, debugstr_w(lpUserID
), dwFlags
,
254 debugstr_w(lpAccessName
), lpBufferSize
, lpResult
);
256 SetLastError(WN_NO_NETWORK
);
257 return WN_NO_NETWORK
;
260 /*********************************************************************
261 * WNetCancelConnectionA [MPR.@]
263 DWORD WINAPI
WNetCancelConnectionA( LPCSTR lpName
, BOOL fForce
)
265 FIXME( "(%s, %d), stub\n", debugstr_a(lpName
), fForce
);
270 /*********************************************************************
271 * WNetCancelConnectionW [MPR.@]
273 DWORD WINAPI
WNetCancelConnectionW( LPCWSTR lpName
, BOOL fForce
)
275 FIXME( "(%s, %d), stub\n", debugstr_w(lpName
), fForce
);
280 /*********************************************************************
281 * WNetCancelConnection2A [MPR.@]
283 DWORD WINAPI
WNetCancelConnection2A( LPCSTR lpName
, DWORD dwFlags
, BOOL fForce
)
285 FIXME( "(%s, %08lX, %d), stub\n", debugstr_a(lpName
), dwFlags
, fForce
);
290 /*********************************************************************
291 * WNetCancelConnection2W [MPR.@]
293 DWORD WINAPI
WNetCancelConnection2W( LPCWSTR lpName
, DWORD dwFlags
, BOOL fForce
)
295 FIXME( "(%s, %08lX, %d), stub\n", debugstr_w(lpName
), dwFlags
, fForce
);
300 /*****************************************************************
301 * WNetRestoreConnectionA [MPR.@]
303 DWORD WINAPI
WNetRestoreConnectionA( HWND hwndOwner
, LPSTR lpszDevice
)
305 FIXME( "(%04X, %s), stub\n", hwndOwner
, debugstr_a(lpszDevice
) );
307 SetLastError(WN_NO_NETWORK
);
308 return WN_NO_NETWORK
;
311 /*****************************************************************
312 * WNetRestoreConnectionW [MPR.@]
314 DWORD WINAPI
WNetRestoreConnectionW( HWND hwndOwner
, LPWSTR lpszDevice
)
316 FIXME( "(%04X, %s), stub\n", hwndOwner
, debugstr_w(lpszDevice
) );
318 SetLastError(WN_NO_NETWORK
);
319 return WN_NO_NETWORK
;
322 /**************************************************************************
323 * WNetGetConnectionA [MPR.@]
326 * - WN_BAD_LOCALNAME lpLocalName makes no sense
327 * - WN_NOT_CONNECTED drive is a local drive
328 * - WN_MORE_DATA buffer isn't big enough
329 * - WN_SUCCESS success (net path in buffer)
332 DWORD WINAPI
WNetGetConnectionA( LPCSTR lpLocalName
,
333 LPSTR lpRemoteName
, LPDWORD lpBufferSize
)
337 TRACE( "local %s\n", lpLocalName
);
338 if (lpLocalName
[1] == ':')
340 switch(GetDriveTypeA(lpLocalName
))
343 if (!GetVolumeInformationA( lpLocalName
, label
, sizeof(label
),
344 NULL
, NULL
, NULL
, NULL
, 0 )) label
[0] = 0;
345 if (strlen(label
) + 1 > *lpBufferSize
)
347 *lpBufferSize
= strlen(label
) + 1;
350 strcpy( lpRemoteName
, label
);
351 *lpBufferSize
= strlen(lpRemoteName
) + 1;
353 case DRIVE_REMOVABLE
:
356 TRACE("file is local\n");
357 return WN_NOT_CONNECTED
;
359 return WN_BAD_LOCALNAME
;
362 return WN_BAD_LOCALNAME
;
365 /**************************************************************************
366 * WNetGetConnectionW [MPR.@]
368 DWORD WINAPI
WNetGetConnectionW( LPCWSTR lpLocalName
,
369 LPWSTR lpRemoteName
, LPDWORD lpBufferSize
)
372 DWORD x
= sizeof(buf
);
373 LPSTR lnA
= HEAP_strdupWtoA( GetProcessHeap(), 0, lpLocalName
);
374 DWORD ret
= WNetGetConnectionA( lnA
, buf
, &x
);
375 HeapFree( GetProcessHeap(), 0, lnA
);
376 if (ret
== WN_SUCCESS
)
378 x
= MultiByteToWideChar( CP_ACP
, 0, buf
, -1, NULL
, 0 );
379 if (x
> *lpBufferSize
)
384 *lpBufferSize
= MultiByteToWideChar( CP_ACP
, 0, buf
, -1, lpRemoteName
, *lpBufferSize
);
389 /**************************************************************************
390 * WNetSetConnectionA [MPR.@]
392 DWORD WINAPI
WNetSetConnectionA( LPCSTR lpName
, DWORD dwProperty
,
395 FIXME( "(%s, %08lX, %p): stub\n", debugstr_a(lpName
), dwProperty
, pvValue
);
397 SetLastError(WN_NO_NETWORK
);
398 return WN_NO_NETWORK
;
401 /**************************************************************************
402 * WNetSetConnectionW [MPR.@]
404 DWORD WINAPI
WNetSetConnectionW( LPCWSTR lpName
, DWORD dwProperty
,
407 FIXME( "(%s, %08lX, %p): stub\n", debugstr_w(lpName
), dwProperty
, pvValue
);
409 SetLastError(WN_NO_NETWORK
);
410 return WN_NO_NETWORK
;
413 /*****************************************************************
414 * WNetGetUniversalNameA [MPR.@]
416 DWORD WINAPI
WNetGetUniversalNameA ( LPCSTR lpLocalPath
, DWORD dwInfoLevel
,
417 LPVOID lpBuffer
, LPDWORD lpBufferSize
)
419 FIXME( "(%s, 0x%08lX, %p, %p): stub\n",
420 debugstr_a(lpLocalPath
), dwInfoLevel
, lpBuffer
, lpBufferSize
);
422 SetLastError(WN_NO_NETWORK
);
423 return WN_NO_NETWORK
;
426 /*****************************************************************
427 * WNetGetUniversalNameW [MPR.@]
429 DWORD WINAPI
WNetGetUniversalNameW ( LPCWSTR lpLocalPath
, DWORD dwInfoLevel
,
430 LPVOID lpBuffer
, LPDWORD lpBufferSize
)
432 FIXME( "(%s, 0x%08lX, %p, %p): stub\n",
433 debugstr_w(lpLocalPath
), dwInfoLevel
, lpBuffer
, lpBufferSize
);
435 SetLastError(WN_NO_NETWORK
);
436 return WN_NO_NETWORK
;
445 /**************************************************************************
446 * WNetGetUserA [MPR.@]
448 * FIXME: we should not return ourselves, but the owner of the drive lpName
450 DWORD WINAPI
WNetGetUserA( LPCSTR lpName
, LPSTR lpUserID
, LPDWORD lpBufferSize
)
452 struct passwd
*pwd
= getpwuid(getuid());
454 FIXME( "(%s, %p, %p): mostly stub\n",
455 debugstr_a(lpName
), lpUserID
, lpBufferSize
);
459 if ( strlen(pwd
->pw_name
) + 1 > *lpBufferSize
)
461 *lpBufferSize
= strlen(pwd
->pw_name
) + 1;
463 SetLastError(ERROR_MORE_DATA
);
464 return ERROR_MORE_DATA
;
467 strcpy( lpUserID
, pwd
->pw_name
);
468 *lpBufferSize
= strlen(pwd
->pw_name
) + 1;
472 /* FIXME: wrong return value */
473 SetLastError(ERROR_NO_NETWORK
);
474 return ERROR_NO_NETWORK
;
477 /*****************************************************************
478 * WNetGetUserW [MPR.@]
480 DWORD WINAPI
WNetGetUserW( LPCWSTR lpName
, LPWSTR lpUserID
, LPDWORD lpBufferSize
)
482 FIXME( "(%s, %p, %p): mostly stub\n",
483 debugstr_w(lpName
), lpUserID
, lpBufferSize
);
485 SetLastError(WN_NO_NETWORK
);
486 return WN_NO_NETWORK
;
489 /*********************************************************************
490 * WNetConnectionDialog [MPR.@]
492 DWORD WINAPI
WNetConnectionDialog( HWND hwnd
, DWORD dwType
)
494 FIXME( "(%04x, %08lX): stub\n", hwnd
, dwType
);
496 SetLastError(WN_NO_NETWORK
);
497 return ERROR_NO_NETWORK
;
500 /*********************************************************************
501 * WNetConnectionDialog1A [MPR.@]
503 DWORD WINAPI
WNetConnectionDialog1A( LPCONNECTDLGSTRUCTA lpConnDlgStruct
)
505 FIXME( "(%p): stub\n", lpConnDlgStruct
);
507 SetLastError(WN_NO_NETWORK
);
508 return ERROR_NO_NETWORK
;
511 /*********************************************************************
512 * WNetConnectionDialog1W [MPR.@]
514 DWORD WINAPI
WNetConnectionDialog1W( LPCONNECTDLGSTRUCTW lpConnDlgStruct
)
516 FIXME( "(%p): stub\n", lpConnDlgStruct
);
518 SetLastError(WN_NO_NETWORK
);
519 return ERROR_NO_NETWORK
;
522 /*********************************************************************
523 * WNetDisconnectDialog [MPR.@]
525 DWORD WINAPI
WNetDisconnectDialog( HWND hwnd
, DWORD dwType
)
527 FIXME( "(%04x, %08lX): stub\n", hwnd
, dwType
);
529 SetLastError(WN_NO_NETWORK
);
530 return ERROR_NO_NETWORK
;
533 /*********************************************************************
534 * WNetDisconnectDialog1A [MPR.@]
536 DWORD WINAPI
WNetDisconnectDialog1A( LPDISCDLGSTRUCTA lpConnDlgStruct
)
538 FIXME( "(%p): stub\n", lpConnDlgStruct
);
540 SetLastError(WN_NO_NETWORK
);
541 return ERROR_NO_NETWORK
;
544 /*********************************************************************
545 * WNetDisconnectDialog1W [MPR.@]
547 DWORD WINAPI
WNetDisconnectDialog1W( LPDISCDLGSTRUCTW lpConnDlgStruct
)
549 FIXME( "(%p): stub\n", lpConnDlgStruct
);
551 SetLastError(WN_NO_NETWORK
);
552 return ERROR_NO_NETWORK
;
555 /*********************************************************************
556 * WNetGetLastErrorA [MPR.@]
558 DWORD WINAPI
WNetGetLastErrorA( LPDWORD lpError
,
559 LPSTR lpErrorBuf
, DWORD nErrorBufSize
,
560 LPSTR lpNameBuf
, DWORD nNameBufSize
)
562 FIXME( "(%p, %p, %ld, %p, %ld): stub\n",
563 lpError
, lpErrorBuf
, nErrorBufSize
, lpNameBuf
, nNameBufSize
);
565 SetLastError(WN_NO_NETWORK
);
566 return ERROR_NO_NETWORK
;
569 /*********************************************************************
570 * WNetGetLastErrorW [MPR.@]
572 DWORD WINAPI
WNetGetLastErrorW( LPDWORD lpError
,
573 LPWSTR lpErrorBuf
, DWORD nErrorBufSize
,
574 LPWSTR lpNameBuf
, DWORD nNameBufSize
)
576 FIXME( "(%p, %p, %ld, %p, %ld): stub\n",
577 lpError
, lpErrorBuf
, nErrorBufSize
, lpNameBuf
, nNameBufSize
);
579 SetLastError(WN_NO_NETWORK
);
580 return ERROR_NO_NETWORK
;
583 /*********************************************************************
584 * WNetGetNetworkInformationA [MPR.@]
586 DWORD WINAPI
WNetGetNetworkInformationA( LPCSTR lpProvider
,
587 LPNETINFOSTRUCT lpNetInfoStruct
)
589 FIXME( "(%s, %p): stub\n", debugstr_a(lpProvider
), lpNetInfoStruct
);
591 SetLastError(WN_NO_NETWORK
);
592 return ERROR_NO_NETWORK
;
595 /*********************************************************************
596 * WNetGetNetworkInformationW [MPR.@]
598 DWORD WINAPI
WNetGetNetworkInformationW( LPCWSTR lpProvider
,
599 LPNETINFOSTRUCT lpNetInfoStruct
)
601 FIXME( "(%s, %p): stub\n", debugstr_w(lpProvider
), lpNetInfoStruct
);
603 SetLastError(WN_NO_NETWORK
);
604 return ERROR_NO_NETWORK
;
607 /*****************************************************************
608 * WNetGetProviderNameA [MPR.@]
610 DWORD WINAPI
WNetGetProviderNameA( DWORD dwNetType
,
611 LPSTR lpProvider
, LPDWORD lpBufferSize
)
613 FIXME( "(%ld, %p, %p): stub\n", dwNetType
, lpProvider
, lpBufferSize
);
615 SetLastError(WN_NO_NETWORK
);
616 return WN_NO_NETWORK
;
619 /*****************************************************************
620 * WNetGetProviderNameW [MPR.@]
622 DWORD WINAPI
WNetGetProviderNameW( DWORD dwNetType
,
623 LPWSTR lpProvider
, LPDWORD lpBufferSize
)
625 FIXME( "(%ld, %p, %p): stub\n", dwNetType
, lpProvider
, lpBufferSize
);
627 SetLastError(WN_NO_NETWORK
);
628 return WN_NO_NETWORK
;