69 *
obj = &
error->IBackgroundCopyError_iface;
78 IBackgroundCopyError_AddRef(iface);
101 if (
error->file) IBackgroundCopyFile2_Release(
error->file);
109 BG_ERROR_CONTEXT *pContext,
114 TRACE(
"(%p)->(%p %p)\n",
error, pContext, pCode);
116 *pContext =
error->context;
117 *pCode =
error->code;
119 TRACE(
"returning context %u error code 0x%08x\n",
error->context,
error->code);
133 IBackgroundCopyFile2_AddRef(
error->file);
144 LPWSTR *pErrorDescription)
147 FIXME(
"(%p)->(%p)\n",
error, pErrorDescription);
154 LPWSTR *pContextDescription)
157 FIXME(
"(%p)->(%p)\n",
error, pContextDescription);
198 if (
error->file) IBackgroundCopyFile2_AddRef(
error->file);
200 *
obj = &
error->IBackgroundCopyError_iface;
201 TRACE(
"returning iface %p\n", *
obj);
207 return job->state == BG_JOB_STATE_CANCELLED ||
job->state == BG_JOB_STATE_ACKNOWLEDGED;
227 *
obj = &
This->IBackgroundCopyJob3_iface;
231 *
obj = &
This->IBackgroundCopyJobHttpOptions_iface;
239 IBackgroundCopyJob3_AddRef(iface);
260 This->cs.DebugInfo->Spare[0] = 0;
263 IBackgroundCopyCallback2_Release(
This->callback);
267 for (
i = 0;
i < BG_AUTH_TARGET_PROXY;
i++)
269 for (
j = 0;
j < BG_AUTH_SCHEME_PASSPORT;
j++)
271 BG_AUTH_CREDENTIALS *cred = &
This->http_options.creds[
i][
j];
290 BG_FILE_INFO *pFileSet)
296 TRACE(
"(%p)->(%d %p)\n",
This, cFileCount, pFileSet);
300 for (
i = 0;
i < cFileCount; ++
i)
305 FIXME(
"Check for valid filenames and supported protocols\n");
312 This->jobProgress.BytesTotal = BG_SIZE_UNKNOWN;
313 ++
This->jobProgress.FilesTotal;
333 return IBackgroundCopyJob3_AddFileSet(iface, 1, &
file);
366 else if (
This->jobProgress.FilesTransferred ==
This->jobProgress.FilesTotal)
370 else if (
This->state != BG_JOB_STATE_CONNECTING
371 &&
This->state != BG_JOB_STATE_TRANSFERRING)
373 This->state = BG_JOB_STATE_QUEUED;
374 This->error.context = 0;
376 if (
This->error.file)
378 IBackgroundCopyFile2_Release(
This->error.file);
406 if (
This->state == BG_JOB_STATE_CONNECTING ||
This->state == BG_JOB_STATE_TRANSFERRING)
408 This->state = BG_JOB_STATE_CANCELLED;
429 This->state = BG_JOB_STATE_CANCELLED;
455 if (
file->fileProgress.Completed)
462 ERR(
"Couldn't rename file %s -> %s\n",
473 This->state = BG_JOB_STATE_ACKNOWLEDGED;
506 BG_JOB_PROGRESS *pVal)
516 *pVal =
This->jobProgress;
553 TRACE(
"(%p)->(%p)\n",
job, ppError);
594 static const int max_description_len = 1024;
647 BG_JOB_PRIORITY *pVal)
659 static const ULONG valid_flags = BG_NOTIFY_JOB_TRANSFERRED |
660 BG_NOTIFY_JOB_ERROR |
662 BG_NOTIFY_JOB_MODIFICATION |
663 BG_NOTIFY_FILE_TRANSFERRED;
668 if (Val & ~valid_flags)
return E_NOTIMPL;
669 This->notify_flags = Val;
683 *pVal =
This->notify_flags;
701 IBackgroundCopyCallback2_Release(
This->callback);
708 hr = IUnknown_QueryInterface(Val, &IID_IBackgroundCopyCallback2, (
void**)&
This->callback);
710 hr = IUnknown_QueryInterface(Val, &IID_IBackgroundCopyCallback, (
void**)&
This->callback);
730 IUnknown_AddRef(*pVal);
739 FIXME(
"%u\n", Seconds);
748 FIXME(
"(%p)->(%p): stub\n",
This, Seconds);
758 FIXME(
"(%p)->(%d): stub\n",
This, Seconds);
767 FIXME(
"(%p)->(%p): stub\n",
This, Seconds);
783 BG_JOB_PROXY_USAGE ProxyUsage,
784 const WCHAR *ProxyList,
785 const WCHAR *ProxyBypassList)
794 BG_JOB_PROXY_USAGE *pProxyUsage,
799 FIXME(
"(%p)->(%p %p %p): stub\n",
This, pProxyUsage, pProxyList, pProxyBypassList);
864 FIXME(
"(%p)->(%p): stub\n",
This, pFilename);
870 if (!
target ||
target > BG_AUTH_TARGET_PROXY)
return -1;
876 if (!
scheme ||
scheme > BG_AUTH_SCHEME_PASSPORT)
return -1;
882 BG_AUTH_CREDENTIALS *cred)
885 BG_AUTH_CREDENTIALS *new_cred;
886 int idx_target, idx_scheme;
892 new_cred = &
job->http_options.creds[idx_target][idx_scheme];
896 new_cred->Target = cred->Target;
897 new_cred->Scheme = cred->Scheme;
899 if (cred->Credentials.Basic.UserName)
902 new_cred->Credentials.Basic.UserName =
strdupW(cred->Credentials.Basic.UserName);
904 if (cred->Credentials.Basic.Password)
907 new_cred->Credentials.Basic.Password =
strdupW(cred->Credentials.Basic.Password);
920 BG_AUTH_CREDENTIALS *new_cred;
921 int idx_target, idx_scheme;
927 new_cred = &
job->http_options.creds[idx_target][idx_scheme];
931 new_cred->Target = new_cred->Scheme = 0;
933 new_cred->Credentials.Basic.UserName =
NULL;
935 new_cred->Credentials.Basic.Password =
NULL;
1044 return IBackgroundCopyJob3_QueryInterface(&
job->IBackgroundCopyJob3_iface,
riid,
ppvObject);
1051 return IBackgroundCopyJob3_AddRef(&
job->IBackgroundCopyJob3_iface);
1058 return IBackgroundCopyJob3_Release(&
job->IBackgroundCopyJob3_iface);
1063 BG_CERT_STORE_LOCATION StoreLocation,
1065 BYTE *pCertHashBlob)
1073 BG_CERT_STORE_LOCATION StoreLocation,
1090 BG_CERT_STORE_LOCATION *pStoreLocation,
1092 BYTE **ppCertHashBlob,
1123 job->http_options.headers =
NULL;
1136 TRACE(
"(%p)->(%p)\n", iface, pRequestHeaders);
1140 if (
job->http_options.headers)
1153 *pRequestHeaders =
NULL;
1176 TRACE(
"(%p)->(%p)\n", iface, pFlags);
1178 *pFlags =
job->http_options.flags;
1211 This->cs.DebugInfo->Spare[0] = (
DWORD_PTR)(__FILE__
": BackgroundCopyJobImpl.cs");
1217 if (!
This->displayName)
1219 This->cs.DebugInfo->Spare[0] = 0;
1228 This->cs.DebugInfo->Spare[0] = 0;
1234 *job_id =
This->jobId;
1237 This->jobProgress.BytesTotal = 0;
1238 This->jobProgress.BytesTransferred = 0;
1239 This->jobProgress.FilesTotal = 0;
1240 This->jobProgress.FilesTransferred = 0;
1242 This->state = BG_JOB_STATE_SUSPENDED;
1244 This->notify_flags = BG_NOTIFY_JOB_ERROR | BG_NOTIFY_JOB_TRANSFERRED;
1248 This->error.context = 0;
1274 if (!
file->fileProgress.Completed)
unsigned long long UINT64
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static WCHAR * strdupW(const WCHAR *src)
static void list_add_head(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
#define BG_S_UNABLE_TO_DELETE_FILES
#define BG_E_FILE_NOT_AVAILABLE
#define BG_E_INVALID_AUTH_TARGET
#define BG_E_ERROR_INFORMATION_UNAVAILABLE
#define BG_E_INVALID_AUTH_SCHEME
#define BG_S_PARTIAL_COMPLETE
#define BG_E_INVALID_STATE
#define BG_E_STRING_TOO_LONG
static const struct token_string Errors[]
#define HeapFree(x, y, z)
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
BOOL WINAPI MoveFileExW(IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName OPTIONAL, IN DWORD dwFlags)
HRESULT WINAPI CoCreateGuid(GUID *pguid)
HRESULT EnumBackgroundCopyFilesConstructor(BackgroundCopyJobImpl *job, IEnumBackgroundCopyFiles **enum_files)
BOOL processFile(BackgroundCopyFileImpl *file, BackgroundCopyJobImpl *job)
HRESULT BackgroundCopyFileConstructor(BackgroundCopyJobImpl *owner, LPCWSTR remoteName, LPCWSTR localName, BackgroundCopyFileImpl **file)
static HRESULT WINAPI BackgroundCopyJob_GetNotifyInterface(IBackgroundCopyJob3 *iface, IUnknown **pVal)
static HRESULT WINAPI BackgroundCopyJob_GetDisplayName(IBackgroundCopyJob3 *iface, LPWSTR *pVal)
static HRESULT WINAPI BackgroundCopyJob_Cancel(IBackgroundCopyJob3 *iface)
static HRESULT WINAPI BackgroundCopyJob_Suspend(IBackgroundCopyJob3 *iface)
static HRESULT WINAPI http_options_RemoveClientCertificate(IBackgroundCopyJobHttpOptions *iface)
static HRESULT WINAPI copy_error_GetErrorContextDescription(IBackgroundCopyError *iface, DWORD LanguageId, LPWSTR *pContextDescription)
static HRESULT WINAPI BackgroundCopyJob_GetReplyData(IBackgroundCopyJob3 *iface, byte **pBuffer, UINT64 *pLength)
static HRESULT WINAPI BackgroundCopyJob_GetNoProgressTimeout(IBackgroundCopyJob3 *iface, ULONG *Seconds)
HRESULT BackgroundCopyJobConstructor(LPCWSTR displayName, BG_JOB_TYPE type, GUID *job_id, BackgroundCopyJobImpl **job)
static HRESULT WINAPI BackgroundCopyJob_GetProxySettings(IBackgroundCopyJob3 *iface, BG_JOB_PROXY_USAGE *pProxyUsage, LPWSTR *pProxyList, LPWSTR *pProxyBypassList)
static HRESULT WINAPI BackgroundCopyJob_GetError(IBackgroundCopyJob3 *iface, IBackgroundCopyError **ppError)
BOOL transitionJobState(BackgroundCopyJobImpl *job, BG_JOB_STATE from, BG_JOB_STATE to)
static ULONG WINAPI BackgroundCopyJob_Release(IBackgroundCopyJob3 *iface)
static ULONG WINAPI copy_error_Release(IBackgroundCopyError *iface)
static ULONG WINAPI BackgroundCopyJob_AddRef(IBackgroundCopyJob3 *iface)
static ULONG WINAPI copy_error_AddRef(IBackgroundCopyError *iface)
static HRESULT WINAPI BackgroundCopyJob_GetType(IBackgroundCopyJob3 *iface, BG_JOB_TYPE *pVal)
static HRESULT WINAPI BackgroundCopyJob_SetMinimumRetryDelay(IBackgroundCopyJob3 *iface, ULONG Seconds)
static HRESULT WINAPI BackgroundCopyJob_QueryInterface(IBackgroundCopyJob3 *iface, REFIID riid, void **obj)
static HRESULT WINAPI BackgroundCopyJob_Complete(IBackgroundCopyJob3 *iface)
static HRESULT WINAPI BackgroundCopyJob_AddFile(IBackgroundCopyJob3 *iface, LPCWSTR RemoteUrl, LPCWSTR LocalName)
static HRESULT WINAPI BackgroundCopyJob_TakeOwnership(IBackgroundCopyJob3 *iface)
static HRESULT WINAPI BackgroundCopyJob_SetNotifyCmdLine(IBackgroundCopyJob3 *iface, LPCWSTR prog, LPCWSTR params)
static HRESULT WINAPI BackgroundCopyJob_AddFileSet(IBackgroundCopyJob3 *iface, ULONG cFileCount, BG_FILE_INFO *pFileSet)
static const IBackgroundCopyJob3Vtbl BackgroundCopyJob3Vtbl
static HRESULT WINAPI BackgroundCopyJob_GetErrorCount(IBackgroundCopyJob3 *iface, ULONG *Errors)
static const IBackgroundCopyErrorVtbl copy_error_vtbl
static HRESULT WINAPI BackgroundCopyJob_SetNotifyInterface(IBackgroundCopyJob3 *iface, IUnknown *Val)
static HRESULT WINAPI BackgroundCopyJob_GetDescription(IBackgroundCopyJob3 *iface, LPWSTR *pVal)
static int index_from_target(BG_AUTH_TARGET target)
static HRESULT WINAPI BackgroundCopyJob_GetNotifyFlags(IBackgroundCopyJob3 *iface, ULONG *pVal)
static HRESULT WINAPI BackgroundCopyJob_GetReplyProgress(IBackgroundCopyJob3 *iface, BG_JOB_REPLY_PROGRESS *progress)
static HRESULT WINAPI copy_error_GetProtocol(IBackgroundCopyError *iface, LPWSTR *pProtocol)
static HRESULT WINAPI http_options_SetSecurityFlags(IBackgroundCopyJobHttpOptions *iface, ULONG Flags)
static HRESULT WINAPI BackgroundCopyJob_RemoveCredentials(IBackgroundCopyJob3 *iface, BG_AUTH_TARGET target, BG_AUTH_SCHEME scheme)
static HRESULT WINAPI http_options_GetCustomHeaders(IBackgroundCopyJobHttpOptions *iface, LPWSTR *pRequestHeaders)
static BOOL is_job_done(const BackgroundCopyJobImpl *job)
static const IBackgroundCopyJobHttpOptionsVtbl http_options_vtbl
static HRESULT WINAPI BackgroundCopyJob_GetProgress(IBackgroundCopyJob3 *iface, BG_JOB_PROGRESS *pVal)
static HRESULT WINAPI BackgroundCopyJob_SetNoProgressTimeout(IBackgroundCopyJob3 *iface, ULONG Seconds)
static struct copy_error * impl_from_IBackgroundCopyError(IBackgroundCopyError *iface)
static HRESULT WINAPI http_options_QueryInterface(IBackgroundCopyJobHttpOptions *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI copy_error_GetError(IBackgroundCopyError *iface, BG_ERROR_CONTEXT *pContext, HRESULT *pCode)
static HRESULT WINAPI http_options_SetCustomHeaders(IBackgroundCopyJobHttpOptions *iface, LPCWSTR RequestHeaders)
static HRESULT WINAPI http_options_GetSecurityFlags(IBackgroundCopyJobHttpOptions *iface, ULONG *pFlags)
void processJob(BackgroundCopyJobImpl *job)
static HRESULT WINAPI BackgroundCopyJob_SetProxySettings(IBackgroundCopyJob3 *iface, BG_JOB_PROXY_USAGE ProxyUsage, const WCHAR *ProxyList, const WCHAR *ProxyBypassList)
static HRESULT WINAPI copy_error_GetErrorDescription(IBackgroundCopyError *iface, DWORD LanguageId, LPWSTR *pErrorDescription)
static HRESULT WINAPI copy_error_GetFile(IBackgroundCopyError *iface, IBackgroundCopyFile **pVal)
static HRESULT WINAPI BackgroundCopyJob_SetCredentials(IBackgroundCopyJob3 *iface, BG_AUTH_CREDENTIALS *cred)
static BackgroundCopyJobImpl * impl_from_IBackgroundCopyJobHttpOptions(IBackgroundCopyJobHttpOptions *iface)
static HRESULT WINAPI BackgroundCopyJob_GetReplyFileName(IBackgroundCopyJob3 *iface, LPWSTR *pFilename)
static HRESULT WINAPI BackgroundCopyJob_GetPriority(IBackgroundCopyJob3 *iface, BG_JOB_PRIORITY *pVal)
static HRESULT WINAPI BackgroundCopyJob_Resume(IBackgroundCopyJob3 *iface)
static BackgroundCopyJobImpl * impl_from_IBackgroundCopyJob3(IBackgroundCopyJob3 *iface)
static ULONG WINAPI http_options_AddRef(IBackgroundCopyJobHttpOptions *iface)
static HRESULT WINAPI BackgroundCopyJob_GetNotifyCmdLine(IBackgroundCopyJob3 *iface, LPWSTR *prog, LPWSTR *params)
static ULONG WINAPI http_options_Release(IBackgroundCopyJobHttpOptions *iface)
static HRESULT create_copy_error(BG_ERROR_CONTEXT context, HRESULT code, IBackgroundCopyFile2 *file, IBackgroundCopyError **obj)
static HRESULT WINAPI BackgroundCopyJob_AddFileWithRanges(IBackgroundCopyJob3 *iface, LPCWSTR RemoteUrl, LPCWSTR LocalName, DWORD RangeCount, BG_FILE_RANGE Ranges[])
static HRESULT WINAPI BackgroundCopyJob_SetNotifyFlags(IBackgroundCopyJob3 *iface, ULONG Val)
static HRESULT WINAPI BackgroundCopyJob_EnumFiles(IBackgroundCopyJob3 *iface, IEnumBackgroundCopyFiles **enum_files)
static HRESULT WINAPI copy_error_QueryInterface(IBackgroundCopyError *iface, REFIID riid, void **obj)
static HRESULT WINAPI BackgroundCopyJob_GetFileACLFlags(IBackgroundCopyJob3 *iface, DWORD *Flags)
static int index_from_scheme(BG_AUTH_SCHEME scheme)
static HRESULT WINAPI BackgroundCopyJob_GetState(IBackgroundCopyJob3 *iface, BG_JOB_STATE *pVal)
static HRESULT WINAPI BackgroundCopyJob_GetTimes(IBackgroundCopyJob3 *iface, BG_JOB_TIMES *pVal)
static HRESULT WINAPI BackgroundCopyJob_SetFileACLFlags(IBackgroundCopyJob3 *iface, DWORD Flags)
static HRESULT WINAPI http_options_SetClientCertificateByID(IBackgroundCopyJobHttpOptions *iface, BG_CERT_STORE_LOCATION StoreLocation, LPCWSTR StoreName, BYTE *pCertHashBlob)
static HRESULT WINAPI BackgroundCopyJob_SetDescription(IBackgroundCopyJob3 *iface, LPCWSTR Val)
static HRESULT WINAPI BackgroundCopyJob_GetOwner(IBackgroundCopyJob3 *iface, LPWSTR *pVal)
static HRESULT WINAPI BackgroundCopyJob_ReplaceRemotePrefix(IBackgroundCopyJob3 *iface, LPCWSTR OldPrefix, LPCWSTR NewPrefix)
static HRESULT WINAPI BackgroundCopyJob_SetReplyFileName(IBackgroundCopyJob3 *iface, LPCWSTR filename)
static HRESULT WINAPI http_options_SetClientCertificateByName(IBackgroundCopyJobHttpOptions *iface, BG_CERT_STORE_LOCATION StoreLocation, LPCWSTR StoreName, LPCWSTR SubjectName)
static HRESULT WINAPI http_options_GetClientCertificate(IBackgroundCopyJobHttpOptions *iface, BG_CERT_STORE_LOCATION *pStoreLocation, LPWSTR *pStoreName, BYTE **ppCertHashBlob, LPWSTR *pSubjectName)
static HRESULT WINAPI BackgroundCopyJob_SetDisplayName(IBackgroundCopyJob3 *iface, LPCWSTR Val)
static HRESULT WINAPI BackgroundCopyJob_SetPriority(IBackgroundCopyJob3 *iface, BG_JOB_PRIORITY Val)
static HRESULT WINAPI BackgroundCopyJob_GetId(IBackgroundCopyJob3 *iface, GUID *pVal)
static HRESULT WINAPI BackgroundCopyJob_GetMinimumRetryDelay(IBackgroundCopyJob3 *iface, ULONG *Seconds)
BackgroundCopyManagerImpl globalMgr
#define MOVEFILE_WRITE_THROUGH
#define MOVEFILE_REPLACE_EXISTING
#define MOVEFILE_COPY_ALLOWED
GLuint GLuint GLsizei GLenum type
GLenum const GLfloat * params
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
static LPWSTR co_strdupW(LPCWSTR str)
#define IsEqualGUID(rguid1, rguid2)
static HRESULT return_strval(const WCHAR *str, WCHAR **ret)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
vector< Header * > headers
IBackgroundCopyFile2 * file
IBackgroundCopyError IBackgroundCopyError_iface
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
#define CONTAINING_RECORD(address, type, field)
DWORD WINAPI GetLastError(void)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
_Must_inspect_result_ _In_ ULONG Flags