Piotr Caban : oleview: Skip IDispatch functions in dual interfaces properly .
Alexandre Julliard
julliard at winehq.org
Fri Apr 11 06:28:20 CDT 2008
Module: wine
Branch: master
Commit: af1c1484d71fd560520046efa441c23bf80093f1
URL: http://source.winehq.org/git/wine.git/?a=commit;h=af1c1484d71fd560520046efa441c23bf80093f1
Author: Piotr Caban <piotr.caban at gmail.com>
Date: Fri Apr 11 01:10:07 2008 +0200
oleview: Skip IDispatch functions in dual interfaces properly.
---
programs/oleview/typelib.c | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/programs/oleview/typelib.c b/programs/oleview/typelib.c
index 217ce7d..922fa11 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; i<cFuncs; i++)
+ i = 0;
+ if(pTypeAttr->wTypeFlags & TYPEFLAG_FDUAL) { /* skip 7 members of IDispatch */
+ cFuncs += 7;
+ i += 7;
+ }
+
+ for(; i<cFuncs; i++)
{
TYPELIB_DATA *tld;
if(FAILED(ITypeInfo_GetFuncDesc(pTypeInfo, i, &pFuncDesc))) continue;
- if(pTypeAttr->wTypeFlags & 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;
More information about the wine-cvs
mailing list