diff --git a/dlls/shdocvw/factory.c b/dlls/shdocvw/factory.c index 71a37aae0955afb7b8c63a320e9927aaef147fa0..58fffcbcf861b2d55866ead51edbf69d85c3e73a 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 2b2e5720d090fbb3cc903cd0dbcc5230cbc48eb2..c801718f1f33adc1edebb2839c0216d595431d0f 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; }