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 di atasnya), menangkap pointer 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. Mengembalikan com_ptr kosong jika tidak berhasil.
Lihat juga fungsi winrt::com_ptr::try_capture.
Sintaks
template <typename T, typename F, typename...Args>
impl::com_ref<T> try_capture(F function, Args&& ...args);
template <typename T, typename O, typename M, typename...Args>
impl::com_ref<T> try_capture(O* p, M method, Args&& ...args);
template <typename T, typename O, typename M, typename...Args>
impl::com_ref<T> try_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 Nol atau lebih argumen jenis Args.
Mengembalikan nilai
Mengembalikan T jika T berasal dari Windows::Foundation::IUnknown, jika tidak, mengembalikan winrt::com_ptr. Mengembalikan com_ptr kosong jika tidak berhasil.
Keterangan
- Kelebihan
try_capture(F function, Args&&...args)beban memanggil objek fungsi. - Kelebihan
try_capture(O* p, M method, Args&& ...args)beban memanggil metode pada penunjuk. - Kelebihan
try_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 oleh pemanggilan tersebut—khususnya, REFIID (ID target winrt::com_ptr), dan kekosongan** (Alamat pointer 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)