wiaservc: COM cleanup for the IClassFactory iface.
Michael Stefaniuc
mstefani at redhat.de
Wed Jan 12 18:27:09 CST 2011
---
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;
--
1.7.3.4
More information about the wine-patches
mailing list