다음을 통해 공유


작업 만들기

전송 작업을 만들려면 IBackgroundCopyManager::CreateJob 메서드를 호출합니다. BITS가 작업을 만든 후 작업에 파일을 추가하고 애플리케이션 에 맞게 작업의 속성을 수정 합니다. 큐에서 작업을 활성화하려면 IBackgroundCopyJob::Resume 메서드를 호출합니다.

CreateJob 메서드는 작업을 고유하게 식별하는 GUID를 만듭니다. GUID를 사용하여 전송 큐에서 작업을 검색합니다. 작업을 만들 때 제공하는 표시 이름은 고유하지 않습니다. 둘 이상의 작업이 동일한 이름을 사용할 수 있습니다.

BITS는 큐의 작업 수를 300개의 작업으로 제한하고 사용자가 만들 수 있는 작업 수를 60개 작업으로 제한합니다. 이러한 제한은 관리자 또는 서비스에 적용되지 않습니다. 이러한 기본 제한을 변경하려면 그룹 정책을 참조하세요.

다음 예제에서는 다운로드 작업을 만드는 방법을 보여줍니다. 이 예제에서는 g_pbcm 변수가 유효한 IBackgroundCopyManager 인터페이스 포인터라고 가정합니다. IBackgroundCopyManager 인터페이스 포인터를 만드는 방법에 대한 자세한 내용은 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.
}

최신 IBackgroundCopyJob 인터페이스를 얻으려면 IBackgroundCopyJob::QueryInterface 메서드를 호출합니다. 다음 예제에서는 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;
  }