Share via


Interfaz IEnumWbemClassObject (wbemcli.h)

La interfaz IEnumWbemClassObject se usa para enumerar objetos common Information Model (CIM) y es similar a un enumerador COM estándar.

Se recibe un objeto de tipo IEnumWbemClassObject de las llamadas a los métodos siguientes:

Los objetos CIM se recuperan de una enumeración como objetos de tipo IWbemClassObject mediante una llamada al método Next . Puede restablecer una enumeración al principio llamando al método Reset .

Herencia

La interfaz IEnumWbemClassObject hereda de la interfaz IUnknown . IEnumWbemClassObject también tiene estos tipos de miembros:

Métodos

La interfaz IEnumWbemClassObject tiene estos métodos.

 
IEnumWbemClassObject::Clone

El método IEnumWbemClassObject::Clone realiza una copia lógica de todo el enumerador, conservando su posición actual en una enumeración.
IEnumWbemClassObject::Next

Use el método IEnumWbemClassObject::Next para obtener uno o varios objetos empezando por la posición actual de una enumeración.
IEnumWbemClassObject::NextAsync

Use el método NextAsync cuando se requiera una recuperación asincrónica controlada de objetos en un receptor.
IEnumWbemClassObject::Reset

El método IEnumWbemClassObject::Reset restablece una secuencia de enumeración al principio. Dado que los objetos CIM son dinámicos, llamar a este método no devuelve necesariamente la misma lista de objetos que obtuvo anteriormente.
IEnumWbemClassObject::Skip

Puede usar el método IEnumWbemClassObject::Skip para mover la posición actual en una enumeración por delante por un número especificado de objetos. Además, esto afecta a las llamadas posteriores a NextAsync, pero no afecta a las entregas pendientes iniciadas con NextAsync.

Comentarios

IEnumWbemClassObject es el objeto devuelto de una consulta WMI y se usa para enumerar los valores devueltos. Para obtener más información sobre cómo usar esta clase, vea Consulta de WMI y Enumeración de WMI.

Ejemplos

En el ejemplo de código de C++ siguiente se describe cómo recuperar 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();
}

Requisitos

   
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado wbemcli.h (include Wbemidl.h)

Consulte también

API COM para WMI

Enumeración de WMI