Juan Lang : kernel32: Implement GetErrorMode/SetErrorMode on top of NTDLL.

Alexandre Julliard julliard at winehq.org
Mon Aug 16 12:25:06 CDT 2010


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Mon Jun 21 11:04:04 2010 -0700

kernel32: Implement GetErrorMode/SetErrorMode on top of NTDLL.

---

 dlls/kernel32/process.c |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index fc170f9..65dc2eb 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -70,8 +70,6 @@ typedef struct
     DWORD dwReserved;
 } LOADPARMS32;
 
-static UINT process_error_mode;
-
 static DWORD shutdown_flags = 0;
 static DWORD shutdown_priority = 0x280;
 static BOOL is_wow64;
@@ -2450,8 +2448,12 @@ BOOL WINAPI GetExitCodeProcess( HANDLE hProcess, LPDWORD lpExitCode )
  */
 UINT WINAPI SetErrorMode( UINT mode )
 {
-    UINT old = process_error_mode;
-    process_error_mode = mode;
+    UINT old;
+
+    NtQueryInformationProcess( GetCurrentProcess(), ProcessDefaultHardErrorMode,
+                               &old, sizeof(old), NULL );
+    NtSetInformationProcess( GetCurrentProcess(), ProcessDefaultHardErrorMode,
+                             &mode, sizeof(mode) );
     return old;
 }
 
@@ -2460,7 +2462,11 @@ UINT WINAPI SetErrorMode( UINT mode )
  */
 UINT WINAPI GetErrorMode( void )
 {
-    return process_error_mode;
+    UINT mode;
+
+    NtQueryInformationProcess( GetCurrentProcess(), ProcessDefaultHardErrorMode,
+                               &mode, sizeof(mode), NULL );
+    return mode;
 }
 
 /**********************************************************************




More information about the wine-cvs mailing list