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.

objectWinrt::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)

Lihat juga