Robert Shearman : oleaut32: Make ITypeInfo:: GetDocumentation work for functions/variables in inherited interfaces.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Oct 2 15:00:53 CDT 2006


Module: wine
Branch: master
Commit: 65ca6a2f4dbe3d5cdf6a52e7642eefd781b0d7a4
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=65ca6a2f4dbe3d5cdf6a52e7642eefd781b0d7a4

Author: Robert Shearman <rob at 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;
 }




More information about the wine-cvs mailing list