Metodo IEnumWbemClassObject::Next (wbemcli.h)
Usare il metodo IEnumWbemClassObject::Next per ottenere uno o più oggetti a partire dalla posizione corrente in un'enumerazione. Questo metodo avanza la posizione corrente nell'enumerazione da oggetti uCount , in modo che le chiamate successive restituiscono gli oggetti successivi.
Sintassi
HRESULT Next(
[in] long lTimeout,
[in] ULONG uCount,
[out] IWbemClassObject **apObjects,
[out] ULONG *puReturned
);
Parametri
[in] lTimeout
Specifica la quantità massima di tempo in millisecondi che i blocchi di chiamata prima di restituire. Se si usa la costante WBEM_INFINITE (0xFFFFFFFF ), i blocchi di chiamata fino a quando non sono disponibili oggetti. Se si usa il valore 0 (WBEM_NO_WAIT), la chiamata restituisce immediatamente, indipendentemente dal fatto che gli oggetti siano disponibili o meno.
[in] uCount
Numero di oggetti richiesti.
[out] apObjects
Puntatore a una risorsa di archiviazione sufficiente per contenere il numero di puntatori di interfaccia IWbemClassObject specificati da uCount. Questa risorsa di archiviazione deve essere fornita dal chiamante. Questo parametro non può essere NULL. Il chiamante deve chiamare Release su ognuno dei puntatori di interfaccia ricevuti quando non sono più necessari.
[out] puReturned
Puntatore a un ULONG che riceve il numero di oggetti restituiti. Questo numero può essere minore del numero richiesto in uCount. Questo puntatore non può essere NULL.
Valore restituito
Il metodo Next restituisce un valore HRESULT che indica lo stato della chiamata al metodo. L'elenco seguente elenca il valore contenuto in un HRESULT.
Commenti
È possibile che vengano visualizzati codici di errore specifici di COM se i problemi di rete causano la perdita della connessione remota a Gestione Windows. In caso di errore, è possibile chiamare la funzione COM GetErrorInfo per ottenere altre informazioni sull'errore.
Se viene richiesto più di un oggetto e se viene restituito il numero di oggetti richiesti, la funzione restituisce WBEM_S_NO_ERROR. Se è disponibile un numero inferiore al numero richiesto di oggetti e, se l'enumerazione è stata completata, tali oggetti vengono restituiti e la funzione restituisce WBEM_S_FALSE.
Se l'enumerazione non è stata completata, la chiamata attende che gli oggetti siano disponibili fino al timeout specificato. Se l'enumerazione si verifica prima che gli oggetti siano disponibili, la funzione restituisce WBEM_S_TIMEDOUT.
Esempio
Per una discussione estesa e un esempio di esecuzione di query in C++ e WMI, vedere Creazione di query WMI in C++ in CodeProject.
Nel codice seguente viene richiesto più di un oggetto: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;
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista |
Server minimo supportato | Windows Server 2008 |
Piattaforma di destinazione | Windows |
Intestazione | wbemcli.h (include Wbemidl.h) |
Libreria | Wbemuuid.lib |
DLL | Fastprox.dll |