diff --git a/dlls/netapi32/Makefile.in b/dlls/netapi32/Makefile.in index d172ce7cc75..43c75855c88 100644 --- a/dlls/netapi32/Makefile.in +++ b/dlls/netapi32/Makefile.in @@ -12,6 +12,7 @@ C_SRCS = \ apibuf.c \ browsr.c \ ds.c \ + local_group.c \ nbcmdqueue.c \ nbnamecache.c \ nbt.c \ diff --git a/dlls/netapi32/access.c b/dlls/netapi32/access.c index 872f3950668..92341a39f56 100644 --- a/dlls/netapi32/access.c +++ b/dlls/netapi32/access.c @@ -686,41 +686,3 @@ NET_API_STATUS WINAPI NetUserModalsGet( return NERR_Success; } - -/************************************************************ - * NetLocalGroupAdd (NETAPI32.@) - */ -NET_API_STATUS WINAPI NetLocalGroupAdd(LPCWSTR servername, DWORD level, - LPBYTE buf, LPDWORD parm_err) -{ - FIXME("(%s %ld %p %p) stub!\n", debugstr_w(servername), level, buf, parm_err); - return NERR_Success; -} - -/************************************************************ - * NetLocalGroupEnum (NETAPI32.@) - */ -NET_API_STATUS WINAPI NetLocalGroupEnum(LPCWSTR servername, DWORD level, - LPBYTE* bufptr, DWORD prefmaxlen, - LPDWORD entriesread, - LPDWORD totalentries, - PDWORD_PTR resumehandle) -{ - FIXME("(%s %ld %p %ld %p %p %p) stub!\n", debugstr_w(servername), - level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle); - *entriesread = 0; - *totalentries = 0; - return NERR_Success; -} - -/************************************************************ - * NetLocalGroupSetMember (NETAPI32.@) - */ - -NET_API_STATUS WINAPI NetLocalGroupSetMembers(LPCWSTR servername, - LPCWSTR groupname, DWORD level, LPBYTE buf, DWORD totalentries) -{ - FIXME("(%s %s %ld %p %ld) stub!\n", debugstr_w(servername), - debugstr_w(groupname),level, buf, totalentries); - return NERR_Success; -} diff --git a/dlls/netapi32/local_group.c b/dlls/netapi32/local_group.c new file mode 100644 index 00000000000..664f924c95d --- /dev/null +++ b/dlls/netapi32/local_group.c @@ -0,0 +1,202 @@ +/* + * Copyright 2006 Robert Reif + * + * netapi32 local group functions + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include + +#include "ntstatus.h" +#define WIN32_NO_STATUS +#include "windef.h" +#include "winbase.h" +#include "winerror.h" +#include "lmcons.h" +#include "lmaccess.h" +#include "lmapibuf.h" +#include "lmerr.h" +#include "winreg.h" +#include "winternl.h" +#include "ntsecapi.h" +#include "netapi32_misc.h" +#include "wine/debug.h" +#include "wine/unicode.h" + +WINE_DEFAULT_DEBUG_CHANNEL(netapi32); + +/************************************************************ + * NetLocalGroupAdd (NETAPI32.@) + */ +NET_API_STATUS WINAPI NetLocalGroupAdd( + LPCWSTR servername, + DWORD level, + LPBYTE buf, + LPDWORD parm_err) +{ + FIXME("(%s %ld %p %p) stub!\n", debugstr_w(servername), level, buf, + parm_err); + return NERR_Success; +} + +/************************************************************ + * NetLocalGroupAddMember (NETAPI32.@) + */ +NET_API_STATUS WINAPI NetLocalGroupAddMember( + LPCWSTR servername, + LPCWSTR groupname, + PSID membersid) +{ + FIXME("(%s %s %p) stub!\n", debugstr_w(servername), + debugstr_w(groupname), membersid); + return NERR_Success; +} + +/************************************************************ + * NetLocalGroupAddMembers (NETAPI32.@) + */ +NET_API_STATUS WINAPI NetLocalGroupAddMembers( + LPCWSTR servername, + LPCWSTR groupname, + DWORD level, + LPBYTE buf, + DWORD totalentries) +{ + FIXME("(%s %s %ld %p %ld) stub!\n", debugstr_w(servername), + debugstr_w(groupname), level, buf, totalentries); + return NERR_Success; +} + +/************************************************************ + * NetLocalGroupDel (NETAPI32.@) + */ +NET_API_STATUS WINAPI NetLocalGroupDel( + LPCWSTR servername, + LPCWSTR groupname) +{ + FIXME("(%s %s) stub!\n", debugstr_w(servername), debugstr_w(groupname)); + return NERR_Success; +} + +/************************************************************ + * NetLocalGroupDelMember (NETAPI32.@) + */ +NET_API_STATUS WINAPI NetLocalGroupDelMember( + LPCWSTR servername, + LPCWSTR groupname, + PSID membersid) +{ + FIXME("(%s %s %p) stub!\n", debugstr_w(servername), + debugstr_w(groupname), membersid); + return NERR_Success; +} + +/************************************************************ + * NetLocalGroupDelMembers (NETAPI32.@) + */ +NET_API_STATUS WINAPI NetLocalGroupDelMembers( + LPCWSTR servername, + LPCWSTR groupname, + DWORD level, + LPBYTE buf, + DWORD totalentries) +{ + FIXME("(%s %s %ld %p %ld) stub!\n", debugstr_w(servername), + debugstr_w(groupname), level, buf, totalentries); + return NERR_Success; +} + +/************************************************************ + * NetLocalGroupEnum (NETAPI32.@) + */ +NET_API_STATUS WINAPI NetLocalGroupEnum( + LPCWSTR servername, + DWORD level, + LPBYTE* bufptr, + DWORD prefmaxlen, + LPDWORD entriesread, + LPDWORD totalentries, + PDWORD_PTR resumehandle) +{ + FIXME("(%s %ld %p %ld %p %p %p) stub!\n", debugstr_w(servername), + level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle); + *entriesread = 0; + *totalentries = 0; + return NERR_Success; +} + +/************************************************************ + * NetLocalGroupGetInfo (NETAPI32.@) + */ +NET_API_STATUS WINAPI NetLocalGroupGetInfo( + LPCWSTR servername, + LPCWSTR groupname, + DWORD level, + LPBYTE* bufptr) +{ + FIXME("(%s %s %ld %p) stub!\n", debugstr_w(servername), + debugstr_w(groupname), level, bufptr); + return NERR_Success; +} + +/************************************************************ + * NetLocalGroupGetMembers (NETAPI32.@) + */ +NET_API_STATUS WINAPI NetLocalGroupGetMembers( + LPCWSTR servername, + LPCWSTR localgroupname, + DWORD level, + LPBYTE* bufptr, + DWORD prefmaxlen, + LPDWORD entriesread, + LPDWORD totalentries, + PDWORD_PTR resumehandle) +{ + FIXME("(%s %s %ld %p %ld, %p %p %p) stub!\n", debugstr_w(servername), + debugstr_w(localgroupname), level, bufptr, prefmaxlen, entriesread, + totalentries, resumehandle); + return NERR_Success; +} + +/************************************************************ + * NetLocalGroupSetInfo (NETAPI32.@) + */ +NET_API_STATUS WINAPI NetLocalGroupSetInfo( + LPCWSTR servername, + LPCWSTR groupname, + DWORD level, + LPBYTE buf, + LPDWORD parm_err) +{ + FIXME("(%s %s %ld %p %p) stub!\n", debugstr_w(servername), + debugstr_w(groupname), level, buf, parm_err); + return NERR_Success; +} + +/************************************************************ + * NetLocalGroupSetMember (NETAPI32.@) + */ +NET_API_STATUS WINAPI NetLocalGroupSetMembers( + LPCWSTR servername, + LPCWSTR groupname, + DWORD level, + LPBYTE buf, + DWORD totalentries) +{ + FIXME("(%s %s %ld %p %ld) stub!\n", debugstr_w(servername), + debugstr_w(groupname), level, buf, totalentries); + return NERR_Success; +} diff --git a/dlls/netapi32/netapi32.spec b/dlls/netapi32/netapi32.spec index 7868bc9ec3c..702abacefb0 100644 --- a/dlls/netapi32/netapi32.spec +++ b/dlls/netapi32/netapi32.spec @@ -102,16 +102,16 @@ @ stub NetGroupSetInfo @ stub NetGroupSetUsers @ stdcall NetLocalGroupAdd(wstr long ptr ptr) -@ stub NetLocalGroupAddMember -@ stub NetLocalGroupAddMembers -@ stub NetLocalGroupDel -@ stub NetLocalGroupDelMember -@ stub NetLocalGroupDelMembers -@ stdcall NetLocalGroupEnum(ptr long ptr long ptr ptr ptr) -@ stub NetLocalGroupGetInfo -@ stub NetLocalGroupGetMembers -@ stub NetLocalGroupSetInfo -@ stdcall NetLocalGroupSetMembers(wstr wstr long ptr ptr) +@ stdcall NetLocalGroupAddMember(wstr wstr ptr) +@ stdcall NetLocalGroupAddMembers(wstr wstr long ptr long) +@ stdcall NetLocalGroupDel(wstr wstr) +@ stdcall NetLocalGroupDelMember(wstr wstr ptr) +@ stdcall NetLocalGroupDelMembers(wstr wstr long ptr long) +@ stdcall NetLocalGroupEnum(wstr long ptr long ptr ptr ptr) +@ stdcall NetLocalGroupGetInfo(wstr wstr long ptr) +@ stdcall NetLocalGroupGetMembers(wstr wstr long ptr long ptr ptr ptr) +@ stdcall NetLocalGroupSetInfo(wstr wstr long ptr ptr) +@ stdcall NetLocalGroupSetMembers(wstr wstr long ptr long) @ stub NetMessageBufferSend @ stub NetMessageNameAdd @ stub NetMessageNameDel @@ -205,7 +205,7 @@ @ stdcall NetUserEnum(wstr long long ptr long ptr ptr ptr) @ stub NetUserGetGroups @ stdcall NetUserGetInfo(wstr wstr long ptr) -@ stdcall NetUserGetLocalGroups(ptr ptr long long ptr long ptr ptr); +@ stdcall NetUserGetLocalGroups(wstr wstr long long ptr long ptr ptr) @ stdcall NetUserModalsGet(wstr long ptr) @ stub NetUserModalsSet @ stub NetUserSetGroups diff --git a/include/lmaccess.h b/include/lmaccess.h index 02f38e99c20..c1b1a7b0e42 100644 --- a/include/lmaccess.h +++ b/include/lmaccess.h @@ -405,6 +405,15 @@ typedef struct _NET_DISPLAY_GROUP { NET_API_STATUS WINAPI NetGetDCName(LPCWSTR,LPCWSTR,LPBYTE*); NET_API_STATUS WINAPI NetLocalGroupAdd(LPCWSTR,DWORD,LPBYTE,LPDWORD); +NET_API_STATUS WINAPI NetLocalGroupAddMember(LPCWSTR,LPCWSTR,PSID); +NET_API_STATUS WINAPI NetLocalGroupAddMembers(LPCWSTR,LPCWSTR,DWORD,LPBYTE,DWORD); +NET_API_STATUS WINAPI NetLocalGroupDel(LPCWSTR,LPCWSTR); +NET_API_STATUS WINAPI NetLocalGroupDelMember(LPCWSTR,LPCWSTR,PSID); +NET_API_STATUS WINAPI NetLocalGroupDelMembers(LPCWSTR,LPCWSTR,DWORD,LPBYTE,DWORD); +NET_API_STATUS WINAPI NetLocalGroupEnum(LPCWSTR,DWORD,LPBYTE*,DWORD,LPDWORD,LPDWORD,PDWORD_PTR); +NET_API_STATUS WINAPI NetLocalGroupGetInfo(LPCWSTR,LPCWSTR,DWORD,LPBYTE*); +NET_API_STATUS WINAPI NetLocalGroupGetMembers(LPCWSTR,LPCWSTR,DWORD,LPBYTE*,DWORD,LPDWORD,LPDWORD,PDWORD_PTR); +NET_API_STATUS WINAPI NetLocalGroupSetInfo(LPCWSTR,LPCWSTR,DWORD,LPBYTE,LPDWORD); NET_API_STATUS WINAPI NetLocalGroupSetMembers(LPCWSTR,LPCWSTR,DWORD,LPBYTE,DWORD); NET_API_STATUS WINAPI NetQueryDisplayInformation(LPCWSTR,DWORD,DWORD,DWORD,DWORD,LPDWORD,PVOID*); NET_API_STATUS WINAPI NetUserAdd(LPCWSTR,DWORD,LPBYTE,LPDWORD);