Piotr Caban : oleaut32: Improve ITypeInfo2 GetTypeAttr implementation.

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


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

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

oleaut32: Improve ITypeInfo2 GetTypeAttr implementation.

---

 dlls/oleaut32/tests/typelib.c |    2 +-
 dlls/oleaut32/typelib2.c      |    2 ++
 2 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/dlls/oleaut32/tests/typelib.c b/dlls/oleaut32/tests/typelib.c
index 797ac02..6e44f58 100644
--- a/dlls/oleaut32/tests/typelib.c
+++ b/dlls/oleaut32/tests/typelib.c
@@ -1386,7 +1386,7 @@ static void test_CreateTypeLib(void) {
     ok(hres == S_OK, "got %08x\n", hres);
     ok(typeattr->cbSizeInstance == 4, "cbSizeInstance = %d\n", typeattr->cbSizeInstance);
     ok(typeattr->typekind == 4, "typekind = %d\n", typeattr->typekind);
-    todo_wine ok(typeattr->cFuncs == 8, "cFuncs = %d\n", typeattr->cFuncs);
+    ok(typeattr->cFuncs == 8, "cFuncs = %d\n", typeattr->cFuncs);
     ok(typeattr->cVars == 0, "cVars = %d\n", typeattr->cVars);
     ok(typeattr->cImplTypes == 1, "cImplTypes = %d\n", typeattr->cImplTypes);
     ok(typeattr->cbSizeVft == 28, "cbSizeVft = %d\n", typeattr->cbSizeVft);
diff --git a/dlls/oleaut32/typelib2.c b/dlls/oleaut32/typelib2.c
index 08b8684..a6e12cd 100644
--- a/dlls/oleaut32/typelib2.c
+++ b/dlls/oleaut32/typelib2.c
@@ -2919,6 +2919,8 @@ static HRESULT WINAPI ITypeInfo2_fnGetTypeAttr(
     (*ppTypeAttr)->cbSizeInstance = This->typeinfo->size;
     (*ppTypeAttr)->typekind = This->typekind;
     (*ppTypeAttr)->cFuncs = This->typeinfo->cElement&0xffff;
+    if(This->typeinfo->flags&TYPEFLAG_FDUAL && This->typekind==TKIND_DISPATCH)
+        (*ppTypeAttr)->cFuncs += 7;
     (*ppTypeAttr)->cVars = This->typeinfo->cElement>>16;
     (*ppTypeAttr)->cImplTypes = This->typeinfo->cImplTypes;
     (*ppTypeAttr)->cbSizeVft = This->typekind==TKIND_DISPATCH ? 28 : This->typeinfo->cbSizeVft;




More information about the wine-cvs mailing list