Compartilhar via


Interface IEnumWbemClassObject (wbemcli.h)

A interface IEnumWbemClassObject é usada para enumerar objetos CIM ( Common Information Model ) e é semelhante a um enumerador COM padrão.

Um objeto do tipo IEnumWbemClassObject é recebido de chamadas para os seguintes métodos:

Os objetos CIM são recuperados de uma enumeração como objetos do tipo IWbemClassObject chamando o método Next . Você pode redefinir uma enumeração de volta ao início chamando o método Reset .

Herança

A interface IEnumWbemClassObject herda da interface IUnknown . IEnumWbemClassObject também tem estes tipos de membros:

Métodos

A interface IEnumWbemClassObject tem esses métodos.

 
IEnumWbemClassObject::Clone

O método IEnumWbemClassObject::Clone faz uma cópia lógica de todo o enumerador, mantendo sua posição atual em uma enumeração.
IEnumWbemClassObject::Next

Use o método IEnumWbemClassObject::Next para obter um ou mais objetos começando na posição atual em uma enumeração.
IEnumWbemClassObject::NextAsync

Use o método NextAsync quando for necessária uma recuperação assíncrona controlada de objetos em um coletor.
IEnumWbemClassObject::Reset

O método IEnumWbemClassObject::Reset redefine uma sequência de enumeração de volta ao início. Como os objetos CIM são dinâmicos, chamar esse método não necessariamente retorna a mesma lista de objetos obtidos anteriormente.
IEnumWbemClassObject::Skip

Você pode usar o método IEnumWbemClassObject::Skip para mover a posição atual em uma enumeração à frente por um número especificado de objetos. Além disso, isso afeta as chamadas subsequentes para NextAsync, mas não afeta as entregas pendentes iniciadas com NextAsync.

Comentários

IEnumWbemClassObject é o objeto retornado de uma consulta WMI e é usado para enumerar por meio dos valores retornados. Para obter mais informações sobre como usar essa classe, consulte Consultando WMI e Enumerando WMI.

Exemplos

O exemplo de código C++ a seguir descreve como recuperar um 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();
}

Requisitos

   
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho wbemcli.h (inclua Wbemidl.h)

Confira também

API COM para WMI

Enumeração do WMI