12218fc2e702b4d0af3f7565bdfeacfbc96b2e41
[reactos.git] / reactos / dll / win32 / 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 (%s, %d, %p)\n", debugstr_w(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 }