Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby wyliczyć zadania z kolejki transferu, wywołaj metodę IBackgroundCopyManager::EnumJobs. Metoda zwraca wskaźnik interfejsu IEnumBackgroundCopyJobs, który jest używany do wyliczania zadań w kolejce.
Aby pobrać zadania użytkownika, ustaw pierwszy parametr metody EnumJobs na 0. Aby pobrać wszystkie zadania w kolejce, należy ustawić pierwszy parametr metody EnumJobs na BG_JOB_ENUM_ALL_USERS. Tylko użytkownicy z uprawnieniami administratora mogą uzyskiwać dostęp do wszystkich zadań w kolejce transferu.
Należy pamiętać, że wyliczona lista to migawka zadań w kolejce transferu w momencie wywołania metody EnumJobs. Jednak wartości właściwości tych zadań odzwierciedlają bieżące wartości zadania.
Jeśli chcesz pobrać poszczególne zadania transferu, wywołaj metodę IBackgroundCopyManager::GetJob.
Aby wyliczyć pliki w zadaniu, zobacz Wyliczanie plików w zadaniu.
W poniższym przykładzie pokazano, jak wyliczać zadania w kolejce transferu. Zmienna g_XferManager w przykładzie to wskaźnik interfejsu IBackgroundCopyManager. Aby uzyskać szczegółowe informacje na temat tworzenia wskaźnika interfejsu IBackgroundCopyManager, zobacz Connecting to the BITS Service.
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;
}