//不要忘记要包括Bits.h文件
//忽略错误校验
HRESULT hr = 0;
IBackgroundCopyManager* TransManager = NULL;
IBackgroundCopyJob *pCopyJob = NULL;
GUID ID;
//这里是你的线程模型
hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
//设置impersonation 等级为RPC_C_IMP_LEVEL_IMPERSONATE
hr = CoInitializeSecurity(NULL, -1, NULL, NULL,
RPC_C_AUTHN_LEVEL_CONNECT,
RPC_C_IMP_LEVEL_IMPERSONATE,
NULL,
EOAC_NONE, 0);
//创建一个IbackgroundCopyManager实例。
hr = CoCreateInstance(__uuidof(BackgroundCopyManager), NULL,
CLSCTX_LOCAL_SERVER,
__uuidof(IBackgroundCopyManager),
(void**)
&TransManager);
hr = TransManager->CreateJob(L"DemoJob",
BG_JOB_TYPE_DOWNLOAD,
&ID,
&pCopyJob);
//向该任务添加一个文件。
hr = pCopyJob->AddFile(L"http://MyServer/Path/MyFile.Ext",
L"c:PathMyFile.Ext");
BITS功能的一个主要限制就是服务器的内容不能是动态的。例如,你不能向这样指定一个URL:http://www.myserver.com/Update.asp?CurrentVersion=1.0;服务器要么向你提供正确的版本要么通知你你的版本足够新。