Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Templat fungsi yang memanggil fungsi atau metode tertentu (secara otomatis memanggil winrt::check_hresult ), menangkap penunjuk antarmuka yang keluaran dari fungsi atau metode, dan mengembalikannya sebagai parameter typename T templat jika T berasal dari Windows::Foundation::IUnknown, jika tidak, mengembalikan winrt::com_ptr. Melempar jika tidak berhasil.
Lihat juga fungsi winrt::com_ptr::capture.
Sintaks
template <typename T, typename F, typename...Args>
impl::com_ref<T> capture(F function, Args&& ...args);
template <typename T, typename O, typename M, typename...Args>
impl::com_ref<T> capture(O* p, M method, Args&& ...args);
template <typename T, typename O, typename M, typename...Args>
impl::com_ref<T> capture(com_ptr<O> const& object, M method, Args&& ...args);
Parameter templat
typename T Jenis penunjuk antarmuka yang dihasilkan dari fungsi atau metode .
typename F Jenis objek fungsi, seperti fungsi bebas, atau std::function.
typename O Jenis antarmuka.
typename M Jenis metode.
typename Args Jenis argumen nol atau lebih.
Parameter
function Objek fungsi jenis F.
p Penunjuk ke objek jenis O.
object
Winrt::com_ptr jenis O.
method Metode (diimplementasikan oleh O) dari jenis M.
args Argumen nol atau lebih dari jenis Args.
Mengembalikan nilai
Mengembalikan T jika T berasal dari Windows::Foundation::IUnknown, jika tidak, mengembalikan winrt::com_ptr. Melempar jika tidak berhasil.
Keterangan
- Kelebihan
capture(F function, Args&&...args)beban memanggil objek fungsi. - Kelebihan
capture(O* p, M method, Args&& ...args)beban memanggil metode pada penunjuk. - Kelebihan
capture(winrt::com_ptr<O> const& object, M method, Args&&...args)beban memanggil metode pada objek .
Semua kelebihan beban melewati (ke pemanggilan) argumen tambahan apa pun yang Anda berikan. Semua kelebihan beban juga meneruskan dua argumen tambahan yang diperlukan pemanggilan tersebut—khususnya, REFIID (ID target winrt::com_ptr), dan kekosongan** (Alamat penunjuk ke target winrt::com_ptr).
Persyaratan
SDK minimum yang didukung: Windows SDK versi 10.0.17134.0 (Windows 10, versi 1803)
Namespace: winrt
Header: %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (disertakan secara default)