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