diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c index f8d7136..48de363 100644 --- a/dlls/oleaut32/typelib.c +++ b/dlls/oleaut32/typelib.c @@ -1701,6 +1701,19 @@ static inline TLBFuncDesc *TLB_get_funcdesc_by_memberid(ITypeInfoImpl *typeinfo, return NULL; } +static inline TLBFuncDesc *TLB_get_funcdesc_by_memberid_invkind(ITypeInfoImpl *typeinfo, MEMBERID memid, INVOKEKIND invKind) +{ + int i; + + for (i = 0; i < typeinfo->typeattr.cFuncs; ++i) + { + if (typeinfo->funcdescs[i].funcdesc.memid == memid && typeinfo->funcdescs[i].funcdesc.invkind == invKind) + return &typeinfo->funcdescs[i]; + } + + return NULL; +} + static inline TLBVarDesc *TLB_get_vardesc_by_memberid(ITypeInfoImpl *typeinfo, MEMBERID memid) { int i; @@ -7804,7 +7817,7 @@ static HRESULT WINAPI ITypeInfo_fnGetDllEntry( ITypeInfo2 *iface, MEMBERID memid if (This->typeattr.typekind != TKIND_MODULE) return TYPE_E_BADMODULEKIND; - pFDesc = TLB_get_funcdesc_by_memberid(This, memid); + pFDesc = TLB_get_funcdesc_by_memberid_invkind(This, memid, invKind); if(pFDesc){ dump_TypeInfo(This); if (TRACE_ON(ole))