diff --git a/programs/oleview/typelib.c b/programs/oleview/typelib.c index 217ce7d99f6..922fa112e79 100644 --- a/programs/oleview/typelib.c +++ b/programs/oleview/typelib.c @@ -512,12 +512,17 @@ static int EnumFuncs(ITypeInfo *pTypeInfo, TYPEATTR *pTypeAttr, HTREEITEM hParen cFuncs = pTypeAttr->cFuncs; - for(i=0; iwTypeFlags & TYPEFLAG_FDUAL) { /* skip 7 members of IDispatch */ + cFuncs += 7; + i += 7; + } + + for(; iwTypeFlags & TYPEFLAG_FDUAL && pFuncDesc->memid >= MIN_FUNC_ID) continue; if(FAILED(ITypeInfo_GetDocumentation(pTypeInfo, pFuncDesc->memid, &bstrName, &bstrHelpString, NULL, NULL))) continue; @@ -529,7 +534,7 @@ static int EnumFuncs(ITypeInfo *pTypeInfo, TYPEATTR *pTypeAttr, HTREEITEM hParen U(tvis).item.pszText = bstrName; U(tvis).item.lParam = (LPARAM) tld; bFirst = TRUE; - if(pFuncDesc->memid < MIN_FUNC_ID) + if(pFuncDesc->memid < MIN_FUNC_ID || pTypeAttr->wTypeFlags & TYPEFLAG_FDUAL) { AddToTLDataStrW(tld, wszOpenBrackets1); bFirst = FALSE;