Freigeben über


IEnumWbemClassObject-Schnittstelle (wbemcli.h)

Die IEnumWbemClassObject-Schnittstelle wird zum Aufzählen von CIM-Objekten (Common Information Model ) verwendet und ähnelt einem COM-Standardenumerator.

Ein Objekt vom Typ IEnumWbemClassObject wird von Aufrufen der folgenden Methoden empfangen:

CIM-Objekte werden aus einer Enumeration als Objekte vom Typ IWbemClassObject abgerufen, indem die Next-Methode aufgerufen wird. Sie können eine Enumeration zurück an den Anfang zurücksetzen, indem Sie die Reset-Methode aufrufen.

Vererbung

Die IEnumWbemClassObject-Schnittstelle erbt von der IUnknown-Schnittstelle . IEnumWbemClassObject verfügt auch über folgende Membertypen:

Methoden

Die IEnumWbemClassObject-Schnittstelle verfügt über diese Methoden.

 
IEnumWbemClassObject::Clone

Die IEnumWbemClassObject::Clone-Methode erstellt eine logische Kopie des gesamten Enumerators und behält dessen aktuelle Position in einer Enumeration bei.
IEnumWbemClassObject::Next

Verwenden Sie die IEnumWbemClassObject::Next-Methode, um ein oder mehrere Objekte ab der aktuellen Position in einer Enumeration abzurufen.
IEnumWbemClassObject::NextAsync

Verwenden Sie die NextAsync-Methode, wenn ein kontrollierter asynchroner Abruf von Objekten an eine Senke erforderlich ist.
IEnumWbemClassObject::Reset

Die IEnumWbemClassObject::Reset-Methode setzt eine Enumerationssequenz zurück an den Anfang. Da CIM-Objekte dynamisch sind, gibt der Aufruf dieser Methode nicht notwendigerweise dieselbe Liste von Objekten zurück, die Sie zuvor abgerufen haben.
IEnumWbemClassObject::Skip

Sie können die IEnumWbemClassObject::Skip-Methode verwenden, um die aktuelle Position in einer Enumeration um eine angegebene Anzahl von Objekten nach vorne zu verschieben. Dies wirkt sich auch auf nachfolgende Aufrufe von NextAsync aus, wirkt sich jedoch nicht auf ausstehende Übermittlungen aus, die mit NextAsync beginnen.

Hinweise

IEnumWbemClassObject ist das Objekt, das von einer WMI-Abfrage zurückgegeben wird, und wird verwendet, um die zurückgegebenen Werte aufzulisten. Weitere Informationen zur Verwendung dieser Klasse finden Sie unter Abfragen von WMI und Auflisten von WMI.

Beispiele

Im folgenden C++-Codebeispiel wird beschrieben, wie Ein IEnumWbemClassObject abgerufen wird.

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();
}

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile wbemcli.h (include Wbemidl.h)

Weitere Informationen

COM-API für WMI

WMI-Enumeration