From: Alistair Leslie-Hughes leslie_alistair@hotmail.com
The TYPEFLAG_FDISPATCHABLE is a calculated flag that signals the interface has a base of IDispatch. --- dlls/oleaut32/typelib.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c index c4f00ca5bea..d59118a98e5 100644 --- a/dlls/oleaut32/typelib.c +++ b/dlls/oleaut32/typelib.c @@ -7845,7 +7845,8 @@ static HRESULT WINAPI ITypeInfo_fnGetRefTypeInfo( pTypeInfoImpl->ref = 0; list_init(&pTypeInfoImpl->custdata_list);
- if (This->typeattr.typekind == TKIND_INTERFACE) + if (This->typeattr.typekind == TKIND_INTERFACE && + This->typeattr.wTypeFlags & TYPEFLAG_FDISPATCHABLE) pTypeInfoImpl->typeattr.typekind = TKIND_DISPATCH; else pTypeInfoImpl->typeattr.typekind = TKIND_INTERFACE;