Module: wine Branch: master Commit: 3de56aa9a7a3eb1706b222fc6c0c6e347fce36bd URL: http://source.winehq.org/git/wine.git/?a=commit;h=3de56aa9a7a3eb1706b222fc6c...
Author: Michael Stefaniuc mstefani@redhat.de Date: Wed Jul 20 15:43:49 2011 +0200
qmgr: COM cleanup for the IClassFactory iface.
---
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;