qmgr: COM cleanup for the IClassFactory iface.
Michael Stefaniuc
mstefani at redhat.de
Wed Jul 20 08:43:49 CDT 2011
---
dlls/qmgr/factory.c | 23 ++++++++++-------------
dlls/qmgr/qmgr.h | 2 +-
dlls/qmgr/service.c | 5 ++---
3 files changed, 13 insertions(+), 17 deletions(-)
diff --git a/dlls/qmgr/factory.c b/dlls/qmgr/factory.c
index 34c5ac0..222f5df 100644
--- a/dlls/qmgr/factory.c
+++ b/dlls/qmgr/factory.c
@@ -26,20 +26,17 @@
WINE_DEFAULT_DEBUG_CHANNEL(qmgr);
static ULONG WINAPI
-BITS_IClassFactory_AddRef(LPCLASSFACTORY iface)
+BITS_IClassFactory_AddRef(IClassFactory *iface)
{
- return 2;
+ return 2; /* non-heap based object */
}
static HRESULT WINAPI
-BITS_IClassFactory_QueryInterface(LPCLASSFACTORY iface, REFIID riid,
- LPVOID *ppvObj)
+BITS_IClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppvObj)
{
- ClassFactoryImpl *This = (ClassFactoryImpl *) iface;
-
if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IClassFactory))
{
- *ppvObj = &This->lpVtbl;
+ *ppvObj = &BITS_ClassFactory.IClassFactory_iface;
return S_OK;
}
@@ -48,14 +45,14 @@ BITS_IClassFactory_QueryInterface(LPCLASSFACTORY iface, REFIID riid,
}
static ULONG WINAPI
-BITS_IClassFactory_Release(LPCLASSFACTORY iface)
+BITS_IClassFactory_Release(IClassFactory *iface)
{
- return 1;
+ return 1; /* non-heap based object */
}
static HRESULT WINAPI
-BITS_IClassFactory_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pUnkOuter,
- REFIID riid, LPVOID *ppvObj)
+BITS_IClassFactory_CreateInstance(IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid,
+ void **ppvObj)
{
HRESULT res;
IUnknown *punk = NULL;
@@ -75,7 +72,7 @@ BITS_IClassFactory_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pUnkOuter,
}
static HRESULT WINAPI
-BITS_IClassFactory_LockServer(LPCLASSFACTORY iface, BOOL fLock)
+BITS_IClassFactory_LockServer(IClassFactory *iface, BOOL fLock)
{
FIXME("Not implemented\n");
return E_NOTIMPL;
@@ -92,5 +89,5 @@ static const IClassFactoryVtbl BITS_IClassFactory_Vtbl =
ClassFactoryImpl BITS_ClassFactory =
{
- &BITS_IClassFactory_Vtbl
+ { &BITS_IClassFactory_Vtbl }
};
diff --git a/dlls/qmgr/qmgr.h b/dlls/qmgr/qmgr.h
index d0255d6..c504396 100644
--- a/dlls/qmgr/qmgr.h
+++ b/dlls/qmgr/qmgr.h
@@ -90,7 +90,7 @@ typedef struct
typedef struct
{
- const IClassFactoryVtbl *lpVtbl;
+ IClassFactory IClassFactory_iface;
} ClassFactoryImpl;
extern HANDLE stop_event DECLSPEC_HIDDEN;
diff --git a/dlls/qmgr/service.c b/dlls/qmgr/service.c
index b7dc7c3..6abb804 100644
--- a/dlls/qmgr/service.c
+++ b/dlls/qmgr/service.c
@@ -95,9 +95,8 @@ StartCount(void)
return FALSE;
hr = CoRegisterClassObject(&CLSID_BackgroundCopyManager,
- (IUnknown *) &BITS_ClassFactory,
- CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE,
- &dwReg);
+ (IUnknown *) &BITS_ClassFactory.IClassFactory_iface,
+ CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, &dwReg);
if (FAILED(hr))
return FALSE;
--
1.7.4.4
More information about the wine-patches
mailing list