Andrew Eikum : oleaut32: Also search local typeinfos in ITypeInfo:: GetRefTypeInfo.

Alexandre Julliard julliard at winehq.org
Thu May 16 13:55:07 CDT 2013


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

Author: Andrew Eikum <aeikum at codeweavers.com>
Date:   Thu May 16 09:30:38 2013 -0500

oleaut32: Also search local typeinfos in ITypeInfo::GetRefTypeInfo.

---

 dlls/oleaut32/typelib.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c
index 6a2a594..9ffcaaa 100644
--- a/dlls/oleaut32/typelib.c
+++ b/dlls/oleaut32/typelib.c
@@ -7089,6 +7089,19 @@ static HRESULT WINAPI ITypeInfo_fnGetRefTypeInfo(
         result = ITypeInfoImpl_GetDispatchRefTypeInfo((ITypeInfo *)iface, &href_dispatch, ppTInfo);
     } else {
         TLBRefType *ref_type;
+        UINT i;
+
+        for(i = 0; i < This->pTypeLib->TypeInfoCount; ++i)
+        {
+            if (This->pTypeLib->typeinfos[i]->hreftype == hRefType)
+            {
+                result = S_OK;
+                *ppTInfo = (ITypeInfo*)This->pTypeLib->typeinfos[i];
+                ITypeInfo_AddRef(*ppTInfo);
+                goto end;
+            }
+        }
+
         LIST_FOR_EACH_ENTRY(ref_type, &This->pTypeLib->ref_list, TLBRefType, entry)
         {
             if(ref_type->reference == hRefType)




More information about the wine-cvs mailing list