Interfaccia IEnumWbemClassObject (wbemcli.h)

L'interfaccia IEnumWbemClassObject viene usata per enumerare oggetti COMMON Information Model (CIM) ed è simile a un enumeratore COM standard.

Un oggetto di tipo IEnumWbemClassObject viene ricevuto dalle chiamate ai metodi seguenti:

Gli oggetti CIM vengono recuperati da un'enumerazione come oggetti di tipo IWbemClassObject chiamando il metodo Next . È possibile reimpostare un'enumerazione all'inizio chiamando il metodo Reset .

Ereditarietà

L'interfaccia IEnumWbemClassObject eredita dall'interfaccia IUnknown . IEnumWbemClassObject include anche questi tipi di membri:

Metodi

L'interfaccia IEnumWbemClassObject include questi metodi.

 
IEnumWbemClassObject::Clone

Il metodo IEnumWbemClassObject::Clone esegue una copia logica dell'intero enumeratore, mantenendo la posizione corrente in un'enumerazione.
IEnumWbemClassObject::Next

Usare il metodo IEnumWbemClassObject::Next per ottenere uno o più oggetti a partire dalla posizione corrente in un'enumerazione.
IEnumWbemClassObject::NextAsync

Usare il metodo NextAsync quando è necessario un recupero asincrono controllato di oggetti in un sink.
IEnumWbemClassObject::Reset

Il metodo IEnumWbemClassObject::Reset reimposta una sequenza di enumerazione all'inizio. Poiché gli oggetti CIM sono dinamici, la chiamata di questo metodo non restituisce necessariamente lo stesso elenco di oggetti ottenuti in precedenza.
IEnumWbemClassObject::Skip

È possibile usare il metodo IEnumWbemClassObject::Skip per spostare la posizione corrente in un'enumerazione in anticipo da un numero specificato di oggetti. Ciò influisce anche sulle chiamate successive a NextAsync, ma non influisce sulle consegne in sospeso avviate con NextAsync.

Commenti

IEnumWbemClassObject è l'oggetto restituito da una query WMI e viene usato per enumerare i valori restituiti. Per altre informazioni su come usare questa classe, vedere Query su WMI ed enumerazione WMI.

Esempio

L'esempio di codice C++ seguente descrive come recuperare un oggetto 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();
}

Requisiti

   
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Piattaforma di destinazione Windows
Intestazione wbemcli.h (include Wbemidl.h)

Vedi anche

API COM per WMI

Enumerazione WMI