Membuat Pekerjaan

Untuk membuat pekerjaan transfer, panggil metode IBackgroundCopyManager::CreateJob. Setelah BITS membuat pekerjaan, tambahkan file ke pekerjaan dan ubah properti pekerjaan yang sesuai untuk aplikasi Anda. Untuk mengaktifkan pekerjaan dalam antrean, panggil metode IBackgroundCopyJob::Resume .

Metode CreateJob membuat GUID yang secara unik mengidentifikasi pekerjaan. Anda menggunakan GUID untuk mengambil pekerjaan dari antrean transfer. Nama tampilan yang Anda berikan saat membuat pekerjaan tidak unik; lebih dari satu pekerjaan dapat menggunakan nama yang sama.

BITS membatasi jumlah pekerjaan dalam antrean hingga 300 pekerjaan dan jumlah pekerjaan yang dapat dibuat pengguna hingga 60 pekerjaan. Batas ini tidak berlaku untuk administrator atau layanan. Untuk mengubah batas default ini, lihat Kebijakan Grup.

Contoh berikut menunjukkan cara membuat pekerjaan pengunduhan. Contoh mengasumsikan variabel g_pbcm adalah penunjuk antarmuka IBackgroundCopyManager yang valid. Untuk detail tentang cara membuat penunjuk antarmuka IBackgroundCopyManager, lihat Koneksi ke Layanan 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.
}

Untuk mendapatkan antarmuka IBackgroundCopyJob terbaru, panggil metode IBackgroundCopyJob::QueryInterface. Contoh berikut menunjukkan cara mendapatkan antarmuka 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;
  }