Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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;
}