Partilhar via


Criar um emprego

Para criar um trabalho de transferência, chame o método IBackgroundCopyManager::CreateJob . Depois que o BITS cria o trabalho, adicionar arquivos ao do trabalho e modificar as propriedades do trabalho conforme apropriado para seu aplicativo. Para ativar o trabalho na fila, chame o método IBackgroundCopyJob::Resume.

O método CreateJob cria um identificador GUID, que identifica exclusivamente a tarefa. Use o GUID para recuperar a tarefa da fila de transferência. O nome para exibição que você fornece ao criar o trabalho não é exclusivo; Mais de um trabalho pode usar o mesmo nome.

O BITS limita o número de trabalhos na fila a 300 trabalhos e o número de trabalhos que um usuário pode criar a 60 trabalhos. Estes limites não se aplicam a administradores ou serviços. Para alterar esses limites padrão, consulte Diretivas de Grupo.

O exemplo a seguir mostra como criar uma tarefa de download. O exemplo pressupõe que a variável g_pbcm é um ponteiro de interface IBackgroundCopyManager válido. Para obter detalhes sobre como criar o ponteiro de interface IBackgroundCopyManager, consulte Ligação ao serviço 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.
}

Para obter a interface mais recente IBackgroundCopyJob, chame o método IBackgroundCopyJob::QueryInterface. O exemplo a seguir mostra como obter a interface IBackgroundCopyJob5 de .

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