From 3799ad3482754e56b625dcc923de4a94e54ab859 Mon Sep 17 00:00:00 2001 From: Michael Stefaniuc Date: Sun, 23 Jan 2011 21:01:44 +0100 Subject: [PATCH] ddrawex: COM cleanup for the IClassFactory iface. --- dlls/ddrawex/ddrawex_private.h | 10 ------- dlls/ddrawex/main.c | 52 ++++++++++++++++++++-------------- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/dlls/ddrawex/ddrawex_private.h b/dlls/ddrawex/ddrawex_private.h index 3e7a0e220c..079b26cf93 100644 --- a/dlls/ddrawex/ddrawex_private.h +++ b/dlls/ddrawex/ddrawex_private.h @@ -43,16 +43,6 @@ DECLARE_INTERFACE_(IDirectDrawFactory, IUnknown) #define IDirectDrawFactory_DirectDrawEnumerate(p,a,b) (p)->lpVtbl->_DirectDrawEnumerate(p,a,b) #endif -/****************************************************************************** - * DirectDraw ClassFactory implementation - incomplete - ******************************************************************************/ -typedef struct -{ - const IClassFactoryVtbl *lpVtbl; - LONG ref; - HRESULT (*pfnCreateInstance)(IUnknown *pUnkOuter, REFIID iid, LPVOID *ppObj); -} IClassFactoryImpl; - /****************************************************************************** * DirectDrawFactory implementation diff --git a/dlls/ddrawex/main.c b/dlls/ddrawex/main.c index c93d8eb7af..b5923e2807 100644 --- a/dlls/ddrawex/main.c +++ b/dlls/ddrawex/main.c @@ -39,16 +39,29 @@ WINE_DEFAULT_DEBUG_CHANNEL(ddrawex); static HINSTANCE instance; +/****************************************************************************** + * DirectDraw ClassFactory implementation + ******************************************************************************/ +typedef struct +{ + IClassFactory IClassFactory_iface; + LONG ref; + HRESULT (*pfnCreateInstance)(IUnknown *pUnkOuter, REFIID iid, LPVOID *ppObj); +} IClassFactoryImpl; + +static inline IClassFactoryImpl *impl_from_IClassFactory(IClassFactory *iface) +{ + return CONTAINING_RECORD(iface, IClassFactoryImpl, IClassFactory_iface); +} + /******************************************************************************* * IDirectDrawClassFactory::QueryInterface * *******************************************************************************/ -static HRESULT WINAPI -IDirectDrawClassFactoryImpl_QueryInterface(IClassFactory *iface, - REFIID riid, - void **obj) +static HRESULT WINAPI IDirectDrawClassFactoryImpl_QueryInterface(IClassFactory *iface, REFIID riid, + void **obj) { - IClassFactoryImpl *This = (IClassFactoryImpl*) iface; + IClassFactoryImpl *This = impl_from_IClassFactory(iface); TRACE("(%p)->(%s,%p)\n", This, debugstr_guid(riid), obj); @@ -68,10 +81,9 @@ IDirectDrawClassFactoryImpl_QueryInterface(IClassFactory *iface, * IDirectDrawClassFactory::AddRef * *******************************************************************************/ -static ULONG WINAPI -IDirectDrawClassFactoryImpl_AddRef(IClassFactory *iface) +static ULONG WINAPI IDirectDrawClassFactoryImpl_AddRef(IClassFactory *iface) { - IClassFactoryImpl *This = (IClassFactoryImpl*) iface; + IClassFactoryImpl *This = impl_from_IClassFactory(iface); ULONG ref = InterlockedIncrement(&This->ref); TRACE("(%p)->() incrementing from %d.\n", This, ref - 1); @@ -83,11 +95,11 @@ IDirectDrawClassFactoryImpl_AddRef(IClassFactory *iface) * IDirectDrawClassFactory::Release * *******************************************************************************/ -static ULONG WINAPI -IDirectDrawClassFactoryImpl_Release(IClassFactory *iface) +static ULONG WINAPI IDirectDrawClassFactoryImpl_Release(IClassFactory *iface) { - IClassFactoryImpl *This = (IClassFactoryImpl*) iface; + IClassFactoryImpl *This = impl_from_IClassFactory(iface); ULONG ref = InterlockedDecrement(&This->ref); + TRACE("(%p)->() decrementing from %d.\n", This, ref+1); if (ref == 0) @@ -101,13 +113,10 @@ IDirectDrawClassFactoryImpl_Release(IClassFactory *iface) * IDirectDrawClassFactory::CreateInstance * *******************************************************************************/ -static HRESULT WINAPI -IDirectDrawClassFactoryImpl_CreateInstance(IClassFactory *iface, - IUnknown *UnkOuter, - REFIID riid, - void **obj) +static HRESULT WINAPI IDirectDrawClassFactoryImpl_CreateInstance(IClassFactory *iface, + IUnknown *UnkOuter, REFIID riid, void **obj) { - IClassFactoryImpl *This = (IClassFactoryImpl*) iface; + IClassFactoryImpl *This = impl_from_IClassFactory(iface); TRACE("(%p)->(%p,%s,%p)\n",This,UnkOuter,debugstr_guid(riid),obj); @@ -118,11 +127,12 @@ IDirectDrawClassFactoryImpl_CreateInstance(IClassFactory *iface, * IDirectDrawClassFactory::LockServer * *******************************************************************************/ -static HRESULT WINAPI -IDirectDrawClassFactoryImpl_LockServer(IClassFactory *iface,BOOL dolock) +static HRESULT WINAPI IDirectDrawClassFactoryImpl_LockServer(IClassFactory *iface,BOOL dolock) { - IClassFactoryImpl *This = (IClassFactoryImpl*) iface; + IClassFactoryImpl *This = impl_from_IClassFactory(iface); + FIXME("(%p)->(%d),stub!\n",This,dolock); + return S_OK; } @@ -287,7 +297,7 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv) factory = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*factory)); if (factory == NULL) return E_OUTOFMEMORY; - factory->lpVtbl = &IClassFactory_Vtbl; + factory->IClassFactory_iface.lpVtbl = &IClassFactory_Vtbl; factory->ref = 1; factory->pfnCreateInstance = CreateDirectDrawFactory; -- 2.32.0.93.g670b81a890