typelib: add inherency for dispatch interfaces

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Upward traversal of inherency tree didn't occur for dispinterfaces. 
Index: dlls/oleaut32/typelib.c
===================================================================
RCS file: /home/wine/wine/dlls/oleaut32/typelib.c,v
retrieving revision 1.106
diff -u -b -r1.106 typelib.c
--- dlls/oleaut32/typelib.c	25 Nov 2003 01:49:48 -0000	1.106
+++ dlls/oleaut32/typelib.c	9 Dec 2003 18:14:58 -0000
@@ -4017,8 +4017,8 @@
       }
       else
       {
-        if(This->TypeAttr.typekind==TKIND_INTERFACE && This->TypeAttr.cImplTypes )
-        {
+        if(This->TypeAttr.cImplTypes &&
+	   (This->TypeAttr.typekind==TKIND_INTERFACE || This->TypeAttr.typekind==TKIND_DISPATCH)) {
           /* recursive search */
           ITypeInfo *pTInfo;
           HRESULT result;
@@ -4162,8 +4162,8 @@
         }
     }
     /* not found, see if this is and interface with an inheritance */
-    if(This->TypeAttr.typekind==TKIND_INTERFACE &&
-            This->TypeAttr.cImplTypes ){
+    if(This->TypeAttr.cImplTypes &&
+       (This->TypeAttr.typekind==TKIND_INTERFACE || This->TypeAttr.typekind==TKIND_DISPATCH)) {
         /* recursive search */
         ITypeInfo *pTInfo;
         ret=ITypeInfo_GetRefTypeInfo(iface,
@@ -4613,7 +4613,8 @@
 	}
     }
     /* not found, look for it in inherited interfaces */
-    if (This->TypeAttr.typekind==TKIND_INTERFACE && This->TypeAttr.cImplTypes) {
+    if (This->TypeAttr.cImplTypes &&
+	(This->TypeAttr.typekind==TKIND_INTERFACE || This->TypeAttr.typekind==TKIND_DISPATCH)) {
         /* recursive search */
         ITypeInfo *pTInfo;
         HRESULT hr;
@@ -5511,7 +5512,8 @@
         }
     }
     /* not found, look for it in inherited interfaces */
-    if ((This->TypeAttr.typekind == TKIND_INTERFACE) && This->TypeAttr.cImplTypes) {
+    if (This->TypeAttr.cImplTypes &&
+	(This->TypeAttr.typekind == TKIND_INTERFACE || This->TypeAttr.typekind == TKIND_DISPATCH)) {
         /* recursive search */
         ITypeInfo *pTInfo;
         ITypeComp *pTComp;

[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux