qmgr: COM cleanup for the IBackgroundCopyManager iface.

This commit is contained in:
Michael Stefaniuc 2012-12-04 00:57:09 +01:00 committed by Alexandre Julliard
parent cd465edb00
commit a3fdfa22ff
2 changed files with 33 additions and 53 deletions

View File

@ -23,52 +23,39 @@
WINE_DEFAULT_DEBUG_CHANNEL(qmgr); WINE_DEFAULT_DEBUG_CHANNEL(qmgr);
/* Add a reference to the iface pointer */ BackgroundCopyManagerImpl globalMgr;
static ULONG WINAPI BITS_IBackgroundCopyManager_AddRef(
IBackgroundCopyManager* iface) static HRESULT WINAPI BITS_IBackgroundCopyManager_QueryInterface(IBackgroundCopyManager *iface,
REFIID riid, void **ppv)
{
TRACE("(%p,%s,%p)\n", iface, debugstr_guid(riid), ppv);
if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IBackgroundCopyManager))
{
*ppv = iface;
IBackgroundCopyManager_AddRef(iface);
return S_OK;
}
*ppv = NULL;
return E_NOINTERFACE;
}
static ULONG WINAPI BITS_IBackgroundCopyManager_AddRef(IBackgroundCopyManager *iface)
{ {
return 2; return 2;
} }
/* Attempt to provide a new interface to interact with iface */ static ULONG WINAPI BITS_IBackgroundCopyManager_Release(IBackgroundCopyManager *iface)
static HRESULT WINAPI BITS_IBackgroundCopyManager_QueryInterface(
IBackgroundCopyManager* iface,
REFIID riid,
LPVOID *ppvObject)
{
BackgroundCopyManagerImpl * This = (BackgroundCopyManagerImpl *)iface;
TRACE("IID: %s\n", debugstr_guid(riid));
if (IsEqualGUID(riid, &IID_IUnknown) ||
IsEqualGUID(riid, &IID_IBackgroundCopyManager))
{
*ppvObject = &This->lpVtbl;
BITS_IBackgroundCopyManager_AddRef(iface);
return S_OK;
}
*ppvObject = NULL;
return E_NOINTERFACE;
}
/* Release an interface to iface */
static ULONG WINAPI BITS_IBackgroundCopyManager_Release(
IBackgroundCopyManager* iface)
{ {
return 1; return 1;
} }
/*** IBackgroundCopyManager interface methods ***/ /*** IBackgroundCopyManager interface methods ***/
static HRESULT WINAPI BITS_IBackgroundCopyManager_CreateJob( static HRESULT WINAPI BITS_IBackgroundCopyManager_CreateJob(IBackgroundCopyManager *iface,
IBackgroundCopyManager* iface, LPCWSTR DisplayName, BG_JOB_TYPE Type, GUID *pJobId, IBackgroundCopyJob **ppJob)
LPCWSTR DisplayName,
BG_JOB_TYPE Type,
GUID *pJobId,
IBackgroundCopyJob **ppJob)
{ {
BackgroundCopyManagerImpl * This = (BackgroundCopyManagerImpl *) iface;
BackgroundCopyJobImpl *job; BackgroundCopyJobImpl *job;
HRESULT hres; HRESULT hres;
TRACE("\n"); TRACE("\n");
@ -81,35 +68,28 @@ static HRESULT WINAPI BITS_IBackgroundCopyManager_CreateJob(
/* Add a reference to the job to job list */ /* Add a reference to the job to job list */
IBackgroundCopyJob_AddRef(*ppJob); IBackgroundCopyJob_AddRef(*ppJob);
job = (BackgroundCopyJobImpl *) *ppJob; job = (BackgroundCopyJobImpl *) *ppJob;
EnterCriticalSection(&This->cs); EnterCriticalSection(&globalMgr.cs);
list_add_head(&This->jobs, &job->entryFromQmgr); list_add_head(&globalMgr.jobs, &job->entryFromQmgr);
LeaveCriticalSection(&This->cs); LeaveCriticalSection(&globalMgr.cs);
return S_OK; return S_OK;
} }
static HRESULT WINAPI BITS_IBackgroundCopyManager_GetJob( static HRESULT WINAPI BITS_IBackgroundCopyManager_GetJob(IBackgroundCopyManager *iface,
IBackgroundCopyManager* iface, REFGUID jobID, IBackgroundCopyJob **ppJob)
REFGUID jobID,
IBackgroundCopyJob **ppJob)
{ {
FIXME("Not implemented\n"); FIXME("Not implemented\n");
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI BITS_IBackgroundCopyManager_EnumJobs( static HRESULT WINAPI BITS_IBackgroundCopyManager_EnumJobs(IBackgroundCopyManager *iface,
IBackgroundCopyManager* iface, DWORD dwFlags, IEnumBackgroundCopyJobs **ppEnum)
DWORD dwFlags,
IEnumBackgroundCopyJobs **ppEnum)
{ {
TRACE("\n"); TRACE("\n");
return EnumBackgroundCopyJobsConstructor((LPVOID *) ppEnum, iface); return EnumBackgroundCopyJobsConstructor((LPVOID *) ppEnum, iface);
} }
static HRESULT WINAPI BITS_IBackgroundCopyManager_GetErrorDescription( static HRESULT WINAPI BITS_IBackgroundCopyManager_GetErrorDescription(IBackgroundCopyManager *iface,
IBackgroundCopyManager* iface, HRESULT hResult, DWORD LanguageId, LPWSTR *pErrorDescription)
HRESULT hResult,
DWORD LanguageId,
LPWSTR *pErrorDescription)
{ {
FIXME("Not implemented\n"); FIXME("Not implemented\n");
return E_NOTIMPL; return E_NOTIMPL;
@ -128,7 +108,7 @@ static const IBackgroundCopyManagerVtbl BITS_IBackgroundCopyManager_Vtbl =
}; };
BackgroundCopyManagerImpl globalMgr = { BackgroundCopyManagerImpl globalMgr = {
&BITS_IBackgroundCopyManager_Vtbl, { &BITS_IBackgroundCopyManager_Vtbl },
{ NULL, -1, 0, 0, 0, 0 }, { NULL, -1, 0, 0, 0, 0 },
NULL, NULL,
LIST_INIT(globalMgr.jobs) LIST_INIT(globalMgr.jobs)

View File

@ -81,7 +81,7 @@ typedef struct
/* Background copy manager vtbl and related data */ /* Background copy manager vtbl and related data */
typedef struct typedef struct
{ {
const IBackgroundCopyManagerVtbl *lpVtbl; IBackgroundCopyManager IBackgroundCopyManager_iface;
/* Protects job list, job states, and jobEvent */ /* Protects job list, job states, and jobEvent */
CRITICAL_SECTION cs; CRITICAL_SECTION cs;
HANDLE jobEvent; HANDLE jobEvent;