Bagikan melalui


IEnumWbemClassObject::Metode berikutnya (wbemcli.h)

Gunakan metode IEnumWbemClassObject::Next untuk mendapatkan satu atau beberapa objek yang dimulai pada posisi saat ini dalam enumerasi. Metode ini memajukan posisi saat ini dalam enumerasi oleh objek uCount , sehingga panggilan berikutnya mengembalikan objek berikutnya.

Sintaks

HRESULT Next(
  [in]  long             lTimeout,
  [in]  ULONG            uCount,
  [out] IWbemClassObject **apObjects,
  [out] ULONG            *puReturned
);

Parameter

[in] lTimeout

Menentukan jumlah waktu maksimum dalam milidetik yang diblokir panggilan sebelum kembali. Jika Anda menggunakan WBEM_INFINITE konstanta (0xFFFFFFFF), panggilan akan memblokir hingga objek tersedia. Jika Anda menggunakan nilai 0 (WBEM_NO_WAIT), panggilan segera kembali, apakah ada objek yang tersedia atau tidak.

[in] uCount

Jumlah objek yang diminta.

[out] apObjects

Pointer ke penyimpanan yang cukup untuk menahan jumlah pointer antarmuka IWbemClassObject yang ditentukan oleh uCount. Penyimpanan ini harus disediakan oleh pemanggil. Parameter ini tidak boleh NULL. Penelepon harus memanggil Rilis pada setiap pointer antarmuka yang diterima ketika mereka tidak lagi diperlukan.

[out] puReturned

Penunjuk ke ULONG yang menerima jumlah objek yang dikembalikan. Angka ini bisa kurang dari angka yang diminta di uCount. Penunjuk ini tidak boleh NULL.

Catatan Metode Berikutnya mengembalikan WBEM_S_FALSE ketika Anda telah mencapai akhir enumerasi, bahkan jika objek telah berhasil dikembalikan. Nilai WBEM_S_NO_ERROR hanya ditampilkan saat jumlah objek yang dikembalikan cocok dengan angka yang diminta di uCount. Nilai WBEM_S_TIMEDOUT dikembalikan ketika jumlah objek yang dikembalikan kurang dari angka yang diminta tetapi Anda tidak berada di akhir enumerasi. Oleh karena itu, Anda harus menggunakan logika penghentian perulangan yang memeriksa nilai puReturned untuk memastikan bahwa Anda telah mencapai akhir enumerasi.
 

Mengembalikan nilai

Metode Berikutnya mengembalikan HRESULT yang menunjukkan status panggilan metode. Daftar berikut mencantumkan nilai yang terkandung dalam HRESULT.

Keterangan

Anda mungkin melihat kode kesalahan khusus COM yang dikembalikan jika masalah jaringan menyebabkan Anda kehilangan koneksi jarak jauh ke Manajemen Windows. Jika terjadi kesalahan, Anda dapat memanggil fungsi COM GetErrorInfo untuk mendapatkan informasi kesalahan lebih lanjut.

Jika lebih dari satu objek diminta, dan jika jumlah objek yang diminta dikembalikan, fungsi akan mengembalikan WBEM_S_NO_ERROR. Jika kurang dari jumlah objek yang diminta tersedia, dan jika enumerasi telah selesai, objek tersebut dikembalikan dan fungsi mengembalikan WBEM_S_FALSE.

Jika enumerasi belum selesai, panggilan menunggu objek tersedia hingga waktu habis yang ditentukan. Jika waktu enumerasi habis sebelum objek tersedia, fungsi akan mengembalikan WBEM_S_TIMEDOUT.

Catatan Karena panggilan balik ke sink mungkin tidak dikembalikan pada tingkat autentikasi yang sama dengan yang diperlukan klien, disarankan agar Anda menggunakan semisinkron alih-alih komunikasi asinkron. Untuk informasi selengkapnya, lihat Memanggil Metode.
 

Contoh

Untuk diskusi dan contoh pembuatan kueri yang diperluas di C++ dan WMI, lihat Membuat Kueri WMI Di C++ di CodeProject.

Dalam kode berikut, lebih dari satu objek diminta:
HRESULT ProcessEnum( IEnumWbemClassObject*    pEnum )
{
    HRESULT    hRes = WBEM_S_NO_ERROR;

    // Final Next will return WBEM_S_FALSE
    while ( WBEM_S_NO_ERROR == hRes )
    {
        ULONG            uReturned;
        IWbemClassObject*    apObj[10];

        hRes = pEnum->Next( WBEM_INFINITE, 10, apObj, &uReturned );

        if ( SUCCEEDED( hRes ) )
        {
            // Do something with the objects.
            //ProcessObjects( uReturned,  apObj );

            for ( ULONG n = 0; n < uReturned; n++ )
            {
                apObj[n]->Release();
            }

        }    // If Enum succeeded...
    }    // While Enum is returning objects...

    return hRes;
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista
Server minimum yang didukung Windows Server 2008
Target Platform Windows
Header wbemcli.h (termasuk Wbemidl.h)
Pustaka Wbemuuid.lib
DLL Fastprox.dll

Lihat juga

Menghitung WMI

IEnumWbemClassObject