oleaut32: Recurse through the impltype list so that dispinterfaces get the correct parents.

This commit is contained in:
Huw Davies 2007-05-18 14:35:24 +01:00 committed by Alexandre Julliard
parent b698b2909b
commit c1e89400aa
1 changed files with 2 additions and 3 deletions

View File

@ -5827,11 +5827,10 @@ func_fail:
/* not found, look for it in inherited interfaces */
ITypeInfo2_GetTypeKind(iface, &type_kind);
if(type_kind == TKIND_INTERFACE || type_kind == TKIND_DISPATCH) {
HREFTYPE ref_type;
if(SUCCEEDED(ITypeInfo2_GetRefTypeOfImplType(iface, 0, &ref_type))) {
if(This->impltypelist) {
/* recursive search */
ITypeInfo *pTInfo;
hres = ITypeInfo_GetRefTypeInfo(iface, ref_type, &pTInfo);
hres = ITypeInfo_GetRefTypeInfo(iface, This->impltypelist->hRef, &pTInfo);
if(SUCCEEDED(hres)){
hres = ITypeInfo_Invoke(pTInfo,pIUnk,memid,wFlags,pDispParams,pVarResult,pExcepInfo,pArgErr);
ITypeInfo_Release(pTInfo);