shell32: RunFileDlg: make the error messages easier to understand for the user.
[wine] / dlls / netapi32 / netapi32.c
1 /* Copyright 2001 Mike McCormack
2  * Copyright 2003 Juan Lang
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18
19 #include "config.h"
20
21 #include "wine/debug.h"
22 #include "lm.h"
23 #include "netbios.h"
24
25 WINE_DEFAULT_DEBUG_CHANNEL(netbios);
26
27 static HMODULE NETAPI32_hModule;
28
29 BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
30 {
31     TRACE("%p,%x,%p\n", hinstDLL, fdwReason, lpvReserved);
32
33     switch (fdwReason) {
34         case DLL_PROCESS_ATTACH:
35         {
36             DisableThreadLibraryCalls(hinstDLL);
37             NETAPI32_hModule = hinstDLL;
38             NetBIOSInit();
39             NetBTInit();
40             break;
41         }
42         case DLL_PROCESS_DETACH:
43         {
44             NetBIOSShutdown();
45             break;
46         }
47     }
48
49     return TRUE;
50 }
51
52 /************************************************************
53  *                NetServerEnum (NETAPI32.@)
54  */
55 NET_API_STATUS  WINAPI NetServerEnum(
56   LMCSTR servername,
57   DWORD level,
58   LPBYTE* bufptr,
59   DWORD prefmaxlen,
60   LPDWORD entriesread,
61   LPDWORD totalentries,
62   DWORD servertype,
63   LMCSTR domain,
64   LPDWORD resume_handle
65 )
66 {
67     FIXME("Stub (%s %d %p %d %p %p %d %s %p)\n", debugstr_w(servername),
68      level, bufptr, prefmaxlen, entriesread, totalentries, servertype,
69      debugstr_w(domain), resume_handle);
70
71     return ERROR_NO_BROWSER_SERVERS_FOUND;
72 }
73
74 /************************************************************
75  *                NetServerEnumEx (NETAPI32.@)
76  */
77 NET_API_STATUS WINAPI NetServerEnumEx(
78     LMCSTR ServerName,
79     DWORD Level,
80     LPBYTE *Bufptr,
81     DWORD PrefMaxlen,
82     LPDWORD EntriesRead,
83     LPDWORD totalentries,
84     DWORD servertype,
85     LMCSTR domain,
86     LMCSTR FirstNameToReturn)
87 {
88     FIXME("Stub (%s %d %p %d %p %p %d %s %p)\n", debugstr_w(ServerName),
89      Level, Bufptr, PrefMaxlen, EntriesRead, totalentries, servertype,
90      debugstr_w(domain), debugstr_w(FirstNameToReturn));
91                                                                                 
92     return ERROR_NO_BROWSER_SERVERS_FOUND;
93 }
94
95 /************************************************************
96  *                NetServerGetInfo  (NETAPI32.@)
97  */
98 NET_API_STATUS WINAPI NetServerGetInfo(LMSTR servername, DWORD level, LPBYTE* bufptr)
99 {
100     FIXME("stub (%p, %d, %p)\n", servername, level, bufptr);
101     return ERROR_ACCESS_DENIED;
102 }
103
104
105 /************************************************************
106  *                NetStatisticsGet  (NETAPI32.@)
107  */
108 NET_API_STATUS WINAPI NetStatisticsGet(LMSTR server, LMSTR service,
109                                        DWORD level, DWORD options,
110                                        LPBYTE *bufptr)
111 {
112     TRACE("(%p, %p, %d, %d, %p)\n", server, service, level, options, bufptr);
113     return NERR_InternalError;
114 }
115
116 DWORD WINAPI NetpNetBiosStatusToApiStatus(DWORD nrc)
117 {
118     DWORD ret;
119
120     switch (nrc)
121     {
122         case NRC_GOODRET:
123             ret = NO_ERROR;
124             break;
125         case NRC_NORES:
126             ret = NERR_NoNetworkResource;
127             break;
128         case NRC_DUPNAME:
129             ret = NERR_AlreadyExists;
130             break;
131         case NRC_NAMTFUL:
132             ret = NERR_TooManyNames;
133             break;
134         case NRC_ACTSES:
135             ret = NERR_DeleteLater;
136             break;
137         case NRC_REMTFUL:
138             ret = ERROR_REM_NOT_LIST;
139             break;
140         case NRC_NOCALL:
141             ret = NERR_NameNotFound;
142             break;
143         case NRC_NOWILD:
144             ret = ERROR_INVALID_PARAMETER;
145             break;
146         case NRC_INUSE:
147             ret = NERR_DuplicateName;
148             break;
149         case NRC_NAMERR:
150             ret = ERROR_INVALID_PARAMETER;
151             break;
152         case NRC_NAMCONF:
153             ret = NERR_DuplicateName;
154             break;
155         default:
156             ret = NERR_NetworkError;
157     }
158     return ret;
159 }
160
161 NET_API_STATUS WINAPI NetUseEnum(LMSTR server, DWORD level, LPBYTE* bufptr, DWORD prefmaxsize,
162                           LPDWORD entriesread, LPDWORD totalentries, LPDWORD resumehandle)
163 {
164     FIXME("stub (%p, %d, %p, %d, %p, %p, %p)\n", server, level, bufptr, prefmaxsize,
165            entriesread, totalentries, resumehandle);
166     return ERROR_NOT_SUPPORTED;
167 }