Interface IEnumWbemClassObject (wbemcli.h)

L’interface IEnumWbemClassObject est utilisée pour énumérer les objets CIM ( Common Information Model ) et est similaire à un énumérateur COM standard.

Un objet de type IEnumWbemClassObject est reçu à partir d’appels aux méthodes suivantes :

Les objets CIM sont récupérés à partir d’une énumération en tant qu’objets de type IWbemClassObject en appelant la méthode Next . Vous pouvez rétablir une énumération au début en appelant la méthode Reset .

Héritage

L’interface IEnumWbemClassObject hérite de l’interface IUnknown . IEnumWbemClassObject a également les types de membres suivants :

Méthodes

L’interface IEnumWbemClassObject a ces méthodes.

 
IEnumWbemClassObject::Clone

La méthode IEnumWbemClassObject::Clone effectue une copie logique de l’énumérateur entier, en conservant sa position actuelle dans une énumération.
IEnumWbemClassObject::Next

Utilisez la méthode IEnumWbemClassObject::Next pour obtenir un ou plusieurs objets commençant à la position actuelle dans une énumération.
IEnumWbemClassObject::NextAsync

Utilisez la méthode NextAsync lorsqu’une récupération asynchrone contrôlée d’objets vers un récepteur est requise.
IEnumWbemClassObject::Reset

La méthode IEnumWbemClassObject::Reset réinitialise une séquence d’énumération au début. Étant donné que les objets CIM sont dynamiques, l’appel de cette méthode ne retourne pas nécessairement la même liste d’objets que vous avez obtenue précédemment.
IEnumWbemClassObject::Skip

Vous pouvez utiliser la méthode IEnumWbemClassObject::Skip pour déplacer la position actuelle dans une énumération d’un nombre spécifié d’objets. En outre, cela affecte les appels suivants à NextAsync, mais cela n’affecte pas les remises en attente commencées avec NextAsync.

Remarques

IEnumWbemClassObject est l’objet retourné à partir d’une requête WMI et est utilisé pour énumérer les valeurs retournées. Pour plus d’informations sur l’utilisation de cette classe, consultez Interrogation de WMI et Énumération de WMI.

Exemples

L’exemple de code C++ suivant décrit comment récupérer un IEnumWbemClassObject.

void ExecQuerySync(IWbemServices *pSvc)
{
    // Query for all users and groups.

    BSTR Language = SysAllocString(L"WQL");
    BSTR Query = SysAllocString(L"SELECT * FROM __Namespace");

    // Initialize the IEnumWbemClassObject pointer.
    IEnumWbemClassObject *pEnum = 0;

    // Issue the query.
    HRESULT hRes = pSvc->ExecQuery(
        Language,
        Query,
        WBEM_FLAG_FORWARD_ONLY,         // Flags
        0,                              // Context
        &pEnum
        );

    SysFreeString(Query);
    SysFreeString(Language);

    if (hRes != 0)
    {
        printf("Error\n");
        return;
    }
    
    ULONG uTotal = 0;

    // Retrieve the objects in the result set.
    for (;;)
    {
        IWbemClassObject *pObj = 0;
        ULONG uReturned = 0;

        hRes = pEnum->Next(
            0,                  // Time out
            1,                  // One object
            &pObj,
            &uReturned
            );

        uTotal += uReturned;

        if (uReturned == 0)
            break;

        // Use the object.
        
        // ...
        
        // Release it.
        // ===========
        
        pObj->Release();    // Release objects not owned.            
    }

    // All done.
    pEnum->Release();
}

Configuration requise

   
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)

Voir aussi

API COM pour WMI

Énumération de WMI