작업 만들기
전송 작업을 만들려면 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;
}