Metode IFilterMapper2::EnumMatchingFilters (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 ini EnumMatchingFilters menghitung filter terdaftar yang memenuhi persyaratan yang ditentukan.

Sintaks

HRESULT EnumMatchingFilters(
  [out] IEnumMoniker       **ppEnum,
  [in]  DWORD              dwFlags,
  [in]  BOOL               bExactMatch,
  [in]  DWORD              dwMerit,
  [in]  BOOL               bInputNeeded,
  [in]  DWORD              cInputTypes,
  [in]  const GUID         *pInputTypes,
  [in]  const REGPINMEDIUM *pMedIn,
  [in]  const CLSID        *pPinCategoryIn,
  [in]  BOOL               bRender,
  [in]  BOOL               bOutputNeeded,
  [in]  DWORD              cOutputTypes,
  [in]  const GUID         *pOutputTypes,
  [in]  const REGPINMEDIUM *pMedOut,
  [in]  const CLSID        *pPinCategoryOut
);

Parameter

[out] ppEnum

Menerima penunjuk ke antarmuka IEnumMoniker . Gunakan penunjuk antarmuka ini untuk mengambil moniker filter dari enumerasi. Pemanggil harus merilis antarmuka.

[in] dwFlags

Dicadangkan, harus nol.

[in] bExactMatch

Nilai Boolean yang menunjukkan apakah kecocokan persis diperlukan. Lihat Keterangan untuk informasi selengkapnya.

[in] dwMerit

Nilai berjasa minimum. Enumerasi mengecualikan filter dengan nilai merit yang lebih rendah. Untuk daftar nilai manfaat, lihat Merit. Jika dwMerit lebih tinggi dari MERIT_DO_NOT_USE, enumerasi juga mengecualikan filter yang kategorinya memiliki manfaat kurang dari atau sama dengan MERIT_DO_NOT_USE. (Lihat Kategori Filter.)

[in] bInputNeeded

Nilai Boolean yang menunjukkan apakah filter harus memiliki pin input. Jika nilainya TRUE, filter harus memiliki setidaknya satu pin input.

[in] cInputTypes

Jumlah jenis media input yang ditentukan dalam pInputTypes.

[in] pInputTypes

Arahkan ke array pasangan GUID yang menentukan jenis dan subjenis utama, agar pin input cocok. Ukuran array adalah 2 * cInputTypes. Array dapat berupa NULL. Anggota array individual dapat GUID_NULL, yang cocok dengan jenis apa pun. (Lihat Jenis Media.)

[in] pMedIn

Penunjuk ke struktur REGPINMEDIUM yang menentukan media untuk pin input. Atur ke NULL jika tidak diperlukan.

[in] pPinCategoryIn

Penunjuk ke GUID yang menentukan kategori pin input. (Lihat Menyematkan Set Properti.) Atur ke NULL jika tidak diperlukan.

[in] bRender

Nilai Boolean yang menentukan apakah filter harus merender inputnya. Jika TRUE, filter yang ditentukan harus merender inputnya. (Nilai ini sesuai dengan bidang bRendered dalam struktur REGFILTERPINS , yang digunakan untuk mendaftarkan informasi tentang pin filter.)

[in] bOutputNeeded

Nilai Boolean yang menentukan apakah filter harus memiliki pin output. Jika TRUE, filter harus memiliki setidaknya satu pin output.

[in] cOutputTypes

Jumlah jenis media input yang ditentukan dalam pOutputTypes.

[in] pOutputTypes

Penunjuk ke array pasangan GUID yang menentukan jenis utama dan subjenis, agar pin output cocok. Ukuran array adalah 2 * cOutputTypes. Array dapat berupa NULL. Anggota array individual dapat GUID_NULL, yang cocok dengan jenis apa pun.

[in] pMedOut

Penunjuk ke struktur REGPINMEDIUM yang menentukan media untuk pin output. Atur ke NULL jika tidak diperlukan.

[in] pPinCategoryOut

Pointer ke GUID yang menentukan kategori pin output. (Lihat Menyematkan Set Properti.) Atur ke NULL jika tidak diperlukan.

Nilai kembali

Mengembalikan nilai HRESULT . Nilai yang mungkin termasuk yang diperlihatkan dalam tabel berikut ini.

Menampilkan kode Deskripsi
S_OK
Berhasil
E_FAIL
Kegagalan
E_OUTOFMEMORY
Memori tidak mencukuum
E_POINTER
Argumen penunjuk NULL

Keterangan

Untuk menemukan filter yang pin inputnya cocok dengan sekumpulan jenis media tertentu, deklarasikan array dengan GUID jenis utama dan GUID subjenis yang diurutkan berpasangan. Teruskan alamat array dalam parameter pInputTypes , dan atur parameter cInputTypes sama dengan jumlah pasangan (yaitu, setengah ukuran array):

C++
GUID arrayInTypes[2]; arrayInTypes[0] = MEDIATYPE_Video; arrayInTypes[1] = GUID_NULL;

DWORD cInTypes = 1;

Untuk pin output, berikan array serupa dalam parameter pOutputTypes , dan tentukan jumlah pasangan GUID dalam parameter cOutputTypes .

Jika nilai parameter bExactMatchTRUE, metode ini mencari filter yang sama persis dengan nilai yang Anda tentukan untuk jenis media, kategori pin, dan media pin. Jika nilainya FALSE, filter yang mendaftarkan nilai NULL untuk salah satu item ini dianggap cocok. (Akibatnya, nilai NULL dalam registri bertindak sebagai kartubebas.)

Jika Anda menentukan NULL untuk jenis media, kategori pin, atau media pin, filter apa pun dianggap cocok untuk parameter tersebut.

Jika pin tidak mendaftarkan jenis media apa pun, metode ini tidak akan menganggapnya cocok untuk jenis media.

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 IFilterMapper2