Module: wine Branch: master Commit: 5e87ca772ed20897673f42eab18af313ef6fe316 URL: http://source.winehq.org/git/wine.git/?a=commit;h=5e87ca772ed20897673f42eab1...
Author: Juan Lang juan.lang@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; }
/**********************************************************************