建立作業
若要建立傳輸作業,請呼叫 IBackgroundCopyManager::CreateJob 方法。 在 BITS 建立作業之後, 將檔案新增至作業 ,並 視您的應用程式修改作業的屬性 。 若要在佇列中啟動作業,請呼叫 IBackgroundCopyJob::Resume 方法。
CreateJob 方法會建立可唯一識別作業的 GUID。 您可以使用 GUID 從 傳輸佇列擷取作業。 您在建立作業時提供的顯示名稱不是唯一的;多個作業可以使用相同的名稱。
BITS 會將佇列中的作業數目限制為 300 個作業,以及使用者可以建立至 60 個作業的作業數目。 這些限制不適用於系統管理員或服務。 若要變更這些預設限制,請參閱 組策略。
下列範例示範如何建立下載作業。 此範例假設g_pbcm變數是有效的 IBackgroundCopyManager 介面指標。 如需如何建立 IBackgroundCopyManager 介面指標的詳細資訊,請參閱 連線 BITS 服務。
HRESULT hr;
GUID JobId;
IBackgroundCopyJob* pJob = NULL;
//To create an upload job, replace BG_JOB_TYPE_DOWNLOAD with
//BG_JOB_TYPE_UPLOAD or BG_JOB_TYPE_UPLOAD_REPLY.
hr = g_pbcm->CreateJob(L"MyJobName", BG_JOB_TYPE_DOWNLOAD, &JobId, &pJob);
if (SUCCEEDED(hr))
{
//Save the JobId for later reference.
//Modify the job's property values.
//Add files to the job.
//Activate (resume) the job in the transfer queue.
}
若要取得最新的IBackgroundCopyJob 介面,請呼叫IBackgroundCopyJob::QueryInterface 方法。 下列範例示範如何取得 IBackgroundCopyJob5 介面。
HRESULT hr = S_OK;
IBackgroundCopyJob* pJob = NULL;
IBackgroundCopyJob5* pJob5 = NULL;
hr = pJob->QueryInterface(__uuidof(IBackgroundCopyJob5), (void**)&pJob5);
pJob->Release();
if (FAILED(hr))
{
wprintf(L"pJob->QueryInterface failed with 0x%x.\n", hr);
goto cleanup;
}