Metode ICreateDevEnum::CreateClassEnumerator (strmif.h)

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Pengambilan Audio/Video di Media Foundation. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer, IMFMediaEngine , dan Pengambilan Audio/Video di Media Foundation alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Metode CreateClassEnumerator membuat enumerator untuk kategori perangkat tertentu.

Sintaks

HRESULT CreateClassEnumerator(
  [in]  REFCLSID     clsidDeviceClass,
  [out] IEnumMoniker **ppEnumMoniker,
  [in]  DWORD        dwFlags
);

Parameter

[in] clsidDeviceClass

Menentukan pengidentifikasi kelas (CLSID) dari kategori perangkat. Lihat Kategori Filter.

[out] ppEnumMoniker

Menerima penunjuk ke antarmuka IEnumMoniker . Pemanggil harus merilis antarmuka.

[in] dwFlags

Kombinasi bitwise dari nol atau lebih bendera. Jika nol, metode menghitung setiap filter dalam kategori. Jika ada bendera yang diatur, enumerasi hanya menyertakan filter yang cocok dengan bendera yang ditentukan. Bendera berikut didefinisikan:

Bendera Deskripsi
CDEF_DEVMON_CMGR_DEVICE Hitung codec audio atau video, menggunakan manajer kompresi audio (ACM) atau manajer kompresi video (VCM).
CDEF_DEVMON_DMO Menghitung Objek Media DirectX (DMO).
CDEF_DEVMON_FILTER Menghitung filter DirectShow asli.
CDEF_DEVMON_PNP_DEVICE Menghitung perangkat keras Plug and Play.

Mengembalikan nilai

Mengembalikan salah satu nilai HRESULT berikut.

Menampilkan kode Deskripsi
S_OK
Berhasil.
E_OUTOFMEMORY
Kehabisan memori.
S_FALSE
Kategori yang ditentukan oleh clsidDeviceClass tidak ada atau kosong.
E_POINTER
Argumen pointer NULL.

Keterangan

Jika kategori tidak ada atau kosong, nilai yang dikembalikan S_FALSE, dan parameter ppEnumMoniker menerima nilai NULL. Oleh karena itu, uji nilai yang dikembalikan S_OK alih-alih menggunakan makro BERHASIL :

C++
IEnumMoniker *pEnum = NULL;
hr = pSysDevEnum->CreateClassEnumerator(
    CLSID_VideoCompressorCategory, &pEnum, 0);
if (hr == S_OK) 
{
    // Safe to dereference pEnum.
    pEnum->Release();
}
Gunakan antarmuka IEnumMoniker untuk menghitung moniker yang mewakili filter dalam kategori perangkat. Monikers mendukung antarmuka IMoniker . Moniker yang dibuat oleh CreateClassEnumerator juga mendukung antarmuka IGetCapabilitiesKey .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header strmif.h (termasuk Dshow.h)
Pustaka Strmiids.lib

Lihat juga

Kode Kesalahan dan Keberhasilan

Antarmuka ICreateDevEnum