IDXGIOutputDuplication::AcquireNextFrame method (dxgi1_2.h)

Menunjukkan bahwa aplikasi siap untuk memproses gambar desktop berikutnya.

Sintaks

HRESULT AcquireNextFrame(
  [in]  UINT                    TimeoutInMilliseconds,
  [out] DXGI_OUTDUPL_FRAME_INFO *pFrameInfo,
  [out] IDXGIResource           **ppDesktopResource
);

Parameter

[in] TimeoutInMilliseconds

Interval waktu habis, dalam milidetik. Interval ini menentukan jumlah waktu metode ini menunggu bingkai baru sebelum kembali ke pemanggil. Metode ini mengembalikan jika interval berlalu, dan gambar desktop baru tidak tersedia.

Untuk informasi selengkapnya tentang interval waktu habis, lihat Keterangan.

[out] pFrameInfo

Penunjuk ke lokasi memori yang menerima struktur DXGI_OUTDUPL_FRAME_INFO yang menjelaskan waktu dan statistik presentasi untuk bingkai.

[out] ppDesktopResource

Penunjuk ke variabel yang menerima antarmuka IDXGIResource dari permukaan yang berisi bitmap desktop.

Nilai kembali

AcquireNextFrame mengembalikan:

  • S_OK jika berhasil menerima gambar desktop berikutnya.
  • DXGI_ERROR_ACCESS_LOST jika antarmuka duplikasi desktop tidak valid. Antarmuka duplikasi desktop biasanya menjadi tidak valid ketika jenis gambar yang berbeda ditampilkan di desktop. Contoh situasi ini adalah:
    • Sakelar desktop
    • Perubahan mode
    • Beralih dari DWM aktif, DWM nonaktif, atau aplikasi layar penuh lainnya
    Dalam situasi ini, aplikasi harus merilis antarmuka IDXGIOutputDuplication dan membuat IDXGIOutputDuplication baru untuk konten baru.
  • DXGI_ERROR_WAIT_TIMEOUT jika interval waktu habis berlalu sebelum bingkai desktop berikutnya tersedia.
  • DXGI_ERROR_INVALID_CALL jika aplikasi bernama AcquireNextFrame tanpa merilis bingkai sebelumnya.
  • E_INVALIDARG jika salah satu parameter ke AcquireNextFrame salah; misalnya, jika pFrameInfo adalah NULL.
  • Mungkin kode kesalahan lain yang dijelaskan dalam topik DXGI_ERROR .

Keterangan

Ketika AcquireNextFrame berhasil dikembalikan, aplikasi panggilan dapat mengakses gambar desktop yang dikembalikan AcquireNextFrame dalam variabel di ppDesktopResource. Jika pemanggil menentukan interval waktu habis nol dalam parameter TimeoutInMilliseconds , AcquireNextFrame memverifikasi apakah ada gambar desktop baru yang tersedia, segera kembali, dan menunjukkan hasilnya dengan nilai pengembalian. Jika pemanggil menentukan interval batas waktu INFINITE dalam parameter TimeoutInMilliseconds , interval waktu habis tidak pernah berlalu.

Catatan Anda tidak dapat membatalkan tunggu yang Anda tentukan dalam parameter TimeoutInMilliseconds . Oleh karena itu, jika Anda harus secara berkala memeriksa kondisi lain (misalnya, sinyal penghentian), Anda harus menentukan interval waktu habis non-INFINITE . Setelah interval waktu habis berlalu, Anda dapat memeriksa kondisi lain ini lalu memanggil AcquireNextFrame lagi untuk menunggu bingkai berikutnya.
 
AcquireNextFrame memperoleh bingkai desktop baru ketika sistem operasi memperbarui gambar bitmap desktop atau mengubah bentuk atau posisi pointer perangkat keras. Bingkai baru yang diperoleh AcquireNextFrame mungkin hanya memperbarui gambar desktop, hanya bentuk atau posisi penunjuk yang diperbarui, atau keduanya.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8 [khusus aplikasi desktop]
Server minimum yang didukung Windows Server 2012 [hanya aplikasi desktop]
Target Platform Windows
Header dxgi1_2.h
Pustaka Dxgi.lib

Lihat juga

IDXGIOutputDuplication