Module: wine Branch: master Commit: 65ca6a2f4dbe3d5cdf6a52e7642eefd781b0d7a4 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=65ca6a2f4dbe3d5cdf6a52e7...
Author: Robert Shearman rob@codeweavers.com Date: Mon Oct 2 18:25:40 2006 +0100
oleaut32: Make ITypeInfo::GetDocumentation work for functions/variables in inherited interfaces.
---
dlls/oleaut32/typelib.c | 17 +++++++++++++++++ 1 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c index ccca8c3..c714f62 100644 --- a/dlls/oleaut32/typelib.c +++ b/dlls/oleaut32/typelib.c @@ -5579,6 +5579,23 @@ static HRESULT WINAPI ITypeInfo_fnGetDoc return S_OK; } } + + if(This->TypeAttr.cImplTypes && + (This->TypeAttr.typekind==TKIND_INTERFACE || This->TypeAttr.typekind==TKIND_DISPATCH)) { + /* recursive search */ + ITypeInfo *pTInfo; + HRESULT result; + result = ITypeInfo_GetRefTypeInfo(iface, This->impltypelist->hRef, + &pTInfo); + if(SUCCEEDED(result)) { + result = ITypeInfo_GetDocumentation(pTInfo, memid, pBstrName, + pBstrDocString, pdwHelpContext, pBstrHelpFile); + ITypeInfo_Release(pTInfo); + return result; + } + WARN("Could not search inherited interface!\n"); + } + WARN("member %ld not found\n", memid); return TYPE_E_ELEMENTNOTFOUND; }