Megosztás a következőn keresztül:


Feladat létrehozása

Átviteli feladat létrehozásához hívja meg az IBackgroundCopyManager::CreateJob metódust. Miután a BITS létrehozta a feladatot, adjon hozzá fájlokat a feladathoz, és módosítsa a feladat tulajdonságait az alkalmazásnak megfelelően. A feladat aktiválásához hívja meg az IBackgroundCopyJob::Resume metódust.

A CreateJob metódus létrehoz egy GUID-t, amely egyedileg azonosítja a feladatot. A GUID használatával lekérni a feladatot az átviteli üzenetsorból. A feladat létrehozásakor megadott megjelenítendő név nem egyedi; több feladat is használhatja ugyanazt a nevet.

A BITS 300 feladatra korlátozza az üzenetsorban lévő feladatok számát, a felhasználó által létrehozható feladatok számát pedig 60 feladatra. Ezek a korlátozások nem vonatkoznak a rendszergazdákra és a szolgáltatásokra. Az alapértelmezett korlátok módosításáról csoportházirendekcímű témakörben olvashat.

Az alábbi példa bemutatja, hogyan hozhat létre letöltési feladatot. A példa feltételezi, hogy a g_pbcm változó érvényes IBackgroundCopyManager felületmutató. Az IBackgroundCopyManager felületmutatójának létrehozásáról további információt Csatlakozás a BITS szolgáltatáshozcímű témakörben talál.

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.
}

A legújabb IBackgroundCopyJob felület beszerzéséhez hívja meg a IBackgroundCopyJob::QueryInterface metódust. Az alábbi példa bemutatja, hogyan szerezheti be a IBackgroundCopyJob5 felületet.

  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;
  }