Add a stubbed out implementation of IAdviseSink and advise the
[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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 #include "config.h"
20
21 #include "wine/debug.h"
22 #include "netbios.h"
23
24 WINE_DEFAULT_DEBUG_CHANNEL(netbios);
25
26 HMODULE NETAPI32_hModule = 0;
27
28 BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
29 {
30     TRACE("%p,%lx,%p\n", hinstDLL, fdwReason, lpvReserved);
31
32     switch (fdwReason) {
33         case DLL_PROCESS_ATTACH:
34         {
35             DisableThreadLibraryCalls(hinstDLL);
36             NETAPI32_hModule = hinstDLL;
37             NetBIOSInit();
38             NetBTInit();
39             break;
40         }
41         case DLL_PROCESS_DETACH:
42         {
43             NetBIOSShutdown();
44             break;
45         }
46     }
47
48     return TRUE;
49 }
50
51 NET_API_STATUS  WINAPI NetServerEnum(
52   LPCWSTR servername,
53   DWORD level,
54   LPBYTE* bufptr,
55   DWORD prefmaxlen,
56   LPDWORD entriesread,
57   LPDWORD totalentries,
58   DWORD servertype,
59   LPCWSTR domain,
60   LPDWORD resume_handle
61 )
62 {
63     FIXME("Stub (%s %ld %p %ld %p %p %ld %s %p)\n", debugstr_w(servername),
64      level, bufptr, prefmaxlen, entriesread, totalentries, servertype,
65      debugstr_w(domain), resume_handle);
66
67     return ERROR_NO_BROWSER_SERVERS_FOUND;
68 }
69
70
71 /************************************************************
72  *                NetServerGetInfo  (NETAPI32.@)
73  */
74 NET_API_STATUS WINAPI NetServerGetInfo(LPCWSTR servername, DWORD level, LPBYTE* bufptr)
75 {
76     FIXME("stub (%p, %ld, %p)\n", servername, level, bufptr);
77     return ERROR_ACCESS_DENIED;
78 }
79
80
81 /************************************************************
82  *                NetStatisticsGet  (NETAPI32.@)
83  */
84 NET_API_STATUS WINAPI NetStatisticsGet(LPWSTR server, LPWSTR service,
85                                        DWORD level, DWORD options,
86                                        LPBYTE *bufptr)
87 {
88     TRACE("(%p, %p, %ld, %ld, %p)\n", server, service, level, options, bufptr);
89     return NERR_InternalError;
90 }
91
92 DWORD WINAPI NetpNetBiosStatusToApiStatus(DWORD nrc)
93 {
94     DWORD ret;
95
96     switch (nrc)
97     {
98         case NRC_GOODRET:
99             ret = NO_ERROR;
100             break;
101         case NRC_NORES:
102             ret = NERR_NoNetworkResource;
103             break;
104         case NRC_DUPNAME:
105             ret = NERR_AlreadyExists;
106             break;
107         case NRC_NAMTFUL:
108             ret = NERR_TooManyNames;
109             break;
110         case NRC_ACTSES:
111             ret = NERR_DeleteLater;
112             break;
113         case NRC_REMTFUL:
114             ret = ERROR_REM_NOT_LIST;
115             break;
116         case NRC_NOCALL:
117             ret = NERR_NameNotFound;
118             break;
119         case NRC_NOWILD:
120             ret = ERROR_INVALID_PARAMETER;
121             break;
122         case NRC_INUSE:
123             ret = NERR_DuplicateName;
124             break;
125         case NRC_NAMERR:
126             ret = ERROR_INVALID_PARAMETER;
127             break;
128         case NRC_NAMCONF:
129             ret = NERR_DuplicateName;
130             break;
131         default:
132             ret = NERR_NetworkError;
133     }
134     return ret;
135 }