From 082463978dd5c16abf26932f3b6c7d5d193182d2 Mon Sep 17 00:00:00 2001 From: Mark Jansen Date: Sun, 30 Oct 2016 11:50:10 +0000 Subject: [PATCH] [REGSVR32] Disable error message boxes while loading a dll. CORE-12209 svn path=/trunk/; revision=73077 --- reactos/base/system/regsvr32/regsvr32.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/reactos/base/system/regsvr32/regsvr32.c b/reactos/base/system/regsvr32/regsvr32.c index b590128cb82..2b854b9fd1c 100644 --- a/reactos/base/system/regsvr32/regsvr32.c +++ b/reactos/base/system/regsvr32/regsvr32.c @@ -258,7 +258,7 @@ int WINAPI _tWinMain( LPCSTR lpFuncName; LPWSTR lpwDllCmdLine; BOOL bUnregister,bSilent,bConsole,bInstall,bNoRegister; - UINT nDllCount; + UINT nDllCount, fuOldErrorMode; HMODULE hDll; DLLREGISTER fnDllRegister; DLLINSTALL fnDllInstall; @@ -386,9 +386,11 @@ int WINAPI _tWinMain( if (*argv[i] != _T('/')) { lptDllName = argv[i]; + fuOldErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS); // Everything is all setup, so load the dll now hDll = LoadLibraryEx(lptDllName,0,LOAD_WITH_ALTERED_SEARCH_PATH); if (hDll) { + SetErrorMode(fuOldErrorMode); if (!bNoRegister) { // Get the address of DllRegisterServer or DllUnregisterServer fnDllRegister = (DLLREGISTER)GetProcAddress(hDll,lpFuncName); @@ -463,6 +465,7 @@ int WINAPI _tWinMain( else { // The dll could not be loaded; display an error message dwErr = GetLastError(); + SetErrorMode(fuOldErrorMode); lptMsgBuffer = (LPTSTR)malloc((_tcslen(DllNotLoaded) + 2 + _tcslen(lptDllName) + 1) * sizeof(TCHAR)); _stprintf(lptMsgBuffer,DllNotLoaded,lptDllName,dwErr); DisplayMessage(bConsole,bSilent,lptMsgBuffer,ModuleTitle,MB_ICONEXCLAMATION);