Функция winrt::copy_from_abi (C++/WinRT)
Вспомогающая функция, которая копирует объект C++/WinRT из дескриптора или из необработанного указателя. Очищает объект C++/WinRT или уменьшает количество ссылок на любой текущий интерфейс, копирует параметр и начинает управлять дескриптором или интерфейсом, на который он указывает (включая увеличение количества ссылок в параметре). Дополнительные сведения и примеры кода см. в разделе "Взаимодействие между C++/WinRT" и ABI.
Синтаксис
template <typename T, typename V, typename =
std::enable_if_t<!std::is_base_of_v<winrt::Windows::Foundation::IUnknown, T>>>
void copy_from_abi(T& object, V&& value);
void copy_from_abi(winrt::hstring& object, void* value);
void copy_from_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;
Параметры
object
Объект C++/WinRT для работы.
value
Дескриптор или необработанный указатель на целевой объект, время существования которого должно управляться объектом C++/WinRT. В случае перегрузки IUnknown&, void*
функция вызывает AddRef по значению.
Требования
Минимальный поддерживаемый пакет SDK: пакет SDK Windows версии 10.0.17134.0 (Windows 10 версии 1803)
Пространство имен: winrt
Заголовок: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (включен по умолчанию)
См. также раздел
- Пространство имен WinRT
- winrt::com_ptr struct template (C++/WinRT) (Шаблон структуры winrt::com_ptr (C++/WinRT))
- Структура winrt::hstring
- Структура Windows::Foundation::IUnknown
- Взаимодействие между C++/WinRT и интерфейсом ABI