IEnumWbemClassObject ::Next, méthode (wbemcli.h)
Utilisez la méthode IEnumWbemClassObject ::Next pour obtenir un ou plusieurs objets commençant à la position actuelle dans une énumération. Cette méthode avance la position actuelle dans l’énumération par les objets uCount , de sorte que les appels suivants retournent les objets suivants.
Syntaxe
HRESULT Next(
[in] long lTimeout,
[in] ULONG uCount,
[out] IWbemClassObject **apObjects,
[out] ULONG *puReturned
);
Paramètres
[in] lTimeout
Spécifie la durée maximale en millisecondes que l’appel bloque avant de retourner. Si vous utilisez la constante WBEM_INFINITE (0xFFFFFFFF), l’appel se bloque jusqu’à ce que les objets soient disponibles. Si vous utilisez la valeur 0 (WBEM_NO_WAIT), l’appel retourne immédiatement, que des objets soient disponibles ou non.
[in] uCount
Nombre d’objets demandés.
[out] apObjects
Pointeur vers suffisamment de stockage pour contenir le nombre de pointeurs d’interface IWbemClassObject spécifiés par uCount. Ce stockage doit être fourni par l'appelant. Ce paramètre ne peut pas être NULL. L’appelant doit appeler Release sur chacun des pointeurs d’interface reçus lorsqu’ils ne sont plus nécessaires.
[out] puReturned
Pointeur vers un ULONG qui reçoit le nombre d’objets retournés. Ce nombre peut être inférieur au nombre demandé dans uCount. Ce pointeur ne peut pas être NULL.
Valeur retournée
La méthode Next retourne un HRESULT indiquant le status de l’appel de méthode. La liste suivante répertorie la valeur contenue dans un HRESULT.
Remarques
Vous pouvez voir des codes d’erreur spécifiques à COM retournés si des problèmes réseau vous font perdre la connexion à distance à Windows Management. En cas d’erreur, vous pouvez appeler la fonction COM GetErrorInfo pour obtenir plus d’informations sur l’erreur.
Si plusieurs objets sont demandés et si le nombre d’objets demandés est retourné, la fonction retourne WBEM_S_NO_ERROR. Si moins que le nombre d’objets demandé est disponible et si l’énumération est terminée, ces objets sont retournés et la fonction retourne WBEM_S_FALSE.
Si l’énumération n’est pas terminée, l’appel attend que les objets soient disponibles jusqu’au délai d’attente spécifié. Si l’énumération expire avant que les objets ne soient disponibles, la fonction retourne WBEM_S_TIMEDOUT.
Exemples
Pour une discussion étendue et un exemple de création de requêtes en C++ et WMI, consultez Création de requêtes WMI en C++ sur CodeProject.
Dans le code suivant, plusieurs objets sont demandés :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;
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista |
Serveur minimal pris en charge | Windows Server 2008 |
Plateforme cible | Windows |
En-tête | wbemcli.h (include Wbemidl.h) |
Bibliothèque | Wbemuuid.lib |
DLL | Fastprox.dll |