oleaut32: Sanity check some arguments.

This commit is contained in:
Andrew Eikum 2013-05-10 14:31:24 -05:00 committed by Alexandre Julliard
parent 3a5eef4eed
commit 787ac75045
1 changed files with 12 additions and 0 deletions

View File

@ -5498,6 +5498,9 @@ static HRESULT WINAPI ITypeInfo_fnGetFuncDesc( ITypeInfo2 *iface, UINT index,
TRACE("(%p) index %d\n", This, index);
if (!ppFuncDesc)
return E_INVALIDARG;
if (This->TypeAttr.typekind == TKIND_DISPATCH)
hr = ITypeInfoImpl_GetInternalDispatchFuncDesc((ITypeInfo *)iface, index,
&internal_funcdesc, NULL,
@ -5729,6 +5732,9 @@ static HRESULT WINAPI ITypeInfo_fnGetImplTypeFlags( ITypeInfo2 *iface,
TRACE("(%p) index %d\n", This, index);
if(!pImplTypeFlags)
return E_INVALIDARG;
if(This->TypeAttr.typekind == TKIND_DISPATCH && index == 0){
*pImplTypeFlags = 0;
return S_OK;
@ -7027,6 +7033,9 @@ static HRESULT WINAPI ITypeInfo_fnGetRefTypeInfo(
ITypeInfoImpl *This = impl_from_ITypeInfo2(iface);
HRESULT result = E_FAIL;
if(!ppTInfo)
return E_INVALIDARG;
if ((This->hreftype != -1) && (This->hreftype == hRefType))
{
*ppTInfo = (ITypeInfo *)&This->ITypeInfo2_iface;
@ -7424,6 +7433,9 @@ static HRESULT WINAPI ITypeInfo2_fnGetCustData(
TRACE("%p %s %p\n", This, debugstr_guid(guid), pVarVal);
if(!guid || !pVarVal)
return E_INVALIDARG;
pCData = TLB_get_custdata_by_guid(&This->custdata_list, guid);
VariantInit( pVarVal);