qmgr: COM cleanup for the IBackgroundCopyManager iface.
This commit is contained in:
parent
cd465edb00
commit
a3fdfa22ff
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue