Module: wine Branch: refs/heads/master Commit: 3f784a7339ec18f0d4718c3f1430a067cfea5b92 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=3f784a7339ec18f0d4718c3f...
Author: James Hawkins truiken@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);