interface IBackgroundCopyJob : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE AddFile(
/* [in] */ LPCWSTR RemoteUrl,
/* [in] */ LPCWSTR LocalName) = 0;
virtual HRESULT STDMETHODCALLTYPE AddFiles(
/* [in] */ ULONG cFileCount,
/* [size_is][in] */ BG_FILE_INFO* pFileArray) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumFiles(
/* [out] */ IEnumBackgroundCopyFiles** pEnum) = 0;
virtual HRESULT STDMETHODCALLTYPE Suspend( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Resume( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Cancel( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Complete( void) = 0;
virtual HRESULT STDMETHODCALLTYPE GetId(
/* [out] */ GUID* pVal) = 0;
virtual HRESULT STDMETHODCALLTYPE GetType(
/* [out] */ BG_JOB_TYPE* pVal) = 0;
virtual HRESULT STDMETHODCALLTYPE GetProgress(
/* [out] */ BG_JOB_PROGRESS* pVal) = 0;
virtual HRESULT STDMETHODCALLTYPE GetTimes(
/* [out] */ BG_JOB_TIMES* pVal) = 0;
virtual HRESULT STDMETHODCALLTYPE GetState(
/* [out] */ BG_JOB_STATE* pVal) = 0;
virtual HRESULT STDMETHODCALLTYPE GetError(
/* [out] */ IBackgroundCopyError** ppError) = 0;
virtual HRESULT STDMETHODCALLTYPE GetOwner(
/* [out] */ LPWSTR* pVal) = 0;
virtual HRESULT STDMETHODCALLTYPE SetDisplayName(
/* [in] */ LPCWSTR Val) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
/* [out] */ LPWSTR* pVal) = 0;
virtual HRESULT STDMETHODCALLTYPE SetDescription(
/* [in] */ LPCWSTR Val) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDescription(
/* [out] */ LPWSTR* pVal) = 0;
virtual HRESULT STDMETHODCALLTYPE SetPriority(
/* [in] */ BG_JOB_PRIORITY Val) = 0;
virtual HRESULT STDMETHODCALLTYPE GetPriority(
/* [out] */ BG_JOB_PRIORITY* pVal) = 0;
virtual HRESULT STDMETHODCALLTYPE SetNotifyFlags(
/* [in] */ ULONG Val) = 0;
virtual HRESULT STDMETHODCALLTYPE GetNotifyFlags(
/* [out] */ ULONG* pVal) = 0;
virtual HRESULT STDMETHODCALLTYPE SetNotifyInterface(
/* [in] */ IUnknown* Val) = 0;
virtual HRESULT STDMETHODCALLTYPE GetNotifyInterface(
/* [out] */ IUnknown** pVal) = 0;
virtual HRESULT STDMETHODCALLTYPE SetMinimumRetryDelay(
/* [in] */ ULONG Seconds) = 0;
virtual HRESULT STDMETHODCALLTYPE GetMinimumRetryDelay(
/* [out] */ ULONG* Seconds) = 0;
virtual HRESULT STDMETHODCALLTYPE SetNoProgressTimeout(
/* [in] */ ULONG Seconds) = 0;
virtual HRESULT STDMETHODCALLTYPE GetNoProgressTimeout(
/* [out] */ ULONG* Seconds) = 0;
virtual HRESULT STDMETHODCALLTYPE GetErrorCount(
/* [out] */ ULONG* Errors) = 0;
virtual HRESULT STDMETHODCALLTYPE SetProxySettings(
/* [in] */ BG_JOB_PROXY_USAGE ProxyUsage,
/* [unique][in] */ const WCHAR* ProxyList,
/* [unique][in] */ const WCHAR* ProxyBypassList) = 0;
virtual HRESULT STDMETHODCALLTYPE GetProxySettings(
/* [out] */ BG_JOB_PROXY_USAGE* pProxyUsage,
/* [out] */ LPWSTR* pProxyList,
/* [out] */ LPWSTR* pProxyBypassList) = 0;
virtual HRESULT STDMETHODCALLTYPE TakeOwnership( void) = 0;
};
这个接口继承自 IUnknown 接口,它定义了一系列纯虚函数,用于控制 BITS 作业的各个方面。以下是其中一些常用的方法:
1. AddFile: 向 BITS 作业中添加单个文件。
2. AddFiles: 向 BITS 作业中添加多个文件。
3. EnumFiles: 获取作业中文件的枚举。
4. Suspend: 暂停 BITS 作业。
5. Resume: 恢复 BITS 作业。
6. Cancel: 取消 BITS 作业。
7. Complete: 标记 BITS 作业为已完成。
8. GetId: 获取 BITS 作业的唯一标识符。
9. GetType: 获取 BITS 作业的类型。
10. GetProgress: 获取 BITS 作业的传输进度。
11. GetTimes: 获取 BITS 作业的时间信息。
12. GetState: 获取 BITS 作业的状态。
13. GetError: 获取 BITS 作业的错误信息。
14. GetOwner: 获取 BITS 作业的所有者。
15. SetDisplayName, GetDisplayName: 设置/获取 BITS 作业的显示名称。
16. SetDescription, GetDescription: 设置/获取 BITS 作业的描述。
17. SetPriority, GetPriority: 设置/获取 BITS 作业的优先级。
18. SetNotifyFlags, GetNotifyFlags: 设置/获取 BITS 作业的通知标志。
19. SetNotifyInterface, GetNotifyInterface: 设置/获取 BITS 作业的通知接口。
20. SetMinimumRetryDelay, GetMinimumRetryDelay: 设置/获取 BITS 作业的最小重试延迟。
21. SetNoProgressTimeout, GetNoProgressTimeout: 设置/获取 BITS 作业的无进度超时。
22. GetErrorCount: 获取 BITS 作业的错误计数。
23. SetProxySettings, GetProxySettings: 设置/获取 BITS 作业的代理设置。
24. TakeOwnership: 接管 BITS 作业的所有权。
你可以使用这些方法来创建、配置和管理 BITS 作业,并通过 IBackgroundCopyCallback 接口的实现来处理相关事件和状态变化。
转载请注明出处:http://www.zyzy.cn/article/detail/24042/Win32 API/Bits.h/IBackgroundCopyJob