Método IEnumWbemClassObject::Next (wbemcli.h)
Use el método IEnumWbemClassObject::Next para obtener uno o varios objetos empezando por la posición actual de una enumeración. Este método avanza la posición actual en la enumeración por objetos uCount , de modo que las llamadas posteriores devuelvan los objetos subsiguientes.
Sintaxis
HRESULT Next(
[in] long lTimeout,
[in] ULONG uCount,
[out] IWbemClassObject **apObjects,
[out] ULONG *puReturned
);
Parámetros
[in] lTimeout
Especifica la cantidad máxima de tiempo en milisegundos que bloquea la llamada antes de devolver. Si usa el WBEM_INFINITE constante (0xFFFFFFFF), la llamada se bloquea hasta que los objetos estén disponibles. Si usa el valor 0 (WBEM_NO_WAIT), la llamada devuelve inmediatamente, tanto si hay objetos disponibles como si no.
[in] uCount
Número de objetos solicitados.
[out] apObjects
Puntero a suficiente almacenamiento para contener el número de punteros de interfaz IWbemClassObject especificados por uCount. Este almacenamiento lo debe proporcionar el llamador. Este parámetro no puede ser NULL. El autor de la llamada debe llamar a Release en cada uno de los punteros de interfaz recibidos cuando ya no sean necesarios.
[out] puReturned
Puntero a un ULONG que recibe el número de objetos devueltos. Este número puede ser menor que el número solicitado en uCount. Este puntero no puede ser NULL.
Valor devuelto
El método Next devuelve un VALOR HRESULT que indica el estado de la llamada al método. En la lista siguiente se muestra el valor contenido en un HRESULT.
Comentarios
Es posible que vea códigos de error específicos de COM devueltos si los problemas de red hacen que pierda la conexión remota a la administración de Windows. En caso de error, puede llamar a la función COM GetErrorInfo para obtener más información de error.
Si se solicita más de un objeto y si se devuelve el número de objetos solicitados, la función devuelve WBEM_S_NO_ERROR. Si es menor que el número solicitado de objetos está disponible y si la enumeración se ha completado, se devuelven esos objetos y la función devuelve WBEM_S_FALSE.
Si la enumeración no se ha completado, la llamada espera a que los objetos estén disponibles hasta el tiempo de espera especificado. Si la enumeración agota el tiempo de espera antes de que los objetos estén disponibles, la función devuelve WBEM_S_TIMEDOUT.
Ejemplos
Para obtener una explicación extendida y un ejemplo de cómo realizar consultas en C++ y WMI, consulte Realización de consultas WMI en C++ en CodeProject.
En el código siguiente, se solicita más de un objeto: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;
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista |
Servidor mínimo compatible | Windows Server 2008 |
Plataforma de destino | Windows |
Encabezado | wbemcli.h (include Wbemidl.h) |
Library | Wbemuuid.lib |
Archivo DLL | Fastprox.dll |