From 0197c2c2928eb6d6f4833243b96769f2151643ec Mon Sep 17 00:00:00 2001 From: Jacek Caban <jacek@codeweavers.com> Date: Tue, 20 Feb 2007 17:13:27 +0100 Subject: [PATCH] shdocvw: Fix module ref counting. --- dlls/shdocvw/factory.c | 1 + dlls/shdocvw/urlhist.c | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/dlls/shdocvw/factory.c b/dlls/shdocvw/factory.c index 71a37aae095..58fffcbcf86 100644 --- a/dlls/shdocvw/factory.c +++ b/dlls/shdocvw/factory.c @@ -54,6 +54,7 @@ static HRESULT WINAPI WBCF_QueryInterface(LPCLASSFACTORY iface, if(IsEqualGUID(&IID_IUnknown, riid) || IsEqualGUID(&IID_IClassFactory, riid)) { *ppobj = iface; + IClassFactory_AddRef(iface); return S_OK; } diff --git a/dlls/shdocvw/urlhist.c b/dlls/shdocvw/urlhist.c index 2b2e5720d09..c801718f1f3 100644 --- a/dlls/shdocvw/urlhist.c +++ b/dlls/shdocvw/urlhist.c @@ -37,9 +37,10 @@ static HRESULT WINAPI UrlHistoryStg_QueryInterface(IUrlHistoryStg2 *iface, REFII *ppv = iface; } - if(*ppv) + if(*ppv) { + IUnknown_AddRef((IUnknown*)*ppv); return S_OK; - + } WARN("(%s %p)\n", debugstr_guid(riid), ppv); return E_NOINTERFACE; @@ -47,11 +48,13 @@ static HRESULT WINAPI UrlHistoryStg_QueryInterface(IUrlHistoryStg2 *iface, REFII static ULONG WINAPI UrlHistoryStg_AddRef(IUrlHistoryStg2 *iface) { + SHDOCVW_LockModule(); return 2; } static ULONG WINAPI UrlHistoryStg_Release(IUrlHistoryStg2 *iface) { + SHDOCVW_UnlockModule(); return 1; } -- GitLab