Bagikan melalui


Metode ICaptureGraphBuilder2::FindInterface (strmif.h)

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Tangkapan 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 Audio/Video Capture 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 FindInterface ini mencari grafik untuk antarmuka tertentu, dimulai dari filter yang ditentukan. Anda dapat membatasi pencarian ke bagian grafik upstram atau hilir filter, atau membatasinya ke kategori pin atau jenis media tertentu.

Sintaks

HRESULT FindInterface(
  [in]  const GUID  *pCategory,
  [in]  const GUID  *pType,
  [in]  IBaseFilter *pf,
  [in]  REFIID      riid,
  [out] void        **ppint
);

Parameter

[in] pCategory

Penunjuk ke GUID yang menentukan kriteria pencarian. Lihat Keterangan untuk informasi selengkapnya. Nilai berikut dimungkinkan:

  • &LOOK_UPSTREAM_ONLY.
  • &LOOK_DOWNSTREAM_ONLY.
  • Salah satu kategori pin yang tercantum dalam Set Properti Pin.
  • NULL
Lihat Keterangan untuk informasi selengkapnya.

[in] pType

Penunjuk ke GUID yang menentukan jenis media utama dari pin output, atau NULL.

[in] pf

Arahkan ke antarmuka IBaseFilter filter. Metode mulai mencari dari filter ini.

[in] riid

Pengidentifikasi antarmuka (IID) antarmuka untuk menemukan.

[out] ppint

Alamat variabel yang menerima penunjuk antarmuka. Pastikan untuk merilis penunjuk antarmuka yang diambil ketika Anda selesai dengan antarmuka.

Mengembalikan nilai

Mengembalikan nilai HRESULT . Nilai yang mungkin termasuk yang berikut ini.

Menampilkan kode Deskripsi
S_OK
Berhasil.
E_FAIL
Kegagalan.
E_NOINTERFACE
Tidak ada antarmuka seperti itu yang didukung.
E_POINTER
Argumen penunjuk NULL.

Keterangan

Dalam grafik pengambilan, berbagai filter dan pin mungkin mengekspos antarmuka untuk mengatur properti seperti parameter kompresi (IAMVideoCompression) atau format aliran (IAMStreamConfig). Tergantung pada perangkat pengambilan, antarmuka berguna lainnya mungkin termasuk IAMCrossbar, yang merutekan sinyal analog, atau IAMTVTuner, yang mengontrol perangkat tuner TV. Anda dapat menggunakan metode ini untuk menemukan antarmuka, tanpa menulis kode khusus yang melintasi grafik.

Penting Jangan panggil metode ini untuk mendapatkan penunjuk antarmuka IVideoWindow . Selalu kueri manajer grafik filter untuk antarmuka ini. Jika tidak, manajer grafik filter tidak akan merespons dengan benar terhadap perubahan resolusi layar dan peristiwa lainnya.
 
Jika parameter pCategory adalah NULL, metode ini mencari seluruh grafik untuk antarmuka yang diminta. Mulai dari filter yang ditentukan oleh parameter pf , filter meminta objek berikut dalam grafik.
  • Filter
  • Pin filter
  • Semua filter hilir, termasuk pinnya
  • Semua filter upstram, termasuk pinnya
Anda dapat membatasi pencarian dengan mengatur parameter pCategory dan pType , sebagai berikut:
  • Jika pCategory sama dengan &LOOK_UPSTREAM_ONLY, pencarian dimulai dari pin input filter dan berlanjut ke hulu. Ini tidak termasuk filter atau apa pun di hilir dari filter. Parameter pType diabaikan.
  • Jika pCategory sama dengan &LOOK_DOWNSTREAM_ONLY, pencarian dimulai dari pin output filter dan melanjutkan hilir. Ini tidak termasuk filter atau apa pun di hulu dari filter. Parameter pType diabaikan.
  • Jika pCategory menentukan kategori pin, bagian hilir pencarian dibatasi untuk pin output pada filter yang cocok dengan kategori pin dan jenis media yang diberikan dalam parameter pType . Dalam hal ini, metode ini juga mencari filter dan semuanya upstram dari filter.
Selain itu, jika pCategorynon-NULL, metode ini dapat menambahkan filter Windows Driver Model (WDM) tertentu di hulu dari filter yang ditentukan dalam pf. Lihat keterangan di bawah "Filter Pendukung" di bagian ini untuk informasi selengkapnya.

Kategori pin berguna untuk menemukan antarmuka pin pada filter tangkapan. Misalnya, filter pengambilan mungkin memiliki pin terpisah untuk pengambilan dan pratinjau. Jika Anda menentukan kategori pin, Anda juga harus menentukan jenis media, untuk memastikan metode memilih filter dan pin yang benar.

Beberapa filter pengambilan video memiliki pin port video (PIN_CATEGORY_VIDEOPORT) alih-alih pin pratinjau. Jika Anda menentukan PIN_CATEGORY_PREVIEW dan MEDIATYPE_Video, metode memperlakukan pin port video apa pun sebagai pin pratinjau. Aplikasi Anda tidak perlu menguji kemungkinan ini.

Filter Pendukung. Jika perangkat pengambilan menggunakan driver Windows Driver Model (WDM), grafik mungkin memerlukan filter tertentu di hulu dari filter WDM Video Capture , seperti filter Tuner TV atau filter Crossbar Video Analog . Jika parameter pCategory tidak sama dengan NULL, metode ini secara otomatis menyisipkan filter WDM yang diperlukan ke dalam grafik. Untuk melakukannya, ia meminta pin input pada filter tangkapan untuk menentukan media apa yang mereka dukung, dan menghubungkannya ke filter yang cocok. Jika parameter pCategory adalah NULL, metode tidak menambahkan filter upstram.

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 ICaptureGraphBuilder2