Commit c1e89400 authored by Huw Davies's avatar Huw Davies Committed by Alexandre Julliard

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

parent b698b290
...@@ -5827,11 +5827,10 @@ func_fail: ...@@ -5827,11 +5827,10 @@ func_fail:
/* not found, look for it in inherited interfaces */ /* not found, look for it in inherited interfaces */
ITypeInfo2_GetTypeKind(iface, &type_kind); ITypeInfo2_GetTypeKind(iface, &type_kind);
if(type_kind == TKIND_INTERFACE || type_kind == TKIND_DISPATCH) { if(type_kind == TKIND_INTERFACE || type_kind == TKIND_DISPATCH) {
HREFTYPE ref_type; if(This->impltypelist) {
if(SUCCEEDED(ITypeInfo2_GetRefTypeOfImplType(iface, 0, &ref_type))) {
/* recursive search */ /* recursive search */
ITypeInfo *pTInfo; ITypeInfo *pTInfo;
hres = ITypeInfo_GetRefTypeInfo(iface, ref_type, &pTInfo); hres = ITypeInfo_GetRefTypeInfo(iface, This->impltypelist->hRef, &pTInfo);
if(SUCCEEDED(hres)){ if(SUCCEEDED(hres)){
hres = ITypeInfo_Invoke(pTInfo,pIUnk,memid,wFlags,pDispParams,pVarResult,pExcepInfo,pArgErr); hres = ITypeInfo_Invoke(pTInfo,pIUnk,memid,wFlags,pDispParams,pVarResult,pExcepInfo,pArgErr);
ITypeInfo_Release(pTInfo); ITypeInfo_Release(pTInfo);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment