From faa65f629119f1388f46a16b300b14e814f4cb6e Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Fri, 12 Jun 2015 15:05:11 +0200 Subject: [PATCH] qmgr: Add a stub implementation of IBackgroundCopyJobHttpOptions. --- dlls/qmgr/job.c | 122 +++++++++++++++++++++++++++++++++++++++++++++++ dlls/qmgr/qmgr.h | 7 +++ 2 files changed, 129 insertions(+) diff --git a/dlls/qmgr/job.c b/dlls/qmgr/job.c index d3420417a35..5cb85aed752 100644 --- a/dlls/qmgr/job.c +++ b/dlls/qmgr/job.c @@ -212,6 +212,10 @@ static HRESULT WINAPI BackgroundCopyJob_QueryInterface( { *obj = &This->IBackgroundCopyJob3_iface; } + else if (IsEqualGUID(riid, &IID_IBackgroundCopyJobHttpOptions)) + { + *obj = &This->IBackgroundCopyJobHttpOptions_iface; + } else { *obj = NULL; @@ -245,6 +249,7 @@ static ULONG WINAPI BackgroundCopyJob_Release(IBackgroundCopyJob3 *iface) IBackgroundCopyCallback2_Release(This->callback); HeapFree(GetProcessHeap(), 0, This->displayName); HeapFree(GetProcessHeap(), 0, This->description); + HeapFree(GetProcessHeap(), 0, This->http_options.headers); HeapFree(GetProcessHeap(), 0, This); } @@ -900,6 +905,120 @@ static const IBackgroundCopyJob3Vtbl BackgroundCopyJob3Vtbl = BackgroundCopyJob_GetFileACLFlags }; +static inline BackgroundCopyJobImpl *impl_from_IBackgroundCopyJobHttpOptions( + IBackgroundCopyJobHttpOptions *iface) +{ + return CONTAINING_RECORD(iface, BackgroundCopyJobImpl, IBackgroundCopyJobHttpOptions_iface); +} + +static HRESULT WINAPI http_options_QueryInterface( + IBackgroundCopyJobHttpOptions *iface, + REFIID riid, + void **ppvObject) +{ + BackgroundCopyJobImpl *job = impl_from_IBackgroundCopyJobHttpOptions(iface); + return IBackgroundCopyJob3_QueryInterface(&job->IBackgroundCopyJob3_iface, riid, ppvObject); +} + +static ULONG WINAPI http_options_AddRef( + IBackgroundCopyJobHttpOptions *iface) +{ + BackgroundCopyJobImpl *job = impl_from_IBackgroundCopyJobHttpOptions(iface); + return IBackgroundCopyJob3_AddRef(&job->IBackgroundCopyJob3_iface); +} + +static ULONG WINAPI http_options_Release( + IBackgroundCopyJobHttpOptions *iface) +{ + BackgroundCopyJobImpl *job = impl_from_IBackgroundCopyJobHttpOptions(iface); + return IBackgroundCopyJob3_Release(&job->IBackgroundCopyJob3_iface); +} + +static HRESULT WINAPI http_options_SetClientCertificateByID( + IBackgroundCopyJobHttpOptions *iface, + BG_CERT_STORE_LOCATION StoreLocation, + LPCWSTR StoreName, + BYTE *pCertHashBlob) +{ + FIXME("\n"); + return E_NOTIMPL; +} + +static HRESULT WINAPI http_options_SetClientCertificateByName( + IBackgroundCopyJobHttpOptions *iface, + BG_CERT_STORE_LOCATION StoreLocation, + LPCWSTR StoreName, + LPCWSTR SubjectName) +{ + FIXME("\n"); + return E_NOTIMPL; +} + +static HRESULT WINAPI http_options_RemoveClientCertificate( + IBackgroundCopyJobHttpOptions *iface) +{ + FIXME("\n"); + return E_NOTIMPL; +} + +static HRESULT WINAPI http_options_GetClientCertificate( + IBackgroundCopyJobHttpOptions *iface, + BG_CERT_STORE_LOCATION *pStoreLocation, + LPWSTR *pStoreName, + BYTE **ppCertHashBlob, + LPWSTR *pSubjectName) +{ + FIXME("\n"); + return E_NOTIMPL; +} + +static HRESULT WINAPI http_options_SetCustomHeaders( + IBackgroundCopyJobHttpOptions *iface, + LPCWSTR RequestHeaders) +{ + FIXME("\n"); + return E_NOTIMPL; +} + +static HRESULT WINAPI http_options_GetCustomHeaders( + IBackgroundCopyJobHttpOptions *iface, + LPWSTR *pRequestHeaders) +{ + FIXME("\n"); + return E_NOTIMPL; +} + +static HRESULT WINAPI http_options_SetSecurityFlags( + IBackgroundCopyJobHttpOptions *iface, + ULONG Flags) +{ + FIXME("\n"); + return E_NOTIMPL; +} + +static HRESULT WINAPI http_options_GetSecurityFlags( + IBackgroundCopyJobHttpOptions *iface, + ULONG *pFlags) +{ + FIXME("\n"); + return E_NOTIMPL; +} + +static const IBackgroundCopyJobHttpOptionsVtbl http_options_vtbl = +{ + http_options_QueryInterface, + http_options_AddRef, + http_options_Release, + http_options_SetClientCertificateByID, + http_options_SetClientCertificateByName, + http_options_RemoveClientCertificate, + http_options_GetClientCertificate, + http_options_SetCustomHeaders, + http_options_GetCustomHeaders, + http_options_SetSecurityFlags, + http_options_GetSecurityFlags +}; + HRESULT BackgroundCopyJobConstructor(LPCWSTR displayName, BG_JOB_TYPE type, GUID *job_id, BackgroundCopyJobImpl **job) { HRESULT hr; @@ -913,6 +1032,7 @@ HRESULT BackgroundCopyJobConstructor(LPCWSTR displayName, BG_JOB_TYPE type, GUID return E_OUTOFMEMORY; This->IBackgroundCopyJob3_iface.lpVtbl = &BackgroundCopyJob3Vtbl; + This->IBackgroundCopyJobHttpOptions_iface.lpVtbl = &http_options_vtbl; InitializeCriticalSection(&This->cs); This->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": BackgroundCopyJobImpl.cs"); @@ -957,6 +1077,8 @@ HRESULT BackgroundCopyJobConstructor(LPCWSTR displayName, BG_JOB_TYPE type, GUID This->error.code = 0; This->error.file = NULL; + memset(&This->http_options, 0, sizeof(This->http_options)); + *job = This; TRACE("created job %s:%p\n", debugstr_guid(&This->jobId), This); diff --git a/dlls/qmgr/qmgr.h b/dlls/qmgr/qmgr.h index 9595f22914a..4b9d2fb3fbc 100644 --- a/dlls/qmgr/qmgr.h +++ b/dlls/qmgr/qmgr.h @@ -37,6 +37,7 @@ typedef struct { IBackgroundCopyJob3 IBackgroundCopyJob3_iface; + IBackgroundCopyJobHttpOptions IBackgroundCopyJobHttpOptions_iface; LONG ref; LPWSTR displayName; LPWSTR description; @@ -52,6 +53,12 @@ typedef struct CRITICAL_SECTION cs; struct list entryFromQmgr; struct + { + WCHAR *headers; + ULONG flags; + BG_AUTH_CREDENTIALS creds; + } http_options; + struct { BG_ERROR_CONTEXT context; HRESULT code;