winrt::try_capture templat fungsi (C++/WinRT)
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)