Lei Zhang : userenv: Initial implementation of CreateEnvironmentBlock.
Alexandre Julliard
julliard at winehq.org
Wed Apr 30 06:57:32 CDT 2008
Module: wine
Branch: master
Commit: bca84d5467bc0242da027d24082871d8df3053fd
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bca84d5467bc0242da027d24082871d8df3053fd
Author: Lei Zhang <thestig at google.com>
Date: Tue Apr 29 18:19:05 2008 -0700
userenv: Initial implementation of CreateEnvironmentBlock.
---
dlls/userenv/Makefile.in | 2 +-
dlls/userenv/tests/userenv.c | 4 ++--
dlls/userenv/userenv_main.c | 14 +++++++++++++-
3 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/dlls/userenv/Makefile.in b/dlls/userenv/Makefile.in
index 946d210..07bba8f 100644
--- a/dlls/userenv/Makefile.in
+++ b/dlls/userenv/Makefile.in
@@ -3,7 +3,7 @@ TOPOBJDIR = ../..
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = userenv.dll
-IMPORTS = kernel32
+IMPORTS = kernel32 ntdll
IMPORTLIB = userenv
C_SRCS = \
diff --git a/dlls/userenv/tests/userenv.c b/dlls/userenv/tests/userenv.c
index 9f9425a..c50b0a2 100644
--- a/dlls/userenv/tests/userenv.c
+++ b/dlls/userenv/tests/userenv.c
@@ -41,7 +41,7 @@ static void test_create_env(void)
expect(FALSE, r);
r = CreateEnvironmentBlock((LPVOID) &env, NULL, FALSE);
- todo_wine expect(TRUE, r);
+ expect(TRUE, r);
r = OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY|TOKEN_DUPLICATE, &htok);
expect(TRUE, r);
@@ -50,7 +50,7 @@ static void test_create_env(void)
expect(FALSE, r);
r = CreateEnvironmentBlock((LPVOID) &env2, htok, FALSE);
- todo_wine expect(TRUE, r);
+ expect(TRUE, r);
}
START_TEST(userenv)
diff --git a/dlls/userenv/userenv_main.c b/dlls/userenv/userenv_main.c
index 0efea5c..1eaaa71 100644
--- a/dlls/userenv/userenv_main.c
+++ b/dlls/userenv/userenv_main.c
@@ -20,9 +20,12 @@
#include <stdarg.h>
+#include "ntstatus.h"
+#define WIN32_NO_STATUS
#include "windef.h"
#include "winbase.h"
#include "winreg.h"
+#include "winternl.h"
#include "userenv.h"
#include "wine/debug.h"
@@ -49,7 +52,16 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
BOOL WINAPI CreateEnvironmentBlock( LPVOID* lpEnvironment,
HANDLE hToken, BOOL bInherit )
{
- FIXME("%p %p %d\n", lpEnvironment, hToken, bInherit );
+ NTSTATUS r;
+
+ TRACE("%p %p %d\n", lpEnvironment, hToken, bInherit );
+
+ if (!lpEnvironment)
+ return FALSE;
+
+ r = RtlCreateEnvironment(bInherit, (WCHAR **)lpEnvironment);
+ if (r == STATUS_SUCCESS)
+ return TRUE;
return FALSE;
}
More information about the wine-cvs
mailing list