Module: wine Branch: master Commit: 926d3a88e7b5f9878bb8af35a3317a807721621b URL: http://source.winehq.org/git/wine.git/?a=commit;h=926d3a88e7b5f9878bb8af35a3...
Author: Piotr Caban piotr@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) {