Udostępnij przez


Tworzenie pracy

Aby utworzyć zadanie transferu, wywołaj metodę IBackgroundCopyManager::CreateJob. Po utworzeniu zadania usługa BITS dodać pliki do zadania i zmodyfikować właściwości zadania odpowiednio dla aplikacji. Aby aktywować zadanie w kolejce, wywołaj metodę IBackgroundCopyJob::Resume.

Metoda CreateJob tworzy identyfikator GUID, który jednoznacznie identyfikuje zadanie. Identyfikator GUID służy do pobierania zadania z kolejki transferu. Nazwa wyświetlana podana podczas tworzenia zadania nie jest unikatowa; więcej niż jedno zadanie może używać tej samej nazwy.

Usługa BITS ogranicza liczbę zadań w kolejce do 300 zadań i liczbę zadań, które użytkownik może utworzyć do 60 zadań. Te limity nie dotyczą administratorów ani usług. Aby zmienić te domyślne limity, zobacz Zasady Grupy.

W poniższym przykładzie pokazano, jak utworzyć zadanie pobierania. W przykładzie przyjęto założenie, że zmienna g_pbcm jest prawidłowym wskaźnikiem interfejsu IBackgroundCopyManager. Aby uzyskać szczegółowe informacje na temat tworzenia wskaźnika interfejsu IBackgroundCopyManager, zobacz Łączenie z usługą 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.
}

Aby uzyskać najnowszy interfejs IBackgroundCopyJob, wywołaj metodę IBackgroundCopyJob::QueryInterface. W poniższym przykładzie pokazano, jak uzyskać interfejs 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;
  }