Andrew Eikum : oleaut32: COM cleanup for ITypeLib object.

Alexandre Julliard julliard at winehq.org
Thu May 9 15:08:29 CDT 2013


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

Author: Andrew Eikum <aeikum at codeweavers.com>
Date:   Wed May  8 15:12:41 2013 -0500

oleaut32: COM cleanup for ITypeLib object.

---

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

diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c
index 6d37bd4..e62fa84 100644
--- a/dlls/oleaut32/typelib.c
+++ b/dlls/oleaut32/typelib.c
@@ -984,7 +984,7 @@ typedef struct tagTLBImpLib
 typedef struct tagITypeLibImpl
 {
     ITypeLib2 ITypeLib2_iface;
-    const ITypeCompVtbl *lpVtblTypeComp;
+    ITypeComp ITypeComp_iface;
     LONG ref;
     TLIBATTR LibAttr;            /* guid,lcid,syskind,version,flags */
     LCID lcid;
@@ -1020,7 +1020,7 @@ static const ITypeCompVtbl tlbtcvt;
 
 static inline ITypeLibImpl *impl_from_ITypeComp( ITypeComp *iface )
 {
-    return (ITypeLibImpl *)((char*)iface - FIELD_OFFSET(ITypeLibImpl, lpVtblTypeComp));
+    return CONTAINING_RECORD(iface, ITypeLibImpl, ITypeComp_iface);
 }
 
 /* ITypeLib methods */
@@ -2988,7 +2988,7 @@ static ITypeLibImpl* TypeLibImpl_Constructor(void)
     if (!pTypeLibImpl) return NULL;
 
     pTypeLibImpl->ITypeLib2_iface.lpVtbl = &tlbvt;
-    pTypeLibImpl->lpVtblTypeComp = &tlbtcvt;
+    pTypeLibImpl->ITypeComp_iface.lpVtbl = &tlbtcvt;
     pTypeLibImpl->ref = 1;
 
     list_init(&pTypeLibImpl->implib_list);
@@ -4438,7 +4438,7 @@ static HRESULT WINAPI ITypeLib2_fnGetTypeComp(
     ITypeLibImpl *This = impl_from_ITypeLib2(iface);
 
     TRACE("(%p)->(%p)\n",This,ppTComp);
-    *ppTComp = (ITypeComp *)&This->lpVtblTypeComp;
+    *ppTComp = &This->ITypeComp_iface;
     ITypeComp_AddRef(*ppTComp);
 
     return S_OK;




More information about the wine-cvs mailing list