NetUserGetInfo Level 1

Uwe Bonnes bon at elektron.ikp.physik.tu-darmstadt.de
Fri Dec 13 06:42:35 CST 2002


Changelog:
	dlls/netapi32/access.c: NetUserGetInfo
	Implement Level 1

Altera quartus.exe gets further with this.

-- 
Uwe Bonnes                bon at elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Index: wine/dlls/netapi32/access.c
===================================================================
RCS file: /home/wine/wine/dlls/netapi32/access.c,v
retrieving revision 1.2
diff -u -w -r1.2 access.c
--- wine/dlls/netapi32/access.c	24 Sep 2002 18:29:39 -0000	1.2
+++ wine/dlls/netapi32/access.c	13 Dec 2002 11:37:31 -0000
@@ -171,6 +171,60 @@
     }
 
     case 1:
+      {
+
+	static const WCHAR homedirW[] = {'H','O','M','E',0};
+        PUSER_INFO_1 ui;
+        PUSER_INFO_0 ui0;
+        NET_API_STATUS status;
+        /* sizes of the field buffers in WCHARS */
+        int name_sz, password_sz, home_dir_sz, comment_sz, script_path_sz;
+
+	password_sz = 1; /* not filled out for security reasons for NetUserGetInfo*/
+        comment_sz = 1;
+	script_path_sz = 1;
+
+       /* get data */
+        status = NetUserGetInfo(servername, username, 0, (LPBYTE *) &ui0);
+        if (status != NERR_Success)
+        {
+            NetApiBufferFree(ui0);
+            return status;
+        }
+        name_sz = lstrlenW(ui0->usri0_name) + 1;
+	home_dir_sz = GetEnvironmentVariableW(homedirW, NULL,0);
+        /* set up buffer */
+        NetApiBufferAllocate(sizeof(USER_INFO_1) +
+                             (name_sz + password_sz + home_dir_sz +
+                              comment_sz + script_path_sz) * sizeof(WCHAR),
+                             (LPVOID *) bufptr);
+        ui = (PUSER_INFO_1) *bufptr;
+        ui->usri1_name = (LPWSTR) (*bufptr + sizeof(USER_INFO_1));
+	ui->usri1_password = (LPWSTR) (
+            ((PBYTE) ui->usri1_name) + name_sz * sizeof(WCHAR));
+	ui->usri1_password_age =(DWORD) (
+            ((PBYTE) ui->usri1_password) + password_sz * sizeof(WCHAR));
+	ui->usri1_priv =(DWORD) (
+            ((PBYTE) ui->usri1_password_age) + sizeof(DWORD));
+	ui->usri1_home_dir =(LPWSTR) (
+            ((PBYTE) ui->usri1_priv) + sizeof(DWORD));
+	ui->usri1_comment =(LPWSTR) (
+            ((PBYTE) ui->usri1_home_dir) + home_dir_sz* sizeof(WCHAR));
+	ui->usri1_flags =(DWORD) (
+            ((PBYTE) ui->usri1_comment) + comment_sz* sizeof(WCHAR));
+	ui->usri1_script_path =(LPWSTR) (
+            ((PBYTE) ui->usri1_flags) + sizeof(DWORD));
+	/* set data */
+        lstrcpyW(ui->usri1_name, ui0->usri0_name);
+        NetApiBufferFree(ui0);
+	ui->usri1_password = 0;
+	ui->usri1_priv = 0;
+	GetEnvironmentVariableW(homedirW, ui->usri1_home_dir,home_dir_sz);
+	ui->usri1_comment[0] =0;
+	ui->usri1_flags = 0;
+	ui->usri1_script_path[0] =0;
+        break;
+      }
     case 2:
     case 3:
     case 4:



More information about the wine-patches mailing list