- re-activate the color-keying code
[wine/multimedia.git] / dlls / mpr / wnet.c
blob2c68bcfd562b8d599d3f6731623bb700c43abb27
1 /*
2 * MPR WNet functions
4 * Copyright 1999 Ulrich Weigand
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 "config.h"
23 #include <ctype.h>
24 #include <string.h>
25 #include <sys/types.h>
26 #ifdef HAVE_UNISTD_H
27 # include <unistd.h>
28 #endif
30 #include "winbase.h"
31 #include "winnls.h"
32 #include "winnetwk.h"
33 #include "wine/debug.h"
35 WINE_DEFAULT_DEBUG_CHANNEL(mpr);
39 * Browsing Functions
42 /*********************************************************************
43 * WNetOpenEnumA [MPR.@]
45 DWORD WINAPI WNetOpenEnumA( DWORD dwScope, DWORD dwType, DWORD dwUsage,
46 LPNETRESOURCEA lpNet, LPHANDLE lphEnum )
48 FIXME( "(%08lX, %08lX, %08lX, %p, %p): stub\n",
49 dwScope, dwType, dwUsage, lpNet, lphEnum );
51 SetLastError(WN_NO_NETWORK);
52 return WN_NO_NETWORK;
55 /*********************************************************************
56 * WNetOpenEnumW [MPR.@]
58 DWORD WINAPI WNetOpenEnumW( DWORD dwScope, DWORD dwType, DWORD dwUsage,
59 LPNETRESOURCEW lpNet, LPHANDLE lphEnum )
61 FIXME( "(%08lX, %08lX, %08lX, %p, %p): stub\n",
62 dwScope, dwType, dwUsage, lpNet, lphEnum );
64 SetLastError(WN_NO_NETWORK);
65 return WN_NO_NETWORK;
68 /*********************************************************************
69 * WNetEnumResourceA [MPR.@]
71 DWORD WINAPI WNetEnumResourceA( HANDLE hEnum, LPDWORD lpcCount,
72 LPVOID lpBuffer, LPDWORD lpBufferSize )
74 FIXME( "(%p, %p, %p, %p): stub\n",
75 hEnum, lpcCount, lpBuffer, lpBufferSize );
77 SetLastError(WN_NO_NETWORK);
78 return WN_NO_NETWORK;
81 /*********************************************************************
82 * WNetEnumResourceW [MPR.@]
84 DWORD WINAPI WNetEnumResourceW( HANDLE hEnum, LPDWORD lpcCount,
85 LPVOID lpBuffer, LPDWORD lpBufferSize )
87 FIXME( "(%p, %p, %p, %p): stub\n",
88 hEnum, lpcCount, lpBuffer, lpBufferSize );
90 SetLastError(WN_NO_NETWORK);
91 return WN_NO_NETWORK;
94 /*********************************************************************
95 * WNetCloseEnum [MPR.@]
97 DWORD WINAPI WNetCloseEnum( HANDLE hEnum )
99 FIXME( "(%p): stub\n", hEnum );
101 SetLastError(WN_NO_NETWORK);
102 return WN_NO_NETWORK;
105 /*********************************************************************
106 * WNetGetResourceInformationA [MPR.@]
108 DWORD WINAPI WNetGetResourceInformationA( LPNETRESOURCEA lpNetResource,
109 LPVOID lpBuffer, LPDWORD cbBuffer,
110 LPSTR *lplpSystem )
112 FIXME( "(%p, %p, %p, %p): stub\n",
113 lpNetResource, lpBuffer, cbBuffer, lplpSystem );
115 SetLastError(WN_NO_NETWORK);
116 return WN_NO_NETWORK;
119 /*********************************************************************
120 * WNetGetResourceInformationW [MPR.@]
122 DWORD WINAPI WNetGetResourceInformationW( LPNETRESOURCEW lpNetResource,
123 LPVOID lpBuffer, LPDWORD cbBuffer,
124 LPWSTR *lplpSystem )
126 FIXME( "(%p, %p, %p, %p): stub\n",
127 lpNetResource, lpBuffer, cbBuffer, lplpSystem );
129 SetLastError(WN_NO_NETWORK);
130 return WN_NO_NETWORK;
133 /*********************************************************************
134 * WNetGetResourceParentA [MPR.@]
136 DWORD WINAPI WNetGetResourceParentA( LPNETRESOURCEA lpNetResource,
137 LPVOID lpBuffer, LPDWORD lpBufferSize )
139 FIXME( "(%p, %p, %p): stub\n",
140 lpNetResource, lpBuffer, lpBufferSize );
142 SetLastError(WN_NO_NETWORK);
143 return WN_NO_NETWORK;
146 /*********************************************************************
147 * WNetGetResourceParentW [MPR.@]
149 DWORD WINAPI WNetGetResourceParentW( LPNETRESOURCEW lpNetResource,
150 LPVOID lpBuffer, LPDWORD lpBufferSize )
152 FIXME( "(%p, %p, %p): stub\n",
153 lpNetResource, lpBuffer, lpBufferSize );
155 SetLastError(WN_NO_NETWORK);
156 return WN_NO_NETWORK;
162 * Connection Functions
165 /*********************************************************************
166 * WNetAddConnectionA [MPR.@]
168 DWORD WINAPI WNetAddConnectionA( LPCSTR lpRemoteName, LPCSTR lpPassword,
169 LPCSTR lpLocalName )
171 FIXME( "(%s, %p, %s): stub\n",
172 debugstr_a(lpRemoteName), lpPassword, debugstr_a(lpLocalName) );
174 SetLastError(WN_NO_NETWORK);
175 return WN_NO_NETWORK;
178 /*********************************************************************
179 * WNetAddConnectionW [MPR.@]
181 DWORD WINAPI WNetAddConnectionW( LPCWSTR lpRemoteName, LPCWSTR lpPassword,
182 LPCWSTR lpLocalName )
184 FIXME( "(%s, %p, %s): stub\n",
185 debugstr_w(lpRemoteName), lpPassword, debugstr_w(lpLocalName) );
187 SetLastError(WN_NO_NETWORK);
188 return WN_NO_NETWORK;
191 /*********************************************************************
192 * WNetAddConnection2A [MPR.@]
194 DWORD WINAPI WNetAddConnection2A( LPNETRESOURCEA lpNetResource,
195 LPCSTR lpPassword, LPCSTR lpUserID,
196 DWORD dwFlags )
198 FIXME( "(%p, %p, %s, 0x%08lX): stub\n",
199 lpNetResource, lpPassword, debugstr_a(lpUserID), dwFlags );
201 SetLastError(WN_NO_NETWORK);
202 return WN_NO_NETWORK;
205 /*********************************************************************
206 * WNetAddConnection2W [MPR.@]
208 DWORD WINAPI WNetAddConnection2W( LPNETRESOURCEW lpNetResource,
209 LPCWSTR lpPassword, LPCWSTR lpUserID,
210 DWORD dwFlags )
212 FIXME( "(%p, %p, %s, 0x%08lX): stub\n",
213 lpNetResource, lpPassword, debugstr_w(lpUserID), dwFlags );
215 SetLastError(WN_NO_NETWORK);
216 return WN_NO_NETWORK;
219 /*********************************************************************
220 * WNetAddConnection3A [MPR.@]
222 DWORD WINAPI WNetAddConnection3A( HWND hwndOwner, LPNETRESOURCEA lpNetResource,
223 LPCSTR lpPassword, LPCSTR lpUserID,
224 DWORD dwFlags )
226 FIXME( "(%p, %p, %p, %s, 0x%08lX), stub\n",
227 hwndOwner, lpNetResource, lpPassword, debugstr_a(lpUserID), dwFlags );
229 SetLastError(WN_NO_NETWORK);
230 return WN_NO_NETWORK;
233 /*********************************************************************
234 * WNetAddConnection3W [MPR.@]
236 DWORD WINAPI WNetAddConnection3W( HWND hwndOwner, LPNETRESOURCEW lpNetResource,
237 LPCWSTR lpPassword, LPCWSTR lpUserID,
238 DWORD dwFlags )
240 FIXME( "(%p, %p, %p, %s, 0x%08lX), stub\n",
241 hwndOwner, lpNetResource, lpPassword, debugstr_w(lpUserID), dwFlags );
243 SetLastError(WN_NO_NETWORK);
244 return WN_NO_NETWORK;
247 /*****************************************************************
248 * WNetUseConnectionA [MPR.@]
250 DWORD WINAPI WNetUseConnectionA( HWND hwndOwner, LPNETRESOURCEA lpNetResource,
251 LPCSTR lpPassword, LPCSTR lpUserID, DWORD dwFlags,
252 LPSTR lpAccessName, LPDWORD lpBufferSize,
253 LPDWORD lpResult )
255 FIXME( "(%p, %p, %p, %s, 0x%08lX, %s, %p, %p), stub\n",
256 hwndOwner, lpNetResource, lpPassword, debugstr_a(lpUserID), dwFlags,
257 debugstr_a(lpAccessName), lpBufferSize, lpResult );
259 SetLastError(WN_NO_NETWORK);
260 return WN_NO_NETWORK;
263 /*****************************************************************
264 * WNetUseConnectionW [MPR.@]
266 DWORD WINAPI WNetUseConnectionW( HWND hwndOwner, LPNETRESOURCEW lpNetResource,
267 LPCWSTR lpPassword, LPCWSTR lpUserID, DWORD dwFlags,
268 LPWSTR lpAccessName, LPDWORD lpBufferSize,
269 LPDWORD lpResult )
271 FIXME( "(%p, %p, %p, %s, 0x%08lX, %s, %p, %p), stub\n",
272 hwndOwner, lpNetResource, lpPassword, debugstr_w(lpUserID), dwFlags,
273 debugstr_w(lpAccessName), lpBufferSize, lpResult );
275 SetLastError(WN_NO_NETWORK);
276 return WN_NO_NETWORK;
279 /*********************************************************************
280 * WNetCancelConnectionA [MPR.@]
282 DWORD WINAPI WNetCancelConnectionA( LPCSTR lpName, BOOL fForce )
284 FIXME( "(%s, %d), stub\n", debugstr_a(lpName), fForce );
286 return WN_SUCCESS;
289 /*********************************************************************
290 * WNetCancelConnectionW [MPR.@]
292 DWORD WINAPI WNetCancelConnectionW( LPCWSTR lpName, BOOL fForce )
294 FIXME( "(%s, %d), stub\n", debugstr_w(lpName), fForce );
296 return WN_SUCCESS;
299 /*********************************************************************
300 * WNetCancelConnection2A [MPR.@]
302 DWORD WINAPI WNetCancelConnection2A( LPCSTR lpName, DWORD dwFlags, BOOL fForce )
304 FIXME( "(%s, %08lX, %d), stub\n", debugstr_a(lpName), dwFlags, fForce );
306 return WN_SUCCESS;
309 /*********************************************************************
310 * WNetCancelConnection2W [MPR.@]
312 DWORD WINAPI WNetCancelConnection2W( LPCWSTR lpName, DWORD dwFlags, BOOL fForce )
314 FIXME( "(%s, %08lX, %d), stub\n", debugstr_w(lpName), dwFlags, fForce );
316 return WN_SUCCESS;
319 /*****************************************************************
320 * WNetRestoreConnectionA [MPR.@]
322 DWORD WINAPI WNetRestoreConnectionA( HWND hwndOwner, LPSTR lpszDevice )
324 FIXME( "(%p, %s), stub\n", hwndOwner, debugstr_a(lpszDevice) );
326 SetLastError(WN_NO_NETWORK);
327 return WN_NO_NETWORK;
330 /*****************************************************************
331 * WNetRestoreConnectionW [MPR.@]
333 DWORD WINAPI WNetRestoreConnectionW( HWND hwndOwner, LPWSTR lpszDevice )
335 FIXME( "(%p, %s), stub\n", hwndOwner, debugstr_w(lpszDevice) );
337 SetLastError(WN_NO_NETWORK);
338 return WN_NO_NETWORK;
341 /**************************************************************************
342 * WNetGetConnectionA [MPR.@]
344 * RETURNS
345 * - WN_BAD_LOCALNAME lpLocalName makes no sense
346 * - WN_NOT_CONNECTED drive is a local drive
347 * - WN_MORE_DATA buffer isn't big enough
348 * - WN_SUCCESS success (net path in buffer)
351 DWORD WINAPI WNetGetConnectionA( LPCSTR lpLocalName,
352 LPSTR lpRemoteName, LPDWORD lpBufferSize )
354 char label[40];
356 TRACE( "local %s\n", lpLocalName );
357 if (lpLocalName[1] == ':')
359 switch(GetDriveTypeA(lpLocalName))
361 case DRIVE_REMOTE:
362 if (!GetVolumeInformationA( lpLocalName, label, sizeof(label),
363 NULL, NULL, NULL, NULL, 0 )) label[0] = 0;
364 if (strlen(label) + 1 > *lpBufferSize)
366 *lpBufferSize = strlen(label) + 1;
367 return WN_MORE_DATA;
369 strcpy( lpRemoteName, label );
370 *lpBufferSize = strlen(lpRemoteName) + 1;
371 return WN_SUCCESS;
372 case DRIVE_REMOVABLE:
373 case DRIVE_FIXED:
374 case DRIVE_CDROM:
375 TRACE("file is local\n");
376 return WN_NOT_CONNECTED;
377 default:
378 return WN_BAD_LOCALNAME;
381 return WN_BAD_LOCALNAME;
384 /**************************************************************************
385 * WNetGetConnectionW [MPR.@]
387 DWORD WINAPI WNetGetConnectionW( LPCWSTR lpLocalName,
388 LPWSTR lpRemoteName, LPDWORD lpBufferSize )
390 CHAR buf[200];
391 DWORD ret, x = sizeof(buf);
392 INT len = WideCharToMultiByte( CP_ACP, 0, lpLocalName, -1, NULL, 0, NULL, NULL );
393 LPSTR lnA = HeapAlloc( GetProcessHeap(), 0, len );
395 WideCharToMultiByte( CP_ACP, 0, lpLocalName, -1, lnA, len, NULL, NULL );
396 ret = WNetGetConnectionA( lnA, buf, &x );
397 HeapFree( GetProcessHeap(), 0, lnA );
398 if (ret == WN_SUCCESS)
400 x = MultiByteToWideChar( CP_ACP, 0, buf, -1, NULL, 0 );
401 if (x > *lpBufferSize)
403 *lpBufferSize = x;
404 return WN_MORE_DATA;
406 *lpBufferSize = MultiByteToWideChar( CP_ACP, 0, buf, -1, lpRemoteName, *lpBufferSize );
408 return ret;
411 /**************************************************************************
412 * WNetSetConnectionA [MPR.@]
414 DWORD WINAPI WNetSetConnectionA( LPCSTR lpName, DWORD dwProperty,
415 LPVOID pvValue )
417 FIXME( "(%s, %08lX, %p): stub\n", debugstr_a(lpName), dwProperty, pvValue );
419 SetLastError(WN_NO_NETWORK);
420 return WN_NO_NETWORK;
423 /**************************************************************************
424 * WNetSetConnectionW [MPR.@]
426 DWORD WINAPI WNetSetConnectionW( LPCWSTR lpName, DWORD dwProperty,
427 LPVOID pvValue )
429 FIXME( "(%s, %08lX, %p): stub\n", debugstr_w(lpName), dwProperty, pvValue );
431 SetLastError(WN_NO_NETWORK);
432 return WN_NO_NETWORK;
435 /*****************************************************************
436 * WNetGetUniversalNameA [MPR.@]
438 DWORD WINAPI WNetGetUniversalNameA ( LPCSTR lpLocalPath, DWORD dwInfoLevel,
439 LPVOID lpBuffer, LPDWORD lpBufferSize )
441 FIXME( "(%s, 0x%08lX, %p, %p): stub\n",
442 debugstr_a(lpLocalPath), dwInfoLevel, lpBuffer, lpBufferSize);
444 SetLastError(WN_NO_NETWORK);
445 return WN_NO_NETWORK;
448 /*****************************************************************
449 * WNetGetUniversalNameW [MPR.@]
451 DWORD WINAPI WNetGetUniversalNameW ( LPCWSTR lpLocalPath, DWORD dwInfoLevel,
452 LPVOID lpBuffer, LPDWORD lpBufferSize )
454 FIXME( "(%s, 0x%08lX, %p, %p): stub\n",
455 debugstr_w(lpLocalPath), dwInfoLevel, lpBuffer, lpBufferSize);
457 SetLastError(WN_NO_NETWORK);
458 return WN_NO_NETWORK;
464 * Other Functions
467 /**************************************************************************
468 * WNetGetUserA [MPR.@]
470 * FIXME: we should not return ourselves, but the owner of the drive lpName
472 DWORD WINAPI WNetGetUserA( LPCSTR lpName, LPSTR lpUserID, LPDWORD lpBufferSize )
474 if (GetUserNameA( lpUserID, lpBufferSize )) return WN_SUCCESS;
475 return GetLastError();
478 /*****************************************************************
479 * WNetGetUserW [MPR.@]
481 DWORD WINAPI WNetGetUserW( LPCWSTR lpName, LPWSTR lpUserID, LPDWORD lpBufferSize )
483 FIXME( "(%s, %p, %p): mostly stub\n",
484 debugstr_w(lpName), lpUserID, lpBufferSize );
486 SetLastError(WN_NO_NETWORK);
487 return WN_NO_NETWORK;
490 /*********************************************************************
491 * WNetConnectionDialog [MPR.@]
493 DWORD WINAPI WNetConnectionDialog( HWND hwnd, DWORD dwType )
495 FIXME( "(%p, %08lX): stub\n", hwnd, dwType );
497 SetLastError(WN_NO_NETWORK);
498 return ERROR_NO_NETWORK;
501 /*********************************************************************
502 * WNetConnectionDialog1A [MPR.@]
504 DWORD WINAPI WNetConnectionDialog1A( LPCONNECTDLGSTRUCTA lpConnDlgStruct )
506 FIXME( "(%p): stub\n", lpConnDlgStruct );
508 SetLastError(WN_NO_NETWORK);
509 return ERROR_NO_NETWORK;
512 /*********************************************************************
513 * WNetConnectionDialog1W [MPR.@]
515 DWORD WINAPI WNetConnectionDialog1W( LPCONNECTDLGSTRUCTW lpConnDlgStruct )
517 FIXME( "(%p): stub\n", lpConnDlgStruct );
519 SetLastError(WN_NO_NETWORK);
520 return ERROR_NO_NETWORK;
523 /*********************************************************************
524 * WNetDisconnectDialog [MPR.@]
526 DWORD WINAPI WNetDisconnectDialog( HWND hwnd, DWORD dwType )
528 FIXME( "(%p, %08lX): stub\n", hwnd, dwType );
530 SetLastError(WN_NO_NETWORK);
531 return ERROR_NO_NETWORK;
534 /*********************************************************************
535 * WNetDisconnectDialog1A [MPR.@]
537 DWORD WINAPI WNetDisconnectDialog1A( LPDISCDLGSTRUCTA lpConnDlgStruct )
539 FIXME( "(%p): stub\n", lpConnDlgStruct );
541 SetLastError(WN_NO_NETWORK);
542 return ERROR_NO_NETWORK;
545 /*********************************************************************
546 * WNetDisconnectDialog1W [MPR.@]
548 DWORD WINAPI WNetDisconnectDialog1W( LPDISCDLGSTRUCTW lpConnDlgStruct )
550 FIXME( "(%p): stub\n", lpConnDlgStruct );
552 SetLastError(WN_NO_NETWORK);
553 return ERROR_NO_NETWORK;
556 /*********************************************************************
557 * WNetGetLastErrorA [MPR.@]
559 DWORD WINAPI WNetGetLastErrorA( LPDWORD lpError,
560 LPSTR lpErrorBuf, DWORD nErrorBufSize,
561 LPSTR lpNameBuf, DWORD nNameBufSize )
563 FIXME( "(%p, %p, %ld, %p, %ld): stub\n",
564 lpError, lpErrorBuf, nErrorBufSize, lpNameBuf, nNameBufSize );
566 SetLastError(WN_NO_NETWORK);
567 return ERROR_NO_NETWORK;
570 /*********************************************************************
571 * WNetGetLastErrorW [MPR.@]
573 DWORD WINAPI WNetGetLastErrorW( LPDWORD lpError,
574 LPWSTR lpErrorBuf, DWORD nErrorBufSize,
575 LPWSTR lpNameBuf, DWORD nNameBufSize )
577 FIXME( "(%p, %p, %ld, %p, %ld): stub\n",
578 lpError, lpErrorBuf, nErrorBufSize, lpNameBuf, nNameBufSize );
580 SetLastError(WN_NO_NETWORK);
581 return ERROR_NO_NETWORK;
584 /*********************************************************************
585 * WNetGetNetworkInformationA [MPR.@]
587 DWORD WINAPI WNetGetNetworkInformationA( LPCSTR lpProvider,
588 LPNETINFOSTRUCT lpNetInfoStruct )
590 FIXME( "(%s, %p): stub\n", debugstr_a(lpProvider), lpNetInfoStruct );
592 SetLastError(WN_NO_NETWORK);
593 return ERROR_NO_NETWORK;
596 /*********************************************************************
597 * WNetGetNetworkInformationW [MPR.@]
599 DWORD WINAPI WNetGetNetworkInformationW( LPCWSTR lpProvider,
600 LPNETINFOSTRUCT lpNetInfoStruct )
602 FIXME( "(%s, %p): stub\n", debugstr_w(lpProvider), lpNetInfoStruct );
604 SetLastError(WN_NO_NETWORK);
605 return ERROR_NO_NETWORK;
608 /*****************************************************************
609 * WNetGetProviderNameA [MPR.@]
611 DWORD WINAPI WNetGetProviderNameA( DWORD dwNetType,
612 LPSTR lpProvider, LPDWORD lpBufferSize )
614 FIXME( "(%ld, %p, %p): stub\n", dwNetType, lpProvider, lpBufferSize );
616 SetLastError(WN_NO_NETWORK);
617 return WN_NO_NETWORK;
620 /*****************************************************************
621 * WNetGetProviderNameW [MPR.@]
623 DWORD WINAPI WNetGetProviderNameW( DWORD dwNetType,
624 LPWSTR lpProvider, LPDWORD lpBufferSize )
626 FIXME( "(%ld, %p, %p): stub\n", dwNetType, lpProvider, lpBufferSize );
628 SetLastError(WN_NO_NETWORK);
629 return WN_NO_NETWORK;