James Hawkins : advpack: Factor out OCX registering into do_ocx_reg.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Apr 17 05:55:26 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 3f784a7339ec18f0d4718c3f1430a067cfea5b92
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=3f784a7339ec18f0d4718c3f1430a067cfea5b92

Author: James Hawkins <truiken at gmail.com>
Date:   Mon Apr 17 01:51:37 2006 -0500

advpack: Factor out OCX registering into do_ocx_reg.

---

 dlls/advpack/advpack.c |   23 +++++++++++++++++------
 1 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/dlls/advpack/advpack.c b/dlls/advpack/advpack.c
index 4ee3b0c..f68ab2b 100644
--- a/dlls/advpack/advpack.c
+++ b/dlls/advpack/advpack.c
@@ -392,6 +392,22 @@ HRESULT WINAPI RebootCheckOnInstallW(HWN
     return E_FAIL;
 }
 
+/* registers the OCX if do_reg is TRUE, unregisters it otherwise */
+HRESULT do_ocx_reg(HMODULE hocx, BOOL do_reg)
+{
+    DLLREGISTER reg_func;
+
+    if (do_reg)
+        reg_func = (DLLREGISTER)GetProcAddress(hocx, "DllRegisterServer");
+    else
+        reg_func = (DLLREGISTER)GetProcAddress(hocx, "DllUnregisterServer");
+
+    if (!reg_func)
+        return E_FAIL;
+
+    return reg_func();
+}
+
 /***********************************************************************
  *             RegisterOCX    (ADVPACK.@)
  *
@@ -419,7 +435,6 @@ HRESULT WINAPI RegisterOCX(HWND hWnd, HI
     LPWSTR ocx_filename, str_flags, param;
     LPWSTR cmdline_copy, cmdline_ptr;
     UNICODE_STRING cmdlineW;
-    DLLREGISTER pfnRegister;
     HRESULT hr = E_FAIL;
     HMODULE hm = NULL;
     DWORD size;
@@ -444,11 +459,7 @@ HRESULT WINAPI RegisterOCX(HWND hWnd, HI
     if (!hm)
         goto done;
 
-    pfnRegister = (DLLREGISTER)GetProcAddress(hm, "DllRegisterServer");
-    if (!pfnRegister)
-        goto done;
-
-    hr = pfnRegister();
+    hr = do_ocx_reg(hm, TRUE);
 
 done:
     FreeLibrary(hm);




More information about the wine-cvs mailing list