From 41dce7cfec131b4e95fb81b69f451ff008ce57bc Mon Sep 17 00:00:00 2001 From: Michael Stefaniuc Date: Mon, 29 Nov 2010 01:01:31 +0100 Subject: [PATCH] msimtf: Use an interface instance instead of a vtbl pointer. --- dlls/msimtf/main.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/dlls/msimtf/main.c b/dlls/msimtf/main.c index 6b8957ba39..dab1e273ac 100644 --- a/dlls/msimtf/main.c +++ b/dlls/msimtf/main.c @@ -60,11 +60,16 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv) } typedef struct { - const IClassFactoryVtbl *lpClassFactoryVtbl; + IClassFactory IClassFactory_iface; HRESULT (*cf)(IUnknown*,IUnknown**); } ClassFactory; +static inline ClassFactory *impl_from_IClassFactory(IClassFactory *iface) +{ + return CONTAINING_RECORD(iface, ClassFactory, IClassFactory_iface); +} + static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv) { @@ -100,7 +105,7 @@ static ULONG WINAPI ClassFactory_Release(IClassFactory *iface) static HRESULT WINAPI ClassFactory_CreateInstance(IClassFactory *iface, IUnknown *pOuter, REFIID riid, void **ppv) { - ClassFactory *This = (ClassFactory*)iface; + ClassFactory *This = impl_from_IClassFactory(iface); HRESULT ret; IUnknown *obj; TRACE("(%p, %p, %s, %p)\n", iface, pOuter, debugstr_guid(riid), ppv); @@ -135,7 +140,7 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv) { if(IsEqualGUID(&CLSID_CActiveIMM, rclsid)) { static ClassFactory cf = { - &ClassFactoryVtbl, + { &ClassFactoryVtbl }, ActiveIMMApp_Constructor, };