Andrew Eikum : oleaut32: Finish COM cleanup for ITypeLib objects.

Alexandre Julliard julliard at winehq.org
Fri May 10 11:17:57 CDT 2013


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

Author: Andrew Eikum <aeikum at codeweavers.com>
Date:   Thu May  9 15:23:39 2013 -0500

oleaut32: Finish COM cleanup for ITypeLib objects.

---

 dlls/oleaut32/typelib.c |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c
index 3d0c88e..d42dd34 100644
--- a/dlls/oleaut32/typelib.c
+++ b/dlls/oleaut32/typelib.c
@@ -1018,6 +1018,16 @@ typedef struct tagITypeLibImpl
 static const ITypeLib2Vtbl tlbvt;
 static const ITypeCompVtbl tlbtcvt;
 
+static inline ITypeLibImpl *impl_from_ITypeLib2(ITypeLib2 *iface)
+{
+    return CONTAINING_RECORD(iface, ITypeLibImpl, ITypeLib2_iface);
+}
+
+static inline ITypeLibImpl *impl_from_ITypeLib(ITypeLib *iface)
+{
+    return impl_from_ITypeLib2((ITypeLib2*)iface);
+}
+
 static inline ITypeLibImpl *impl_from_ITypeComp( ITypeComp *iface )
 {
     return CONTAINING_RECORD(iface, ITypeLibImpl, ITypeComp_iface);
@@ -2977,7 +2987,7 @@ static HRESULT TLB_ReadTypeLib(LPCWSTR pszFileName, LPWSTR pszPath, UINT cchPath
     }
 
     if(*ppTypeLib) {
-	ITypeLibImpl *impl = (ITypeLibImpl*)*ppTypeLib;
+	ITypeLibImpl *impl = impl_from_ITypeLib2(*ppTypeLib);
 
 	TRACE("adding to cache\n");
 	impl->path = heap_alloc((strlenW(pszPath)+1) * sizeof(WCHAR));
@@ -4231,11 +4241,6 @@ static ITypeLib2* ITypeLib2_Constructor_SLTG(LPVOID pLib, DWORD dwTLBLength)
     return &pTypeLibImpl->ITypeLib2_iface;
 }
 
-static inline ITypeLibImpl *impl_from_ITypeLib2(ITypeLib2 *iface)
-{
-    return CONTAINING_RECORD(iface, ITypeLibImpl, ITypeLib2_iface);
-}
-
 static HRESULT WINAPI ITypeLib2_fnQueryInterface(ITypeLib2 *iface, REFIID riid, void **ppv)
 {
     ITypeLibImpl *This = impl_from_ITypeLib2(iface);
@@ -7102,7 +7107,7 @@ static HRESULT WINAPI ITypeInfo_fnGetRefTypeInfo(
 			SysFreeString(libnam);
 		    }
 		    if(SUCCEEDED(result)) {
-                        ref_type->pImpTLInfo->pImpTypeLib = (ITypeLibImpl*)pTLib;
+                        ref_type->pImpTLInfo->pImpTypeLib = impl_from_ITypeLib(pTLib);
                         ITypeLib_AddRef(pTLib);
 		    }
 		}




More information about the wine-cvs mailing list