Antarmuka IEnumWbemClassObject (wbemcli.h)

Antarmuka IEnumWbemClassObject digunakan untuk menghitung objek Common Information Model (CIM) dan mirip dengan enumerator COM standar.

Objek jenis IEnumWbemClassObject diterima dari panggilan ke metode berikut:

Objek CIM diambil dari enumerasi sebagai objek jenis IWbemClassObject dengan memanggil metode Berikutnya . Anda dapat mengatur ulang enumerasi kembali ke awal dengan memanggil metode Reset .

Warisan

Antarmuka IEnumWbemClassObject mewarisi dari antarmuka IUnknown . IEnumWbemClassObject juga memiliki jenis anggota ini:

Metode

Antarmuka IEnumWbemClassObject memiliki metode ini.

 
IEnumWbemClassObject::Clone

Metode IEnumWbemClassObject::Clone membuat salinan logis dari seluruh enumerator, mempertahankan posisinya saat ini dalam enumerasi.
IEnumWbemClassObject::Berikutnya

Gunakan metode IEnumWbemClassObject::Next untuk mendapatkan satu atau beberapa objek yang dimulai pada posisi saat ini dalam enumerasi.
IEnumWbemClassObject::NextAsync

Gunakan metode NextAsync saat pengambilan objek asinkron terkontrol ke sink diperlukan.
IEnumWbemClassObject::Reset

Metode IEnumWbemClassObject::Reset mengatur ulang urutan enumerasi kembali ke awal. Karena objek CIM bersifat dinamis, memanggil metode ini tidak selalu mengembalikan daftar objek yang sama dengan yang Anda peroleh sebelumnya.
IEnumWbemClassObject::Skip

Anda dapat menggunakan metode IEnumWbemClassObject::Skip untuk memindahkan posisi saat ini dalam enumerasi di depan oleh sejumlah objek tertentu. Selain itu, ini mempengaruhi panggilan berikutnya ke NextAsync, tetapi tidak memengaruhi pengiriman yang tertunda dimulai dengan NextAsync.

Keterangan

IEnumWbemClassObject adalah objek yang dikembalikan dari kueri WMI, dan digunakan untuk menghitung melalui nilai yang dikembalikan. Untuk informasi selengkapnya tentang cara menggunakan kelas ini, lihat Mengkueri WMI dan Menghitung WMI.

Contoh

Sampel kode C++ berikut menjelaskan cara mengambil 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();
}

Persyaratan

   
Klien minimum yang didukung Windows Vista
Server minimum yang didukung Windows Server 2008
Target Platform Windows
Header wbemcli.h (termasuk Wbemidl.h)

Lihat juga

COM API untuk WMI

Menghitung WMI