Метод IEnumWbemClassObject::Next (wbemcli.h)
Используйте метод IEnumWbemClassObject::Next , чтобы получить один или несколько объектов, начиная с текущей позиции перечисления. Этот метод перемещает текущую позицию в перечислении объектов uCount , чтобы последующие вызовы возвращали последующие объекты.
Синтаксис
HRESULT Next(
[in] long lTimeout,
[in] ULONG uCount,
[out] IWbemClassObject **apObjects,
[out] ULONG *puReturned
);
Параметры
[in] lTimeout
Указывает максимальное время в миллисекундах, которое блокирует вызов перед возвратом. Если вы используете константную WBEM_INFINITE (0xFFFFFFFF), вызов блокируется, пока объекты не будут доступны. Если вы используете значение 0 (WBEM_NO_WAIT), вызов возвращается немедленно, независимо от того, доступны ли какие-либо объекты.
[in] uCount
Число запрошенных объектов.
[out] apObjects
Указатель на достаточный объем хранилища для хранения количества указателей интерфейса IWbemClassObject , заданных uCount. Это хранилище должно быть предоставлено вызывающим объектом. Этот параметр не может иметь значение NULL. Вызывающий объект должен вызывать Release для каждого из полученных указателей интерфейса, если они больше не нужны.
[out] puReturned
Указатель на ULONG , получающий количество возвращаемых объектов. Это число может быть меньше числа, запрошенного в uCount. Этот указатель не может иметь значение NULL.
Возвращаемое значение
Метод Next возвращает HRESULT , указывающий состояние вызова метода. В следующем списке перечислены значения, содержащиеся в HRESULT.
Комментарии
Если проблемы с сетью приводят к потере удаленного подключения к управлению Windows, могут отображаться коды ошибок, относящиеся к COM. При ошибке можно вызвать функцию COM GetErrorInfo , чтобы получить дополнительные сведения об ошибке.
Если запрашивается несколько объектов и возвращается количество запрошенных объектов, функция возвращает WBEM_S_NO_ERROR. Если доступно меньше запрошенного числа объектов и если перечисление завершено, эти объекты возвращаются, а функция возвращает WBEM_S_FALSE.
Если перечисление не завершено, вызов ожидает доступности объектов до указанного времени ожидания. Если время ожидания перечисления истекает, прежде чем объекты становятся доступными, функция возвращает WBEM_S_TIMEDOUT.
Примеры
Подробное обсуждение и пример создания запросов в C++ и WMI см. в статье Создание запросов WMI в C++ в CodeProject.
В следующем коде запрашивается несколько объектов:HRESULT ProcessEnum( IEnumWbemClassObject* pEnum )
{
HRESULT hRes = WBEM_S_NO_ERROR;
// Final Next will return WBEM_S_FALSE
while ( WBEM_S_NO_ERROR == hRes )
{
ULONG uReturned;
IWbemClassObject* apObj[10];
hRes = pEnum->Next( WBEM_INFINITE, 10, apObj, &uReturned );
if ( SUCCEEDED( hRes ) )
{
// Do something with the objects.
//ProcessObjects( uReturned, apObj );
for ( ULONG n = 0; n < uReturned; n++ )
{
apObj[n]->Release();
}
} // If Enum succeeded...
} // While Enum is returning objects...
return hRes;
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista |
Минимальная версия сервера | Windows Server 2008 |
Целевая платформа | Windows |
Header | wbemcli.h (включая Wbemidl.h) |
Библиотека | Wbemuuid.lib |
DLL | Fastprox.dll |