213213 v1.85, 22 & 23 August, 2018:
214214 fix creating the wrap buffer;
215215 always inject from ansicon.exe, even if it's GUI or excluded;
216- log CreateFile calls.
216+ log CreateFile calls;
217+ preserve last error.
217218*/
218219
219220#include "ansicon.h"
@@ -3113,7 +3114,9 @@ BOOL WINAPI MyCreateProcessA( LPCSTR lpApplicationName,
31133114 lpStartupInfo ,
31143115 & child_pi ))
31153116 {
3116- DEBUGSTR ( 1 , " Failed (%u)" , GetLastError () );
3117+ DWORD err = GetLastError ();
3118+ DEBUGSTR ( 1 , " Failed (%u)" , err );
3119+ SetLastError ( err );
31173120 return FALSE;
31183121 }
31193122
@@ -3151,7 +3154,9 @@ BOOL WINAPI MyCreateProcessW( LPCWSTR lpApplicationName,
31513154 lpStartupInfo ,
31523155 & child_pi ))
31533156 {
3154- DEBUGSTR ( 1 , " Failed (%u)" , GetLastError () );
3157+ DWORD err = GetLastError ();
3158+ DEBUGSTR ( 1 , " Failed (%u)" , err );
3159+ SetLastError ( err );
31553160 return FALSE;
31563161 }
31573162
@@ -3222,17 +3227,21 @@ FARPROC WINAPI MyGetProcAddress( HMODULE hModule, LPCSTR lpProcName )
32223227HMODULE WINAPI MyLoadLibraryA ( LPCSTR lpFileName )
32233228{
32243229 HMODULE hMod = LoadLibraryA ( lpFileName );
3225- DEBUGSTR ( 2 , "LoadLibraryA %s" , lpFileName );
3230+ DWORD err = GetLastError ();
3231+ DEBUGSTR ( 2 , "LoadLibraryA %\"s" , lpFileName );
32263232 HookAPIAllMod ( Hooks , FALSE, TRUE );
3233+ SetLastError ( err );
32273234 return hMod ;
32283235}
32293236
32303237
32313238HMODULE WINAPI MyLoadLibraryW ( LPCWSTR lpFileName )
32323239{
32333240 HMODULE hMod = LoadLibraryW ( lpFileName );
3234- DEBUGSTR ( 2 , "LoadLibraryW %S" , lpFileName );
3241+ DWORD err = GetLastError ();
3242+ DEBUGSTR ( 2 , "LoadLibraryW %\"S" , lpFileName );
32353243 HookAPIAllMod ( Hooks , FALSE, TRUE );
3244+ SetLastError ( err );
32363245 return hMod ;
32373246}
32383247
@@ -3245,8 +3254,10 @@ HMODULE WINAPI MyLoadLibraryExA( LPCSTR lpFileName, HANDLE hFile,
32453254 LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE |
32463255 LOAD_LIBRARY_AS_IMAGE_RESOURCE )))
32473256 {
3248- DEBUGSTR ( 2 , "LoadLibraryExA %s" , lpFileName );
3257+ DWORD err = GetLastError ();
3258+ DEBUGSTR ( 2 , "LoadLibraryExA %\"s" , lpFileName );
32493259 HookAPIAllMod ( Hooks , FALSE, TRUE );
3260+ SetLastError ( err );
32503261 }
32513262 return hMod ;
32523263}
@@ -3260,8 +3271,10 @@ HMODULE WINAPI MyLoadLibraryExW( LPCWSTR lpFileName, HANDLE hFile,
32603271 LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE |
32613272 LOAD_LIBRARY_AS_IMAGE_RESOURCE )))
32623273 {
3263- DEBUGSTR ( 2 , "LoadLibraryExW %S" , lpFileName );
3274+ DWORD err = GetLastError ();
3275+ DEBUGSTR ( 2 , "LoadLibraryExW %\"S" , lpFileName );
32643276 HookAPIAllMod ( Hooks , FALSE, TRUE );
3277+ SetLastError ( err );
32653278 }
32663279 return hMod ;
32673280}
0 commit comments