Piotr Caban : oleaut32: Improve ITypeInfo2 GetRefTypeOfImplType implementation.

Alexandre Julliard julliard at winehq.org
Thu Mar 18 11:19:29 CDT 2010


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Wed Mar 17 22:06:11 2010 +0100

oleaut32: Improve ITypeInfo2 GetRefTypeOfImplType implementation.

---

 dlls/oleaut32/typelib2.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/dlls/oleaut32/typelib2.c b/dlls/oleaut32/typelib2.c
index 71d725c..8816e9d 100644
--- a/dlls/oleaut32/typelib2.c
+++ b/dlls/oleaut32/typelib2.c
@@ -3016,17 +3016,18 @@ static HRESULT WINAPI ITypeInfo2_fnGetRefTypeOfImplType(
     if(!pRefType)
         return E_INVALIDARG;
 
-    if(index == -1) {
-        if((This->typeinfo->typekind&0xf)==TKIND_DISPATCH
-                && (This->typeinfo->flags&TYPEFLAG_FDUAL)) {
+    if(This->typeinfo->flags&TYPEFLAG_FDUAL) {
+        if(index == -1) {
             *pRefType = -2;
             return S_OK;
         }
 
-        return TYPE_E_ELEMENTNOTFOUND;
+        if(This->typekind == TKIND_DISPATCH)
+            return ITypeInfo2_GetRefTypeOfImplType((ITypeInfo2*)&This->dual->lpVtblTypeInfo2,
+                    index, pRefType);
     }
 
-    if(index >= This->typeinfo->cImplTypes)
+    if(index>=This->typeinfo->cImplTypes)
         return TYPE_E_ELEMENTNOTFOUND;
 
     if(This->typekind == TKIND_INTERFACE) {




More information about the wine-cvs mailing list