Avoid a refcount leak in QueryInterface when delegating.

And a couple of minor bugs.
This commit is contained in:
Andrew Lewycky 2000-03-17 15:07:24 +00:00 committed by Alexandre Julliard
parent d33bcb6139
commit d28ded3d69

View File

@ -532,7 +532,7 @@ static void DefaultHandler_Destroy(
*/
if (ptrToDestroy->oleAdviseHolder!=NULL)
{
IOleClientSite_Release(ptrToDestroy->oleAdviseHolder);
IOleAdviseHolder_Release(ptrToDestroy->oleAdviseHolder);
ptrToDestroy->oleAdviseHolder = NULL;
}
@ -541,7 +541,7 @@ static void DefaultHandler_Destroy(
*/
if (ptrToDestroy->dataAdviseHolder!=NULL)
{
IOleClientSite_Release(ptrToDestroy->dataAdviseHolder);
IDataAdviseHolder_Release(ptrToDestroy->dataAdviseHolder);
ptrToDestroy->dataAdviseHolder = NULL;
}
@ -607,7 +607,8 @@ static HRESULT WINAPI DefaultHandler_NDIUnknown_QueryInterface(
/*
* Blind aggregate the data cache to "inherit" it's interfaces.
*/
IUnknown_QueryInterface(this->dataCache, riid, ppvObject);
if (IUnknown_QueryInterface(this->dataCache, riid, ppvObject) == S_OK)
return S_OK;
}
/*
@ -780,9 +781,9 @@ static HRESULT WINAPI DefaultHandler_GetClientSite(
*ppClientSite = this->clientSite;
if (*ppClientSite!=NULL)
if (this->clientSite != NULL)
{
IOleClientSite_Release(*ppClientSite);
IOleClientSite_AddRef(this->clientSite);
}
return S_OK;