Module: wine Branch: master Commit: b2603687ccac5a6ce51132a1da9a7111cf5e2326 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b2603687ccac5a6ce51132a1da...
Author: Rob Shearman rob@codeweavers.com Date: Sat Apr 12 10:06:56 2008 +0100
qmgr: Dynamically link to advpack.dll.
Use RegInstall instead of RegInstallA as RegInstallA isn't available in some native versions of advpack commonly installed by programs.
---
dlls/qmgr/Makefile.in | 2 +- dlls/qmgr/qmgr_main.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/dlls/qmgr/Makefile.in b/dlls/qmgr/Makefile.in index de636db..57609ca 100644 --- a/dlls/qmgr/Makefile.in +++ b/dlls/qmgr/Makefile.in @@ -3,7 +3,7 @@ TOPOBJDIR = ../.. SRCDIR = @srcdir@ VPATH = @srcdir@ MODULE = qmgr.dll -IMPORTS = advpack wininet urlmon ole32 advapi32 kernel32 +IMPORTS = wininet urlmon ole32 advapi32 kernel32 EXTRALIBS = -luuid
C_SRCS = \ diff --git a/dlls/qmgr/qmgr_main.c b/dlls/qmgr/qmgr_main.c index 2a21a28..5094874 100644 --- a/dlls/qmgr/qmgr_main.c +++ b/dlls/qmgr/qmgr_main.c @@ -141,6 +141,9 @@ static HRESULT register_server(BOOL do_register) { HRESULT hr; STRTABLEA strtable; + HMODULE hAdvpack; + HRESULT (WINAPI *pRegInstall)(HMODULE hm, LPCSTR pszSection, const STRTABLEA* pstTable); + static const WCHAR wszAdvpack[] = {'a','d','v','p','a','c','k','.','d','l','l',0};
TRACE("(%x)\n", do_register);
@@ -150,9 +153,12 @@ static HRESULT register_server(BOOL do_register) return hr; }
+ hAdvpack = LoadLibraryW(wszAdvpack); + pRegInstall = (void *)GetProcAddress(hAdvpack, "RegInstall"); + hr = init_register_strtable(&strtable); if (SUCCEEDED(hr)) - hr = RegInstallA(hInst, do_register ? "RegisterDll" : "UnregisterDll", + hr = pRegInstall(hInst, do_register ? "RegisterDll" : "UnregisterDll", &strtable); cleanup_register_strtable(&strtable);