Andrew Nguyen : regsvr32: Continue processing DLL list if an export is not found for a DLL.
Alexandre Julliard
julliard at winehq.org
Mon May 3 11:54:12 CDT 2010
Module: wine
Branch: master
Commit: 6fc4954457b70f1e7f07936216b9773f4f9f4101
URL: http://source.winehq.org/git/wine.git/?a=commit;h=6fc4954457b70f1e7f07936216b9773f4f9f4101
Author: Andrew Nguyen <anguyen at codeweavers.com>
Date: Sun May 2 01:24:40 2010 -0500
regsvr32: Continue processing DLL list if an export is not found for a DLL.
---
programs/regsvr32/regsvr32.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/programs/regsvr32/regsvr32.c b/programs/regsvr32/regsvr32.c
index 75cc9c9..ac8760b 100644
--- a/programs/regsvr32/regsvr32.c
+++ b/programs/regsvr32/regsvr32.c
@@ -100,7 +100,7 @@ static VOID *LoadProc(const char* strDll, const char* procName, HMODULE* DllHand
if(!Silent)
printf("%s not implemented in DLL %s\n", procName, strDll);
FreeLibrary(*DllHandle);
- ExitProcess(1);
+ return NULL;
}
return proc;
}
@@ -112,6 +112,8 @@ static int RegisterDll(const char* strDll)
HMODULE DllHandle = NULL;
pfRegister = LoadProc(strDll, "DllRegisterServer", &DllHandle);
+ if (!pfRegister)
+ return 0;
hr = pfRegister();
if(FAILED(hr))
@@ -136,6 +138,9 @@ static int UnregisterDll(char* strDll)
HMODULE DllHandle = NULL;
pfUnregister = LoadProc(strDll, "DllUnregisterServer", &DllHandle);
+ if (!pfUnregister)
+ return 0;
+
hr = pfUnregister();
if(FAILED(hr))
{
@@ -159,6 +164,9 @@ static int InstallDll(BOOL install, char *strDll, WCHAR *command_line)
HMODULE DllHandle = NULL;
pfInstall = LoadProc(strDll, "DllInstall", &DllHandle);
+ if (!pfInstall)
+ return 0;
+
hr = pfInstall(install, command_line);
if(FAILED(hr))
{
More information about the wine-cvs
mailing list