Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы перечислить задания из очереди передачи, вызовите метод IBackgroundCopyManager::EnumJobs. Метод возвращает указатель интерфейса IEnumBackgroundCopyJobs, который используется для перечисления заданий в очереди.
Чтобы получить задания пользователя, задайте для первого параметра метода EnumJobs значение 0. Чтобы получить все задания в очереди, задайте для BG_JOB_ENUM_ALL_USERS первый параметр метода EnumJobs. Только пользователи с правами администратора могут получать доступ ко всем заданиям в очереди передачи.
Обратите внимание, что список, перечисленный выше, представляет текущее состояние заданий в очереди передачи на момент вызова метода EnumJobs. Однако значения свойств этих заданий отражают текущие значения задания.
Если вы хотите получить отдельные задания трансфера, вызовите метод IBackgroundCopyManager::GetJob.
Чтобы перечислить файлы в задании, см. раздел Перечисление файлов в задании.
В следующем примере показано, как перечислить задания в очереди передачи. Переменная g_XferManager в примере — это указатель интерфейса IBackgroundCopyManager. Полную информацию о создании указателя интерфейса IBackgroundCopyManager см. в Подключение к службе BITS.
HRESULT hr = 0;
IEnumBackgroundCopyJobs* pJobs = NULL;
IBackgroundCopyJob* pJob = NULL;
ULONG cJobCount = 0;
ULONG idx = 0;
//This example enumerates all jobs in the transfer queue. This call fails if the
//current user does not have administrator privileges. To enumerate jobs for only
//the current user, replace BG_JOB_ENUM_ALL_USERS with 0.
hr = g_XferManager->EnumJobs(BG_JOB_ENUM_ALL_USERS, &pJobs);
if (SUCCEEDED(hr))
{
//Get the count of jobs in the queue.
pJobs->GetCount(&cJobCount);
//Enumerate the jobs in the queue.
for (idx=0; idx<cJobCount; idx++)
{
hr = pJobs->Next(1, &pJob, NULL);
if (S_OK == hr)
{
//Retrieve or set job properties.
pJob->Release();
pJob = NULL;
}
else
{
//Handle error
break;
}
}
pJobs->Release();
pJobs = NULL;
}