Module: wine Branch: master Commit: 70a1ce995445d8f1714044b7893538c6d06f91e0 URL: http://source.winehq.org/git/wine.git/?a=commit;h=70a1ce995445d8f1714044b789...
Author: Michael Stefaniuc mstefani@redhat.de Date: Thu Jan 13 01:27:09 2011 +0100
wiaservc: COM cleanup for the IClassFactory iface.
---
dlls/wiaservc/factory.c | 11 ++++++++--- dlls/wiaservc/service.c | 5 ++--- dlls/wiaservc/wiaservc_private.h | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/dlls/wiaservc/factory.c b/dlls/wiaservc/factory.c index 30caa89..a80b830 100644 --- a/dlls/wiaservc/factory.c +++ b/dlls/wiaservc/factory.c @@ -32,6 +32,11 @@
WINE_DEFAULT_DEBUG_CHANNEL(wia);
+static inline ClassFactoryImpl *impl_from_IClassFactory(IClassFactory *iface) +{ + return CONTAINING_RECORD(iface, ClassFactoryImpl, IClassFactory_iface); +} + static ULONG WINAPI WIASERVC_IClassFactory_AddRef(LPCLASSFACTORY iface) { @@ -42,11 +47,11 @@ static HRESULT WINAPI WIASERVC_IClassFactory_QueryInterface(LPCLASSFACTORY iface, REFIID riid, LPVOID *ppvObj) { - ClassFactoryImpl *This = (ClassFactoryImpl *) iface; + ClassFactoryImpl *This = impl_from_IClassFactory(iface);
if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IClassFactory)) { - *ppvObj = &This->lpVtbl; + *ppvObj = &This->IClassFactory_iface; return S_OK; }
@@ -99,5 +104,5 @@ static const IClassFactoryVtbl WIASERVC_IClassFactory_Vtbl =
ClassFactoryImpl WIASERVC_ClassFactory = { - &WIASERVC_IClassFactory_Vtbl + { &WIASERVC_IClassFactory_Vtbl } }; diff --git a/dlls/wiaservc/service.c b/dlls/wiaservc/service.c index 14b21bd..c1cdb83 100644 --- a/dlls/wiaservc/service.c +++ b/dlls/wiaservc/service.c @@ -95,9 +95,8 @@ StartCount(void) return FALSE;
hr = CoRegisterClassObject(&CLSID_WiaDevMgr, - (IUnknown *) &WIASERVC_ClassFactory, - CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, - &dwReg); + (IUnknown *) &WIASERVC_ClassFactory.IClassFactory_iface, + CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, &dwReg); if (FAILED(hr)) return FALSE;
diff --git a/dlls/wiaservc/wiaservc_private.h b/dlls/wiaservc/wiaservc_private.h index 1032819..72c0b21 100644 --- a/dlls/wiaservc/wiaservc_private.h +++ b/dlls/wiaservc/wiaservc_private.h @@ -23,7 +23,7 @@
typedef struct { - const IClassFactoryVtbl *lpVtbl; + IClassFactory IClassFactory_iface; } ClassFactoryImpl;
extern ClassFactoryImpl WIASERVC_ClassFactory;