Stefan Leichter : user.exe: Forward WNetGetUser16 to WNetGetUserA of mpr. dll, based on a patch from Andrew Nguyen.

Alexandre Julliard julliard at winehq.org
Mon Jan 18 10:58:51 CST 2010


Module: wine
Branch: master
Commit: 5ef5ead15fbebc52b799e1b5e59a52f69aed01b3
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=5ef5ead15fbebc52b799e1b5e59a52f69aed01b3

Author: Stefan Leichter <Stefan.Leichter at camline.com>
Date:   Thu Jan 14 21:09:54 2010 +0100

user.exe: Forward WNetGetUser16 to WNetGetUserA of mpr.dll, based on a patch from Andrew Nguyen.

---

 dlls/user.exe16/Makefile.in     |    2 +-
 dlls/user.exe16/network.c       |   23 ++++++++++++++++++++---
 dlls/user.exe16/user.exe16.spec |    2 +-
 include/wine/winnet16.h         |    2 +-
 4 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/dlls/user.exe16/Makefile.in b/dlls/user.exe16/Makefile.in
index 9efa686..e5015cb 100644
--- a/dlls/user.exe16/Makefile.in
+++ b/dlls/user.exe16/Makefile.in
@@ -3,7 +3,7 @@ TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = user.exe16
-IMPORTS   = user32 gdi32 kernel32 kernel ntdll
+IMPORTS   = mpr user32 gdi32 kernel32 kernel ntdll
 EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,user32.dll,--heap,65520
 EXTRARCFLAGS  = -O res16
 
diff --git a/dlls/user.exe16/network.c b/dlls/user.exe16/network.c
index 105d016..8dc31b1 100644
--- a/dlls/user.exe16/network.c
+++ b/dlls/user.exe16/network.c
@@ -30,6 +30,7 @@
 
 #include "windef.h"
 #include "winbase.h"
+#include "winnetwk.h"
 #include "wine/winnet16.h"
 #include "wine/debug.h"
 
@@ -306,10 +307,26 @@ WORD WINAPI WNetGetCaps16( WORD capability )
 /**************************************************************************
  *		WNetGetUser			[USER.516]
  */
-WORD WINAPI WNetGetUser16( LPCSTR lpName, LPSTR szUser, LPINT16 nBufferSize )
+WORD WINAPI WNetGetUser16( LPSTR szUser, LPINT16 nBufferSize )
 {
-    FIXME( "(%p, %p, %p): stub\n", lpName, szUser, nBufferSize );
-    return WN16_NOT_SUPPORTED;
+    DWORD lpBufferSize, ret;
+
+    if(!szUser || !nBufferSize) return WN16_BAD_POINTER;
+
+    lpBufferSize = *nBufferSize;
+    ret = WNetGetUserA( NULL, szUser, &lpBufferSize );
+    *nBufferSize = lpBufferSize;
+
+    switch (ret)
+    {
+        case NO_ERROR:
+            return WN16_SUCCESS;
+        case ERROR_MORE_DATA:
+            return WN16_MORE_DATA;
+        default:
+            FIXME("Untranslated return value %d\n", ret);
+    }
+    return ret;
 }
 
 
diff --git a/dlls/user.exe16/user.exe16.spec b/dlls/user.exe16/user.exe16.spec
index 517ced8..7094f47 100644
--- a/dlls/user.exe16/user.exe16.spec
+++ b/dlls/user.exe16/user.exe16.spec
@@ -463,7 +463,7 @@
 513 pascal -ret16 WNetGetCaps(word) WNetGetCaps16
 514 pascal -ret16 WNetDeviceMode(word) WNetDeviceMode16
 515 pascal -ret16 WNetBrowseDialog(word word ptr) WNetBrowseDialog16
-516 pascal -ret16 WNetGetUser(ptr ptr ptr) WNetGetUser16
+516 pascal -ret16 WNetGetUser(ptr ptr) WNetGetUser16
 517 pascal -ret16 WNetAddConnection(str str str) WNetAddConnection16
 518 pascal -ret16 WNetCancelConnection(str word) WNetCancelConnection16
 519 pascal -ret16 WNetGetError(ptr) WNetGetError16
diff --git a/include/wine/winnet16.h b/include/wine/winnet16.h
index 8f04860..15b046e 100644
--- a/include/wine/winnet16.h
+++ b/include/wine/winnet16.h
@@ -199,7 +199,7 @@ WORD WINAPI WNetGetCaps16(WORD);
  * Get User
  */
 
-WORD WINAPI WNetGetUser16(LPCSTR,LPSTR,LPINT16);
+WORD WINAPI WNetGetUser16(LPSTR,LPINT16);
 
 
 /*




More information about the wine-cvs mailing list