IBackgroundCopyJob 接口是与 Windows Background Intelligent Transfer Service (BITS) 相关的 Win32 API 接口之一,用于创建和管理 BITS 作业。以下是关于 IBackgroundCopyJob 接口的一些基本信息:
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