ole32: Cleanup ItemMonikerImpl_QueryInterface().

This commit is contained in:
Michael Stefaniuc 2011-08-24 12:18:49 +02:00 committed by Alexandre Julliard
parent d3c934adcd
commit 82b3d35b73
1 changed files with 15 additions and 22 deletions

View File

@ -67,23 +67,17 @@ static HRESULT WINAPI ItemMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid
{ {
ItemMonikerImpl *This = impl_from_IMoniker(iface); ItemMonikerImpl *This = impl_from_IMoniker(iface);
TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppvObject); TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppvObject);
/* Perform a sanity check on the parameters.*/ if (!ppvObject)
if ( (This==0) || (ppvObject==0) ) return E_INVALIDARG;
return E_INVALIDARG;
/* Initialize the return parameter */
*ppvObject = 0;
/* Compare the riid with the interface IDs implemented by this object.*/
if (IsEqualIID(&IID_IUnknown, riid) ||
IsEqualIID(&IID_IPersist, riid) ||
IsEqualIID(&IID_IPersistStream, riid) ||
IsEqualIID(&IID_IMoniker, riid)
)
*ppvObject = iface;
/* Compare the riid with the interface IDs implemented by this object.*/
if (IsEqualIID(&IID_IUnknown, riid) ||
IsEqualIID(&IID_IPersist, riid) ||
IsEqualIID(&IID_IPersistStream, riid) ||
IsEqualIID(&IID_IMoniker, riid))
*ppvObject = iface;
else if (IsEqualIID(&IID_IROTData, riid)) else if (IsEqualIID(&IID_IROTData, riid))
*ppvObject = &This->IROTData_iface; *ppvObject = &This->IROTData_iface;
else if (IsEqualIID(&IID_IMarshal, riid)) else if (IsEqualIID(&IID_IMarshal, riid))
@ -95,15 +89,14 @@ static HRESULT WINAPI ItemMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid
return hr; return hr;
return IUnknown_QueryInterface(This->pMarshal, riid, ppvObject); return IUnknown_QueryInterface(This->pMarshal, riid, ppvObject);
} }
else
/* Check that we obtained an interface.*/ {
if ((*ppvObject)==0) *ppvObject = NULL;
return E_NOINTERFACE; return E_NOINTERFACE;
}
/* Query Interface always increases the reference count by one when it is successful */ IMoniker_AddRef(iface);
IMoniker_AddRef(iface); return S_OK;
return S_OK;
} }
/****************************************************************************** /******************************************************************************