wbemcli.h (IEnumWbemClassObject 介面)

IEnumWbemClassObject介面是用來列舉通用訊息模型 (CIM) 物件,類似于標準 COM 列舉值。

從呼叫下列方法,收到 IEnumWbemClassObject 類型的物件:

CIM 物件會藉由呼叫Next方法,從列舉擷取為IWbemClassObject類型的物件。 您可以藉由呼叫 Reset 方法,將列舉重設回開頭。

繼承

IEnumWbemClassObject介面繼承自IUnknown介面。 IEnumWbemClassObject 也有下列類型的成員:

方法

IEnumWbemClassObject介面具有這些方法。

 
IEnumWbemClassObject::Clone

IEnumWbemClassObject::Clone 方法會建立整個列舉值的邏輯複本,並在列舉中保留其目前的位置。
IEnumWbemClassObject::Next

使用 IEnumWbemClassObject::Next 方法來取得從列舉中目前位置開始的一或多個物件。
IEnumWbemClassObject::NextAsync

當需要物件到接收的受控制非同步擷取時,請使用 NextAsync 方法。
IEnumWbemClassObject::Reset

IEnumWbemClassObject::Reset 方法會將列舉序列重設為開頭。 因為 CIM 物件是動態的,所以呼叫這個方法不一定會傳回您先前取得的相同物件清單。
IEnumWbemClassObject::Skip

您可以使用 IEnumWbemClassObject::Skip 方法,將列舉中的目前位置向前移動指定的物件數目。 此外,這會影響 NextAsync 的後續呼叫,但不會影響從 NextAsync 開始的擱置傳遞。

備註

IEnumWbemClassObject 是從 WMI 查詢傳回的物件,可用來列舉傳回的值。 如需如何使用這個類別的詳細資訊,請參閱 查詢 WMI列舉 WMI

範例

下列 C++ 程式碼範例說明如何擷取 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();
}

規格需求

   
最低支援的用戶端 Windows Vista
最低支援的伺服器 Windows Server 2008
目標平台 Windows
標頭 wbemcli.h (包含 Wbemidl.h)

另請參閱

適用于 WMI 的 COM API

列舉 WMI