Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Шаблон функции, который вызывает указанную функцию или метод (автоматически вызывая winrt::check_hresult в ней), фиксирует указатель интерфейса, который выводится из функции или метода, и возвращает его в качестве параметра typename T шаблона, если T он является производным от Windows::Foundation::IUnknown, в противном случае возвращает winrt::com_ptr. Возвращает пустую com_ptr , если она не выполнена.
Также см. функцию winrt::com_ptr::try_capture.
Синтаксис
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);
Параметры шаблона
typename T Тип указателя интерфейса, который выводится из функции или метода.
typename F Тип объекта функции, например бесплатная функция или std::function.
typename O Тип интерфейса.
typename M Тип метода.
typename Args Ноль или более типов аргументов.
Параметры
function Объект функции типа F.
p Указатель на объект типа O.
object
Тип winrt::com_ptrO.
methodМетод (реализуется по типуOM).
args Ноль или более аргументов типа Args.
Возвращаемое значение
Возвращает значение, если T производный от Windows::Foundation::IUnknown, в противном случае возвращает Twinrt::com_ptr. Возвращает пустую com_ptr , если она не выполнена.
Комментарии
- Перегрузка
try_capture(F function, Args&&...args)вызывает объект функции. - Перегрузка
try_capture(O* p, M method, Args&& ...args)вызывает метод на указателе. - Перегрузка
try_capture(winrt::com_ptr<O> const& object, M method, Args&&...args)вызывает метод объекта.
Все перегрузки передаются (в вызываемый) любые дополнительные аргументы, предоставляемые вами. Все перегрузки также передают два дополнительных аргумента, необходимых таким вызовам, в частности REFIID (идентификатор целевого объекта winrt::com_ptr) и void** (адрес указателя на целевой объект winrt::com_ptr).
Требования
Минимальный поддерживаемый пакет SDK: пакет SDK Windows версии 10.0.17134.0 (Windows 10 версии 1803)
Пространство имен: winrt
Заголовок: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (включен по умолчанию)
См. также раздел
- Пространство имен WinRT
- Шаблон функции capture
- winrt::com_ptr struct template (C++/WinRT) (Шаблон структуры winrt::com_ptr (C++/WinRT))
- Функция winrt::com_ptr::try_capture