Metode IBasicVideo::GetCurrentImage (control.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 mengambil GetCurrentImage gambar saat ini yang menunggu di perender.

Sintaks

HRESULT GetCurrentImage(
  [in, out] long *pBufferSize,
  [out]     long *pDIBImage
);

Parameter

[in, out] pBufferSize

Penunjuk ke variabel yang berisi ukuran buffer yang diteruskan pemanggil. Jika pDIBImageADALAH NULL, parameter ini menerima ukuran buffer yang diperlukan.

[out] pDIBImage

Penunjuk ke buffer tempat gambar lengkap akan disimpan dalam format bitmap independen perangkat (DIB). Transmisikan pointer ke jenis pointer yang panjang.

Nilai kembali

Mengembalikan nilai HRESULT .

Keterangan

Filter Video Renderer dan Video Mixing Renderer (VMR) menerapkan metode ini secara berbeda.

Perender Video saja:

Metode ini gagal jika perender menggunakan akselerasi DirectDraw. Sayangnya, ini tergantung pada konfigurasi perangkat keras pengguna akhir, jadi dalam praktiknya metode ini tidak dapat diandalkan.

Jeda Video Renderer sebelum memanggil metode ini. Jika tidak, metode mengembalikan VFW_E_NOT_PAUSED. Pastikan bahwa operasi jeda telah selesai dengan memanggil IMediaControl::GetState; jika operasi jeda belum selesai, metode GetCurrentImage mengembalikan E_UNEXPECTED. Bergantung pada data apa yang tersedia filter sumber, perender video tidak dijamin untuk melayani permintaan ini. Jika tidak ada gambar yang tersedia, gambar akan mengembalikan E_FAIL.

Video Mixing Renderer saja:

Metode ini dapat diandalkan terlepas dari apakah VMR menggunakan akselerasi DirectDraw dan terlepas dari status grafik saat ini (berjalan, dihentikan, atau dijeda).

Video Renderer dan Video Mixing Renderer:

Untuk mendapatkan ukuran buffer yang diperlukan untuk menahan gambar, panggil metode ini dengan pointer NULL di parameter pDIBImage . Metode mengembalikan ukuran buffer yang diperlukan dalam parameter pBufferSize . Alokasikan buffer ukuran tersebut dan panggil metode lagi, dengan pDIBImage menunjuk ke buffer. Pada panggilan kedua, gunakan pBufferSize untuk menentukan ukuran buffer. Jika buffer terlalu kecil untuk menahan gambar lengkap, metode akan mengembalikan E_OUTOFMEMORY.

Jika metode berhasil, buffer diisi dengan seluruh gambar DIB, termasuk struktur BITMAPINFOHEADER , ditambah entri palet dan masker bit seperti yang didefinisikan dalam struktur WIN32 BITMAPINFO . Format gambar tergantung pada jenis yang disediakan oleh filter sumber, dan tidak dapat ditentukan terlebih dahulu.

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 control.h (termasuk Dshow.h)
Pustaka Strmiids.lib

Lihat juga

Kode Kesalahan dan Keberhasilan

Antarmuka IBasicVideo