Bagikan melalui


Metode IResourceManager::SetFocus (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 SetFocus memberi tahu manajer sumber daya bahwa objek yang ditentukan telah diberi fokus pengguna.

Sintaks

HRESULT SetFocus(
  [in] IUnknown *pFocusObject
);

Parameter

[in] pFocusObject

Arahkan ke objek yang telah diberi fokus pengguna.

Mengembalikan nilai

Mengembalikan nilai HRESULT yang bergantung pada implementasinya. HRESULT dapat menjadi salah satu konstanta standar berikut, atau nilai lain yang tidak tercantum.

Menampilkan kode Deskripsi
E_FAIL
Kegagalan.
E_POINTER
Argumen pointer NULL.
E_INVALIDARG
Argumen tidak valid.
E_NOTIMPL
Metode tidak didukung.
S_OK atau NOERROR
Berhasil.

Keterangan

Di DirectShow, objek yang diberi fokus pengguna biasanya adalah perender video yang jendelanya telah menerima fokus. Manajer sumber daya memberikan prioritas pada permintaan sumber daya dalam urutan berikut:

  1. Permintaan yang dibuat dengan objek fokus yang ditentukan dalam parameter pFocusObject .
  2. Permintaan yang objek fokusnya berbagi filter sumber umum.
  3. Permintaan yang objek fokusnya berbagi grafik filter umum.
  4. Permintaan dalam proses yang sama dengan fokus.
Setelah fokus ditetapkan, manajer sumber daya harus mempertahankan objek fokus sampai ReleaseFocus dipanggil. Artinya, setelah memanggil metode ini, Anda harus menggunakan ReleaseFocus sebelum antarmuka IUnknown objek fokus menjadi tidak valid, kecuali Anda dapat menjamin bahwa dipanggil SetFocus oleh objek yang berbeda sementara itu. Tidak ada jumlah referensi yang ditahan pada objek fokus.

Manajer sumber daya akan menahan pointer ini hingga diganti atau dibatalkan, dan akan menggunakannya untuk mengatasi ketidakcocokan sumber daya. Ini akan menggunakan QueryInterface untuk antarmuka IBaseFilter setidaknya dan, jika ditemukan, akan menggunakan metode pada antarmuka tersebut. Ini memanggil metode pada IBaseFilter untuk memutuskan perender audio mana yang akan digunakan jika ada dua (akan memilih metode dengan filter sumber yang umum untuk objek fokus), dan juga untuk menentukan apakah kedua objek berada dalam grafik filter yang sama.

Persyaratan

   
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 IResourceManager