GetFuncIndexOfMemId should respect invkind and return

TYPE_E_ELEMENTNOTFOUND if the function cannot be found.
This commit is contained in:
Huw Davies 2004-12-07 14:18:29 +00:00 committed by Alexandre Julliard
parent b4e495574b
commit 367d16931e
1 changed files with 11 additions and 11 deletions

View File

@ -5249,18 +5249,18 @@ static HRESULT WINAPI ITypeInfo2_fnGetFuncIndexOfMemId( ITypeInfo2 * iface,
TLBFuncDesc *pFuncInfo; TLBFuncDesc *pFuncInfo;
int i; int i;
HRESULT result; HRESULT result;
/* FIXME: should check for invKind??? */
for(i=0, pFuncInfo=This->funclist;pFuncInfo && for(i = 0, pFuncInfo = This->funclist; pFuncInfo; i++, pFuncInfo=pFuncInfo->next)
memid != pFuncInfo->funcdesc.memid; i++, pFuncInfo=pFuncInfo->next); if(memid == pFuncInfo->funcdesc.memid && (invKind & pFuncInfo->funcdesc.invkind))
if(pFuncInfo){ break;
*pFuncIndex=i; if(pFuncInfo) {
result= S_OK; *pFuncIndex = i;
}else{ result = S_OK;
*pFuncIndex=0; } else
result=E_INVALIDARG; result = TYPE_E_ELEMENTNOTFOUND;
}
TRACE("(%p) memid 0x%08lx invKind 0x%04x -> %s\n", This, TRACE("(%p) memid 0x%08lx invKind 0x%04x -> %s\n", This,
memid, invKind, SUCCEEDED(result)? "SUCCES":"FAILED"); memid, invKind, SUCCEEDED(result) ? "SUCCESS" : "FAILED");
return result; return result;
} }