Пространство имен winrt (C++/WinRT)

Пространство имен winrt предоставляет пользовательские типы данных, принадлежащие C++/WinRT — стандартной современной проекции языка C++17 для API среда выполнения Windows (WinRT). Эти пользовательские типы обеспечивают соответствующие преобразования в стандартные типы и из них, чтобы большую часть времени можно было продолжать использовать стандартные функции языка C++, которые вы привыкли использовать, и исходный код, который у вас уже есть.

Кроме того, в пространстве имен winrt представлены функции (для создания экземпляров класса среды выполнения, упаковка, распаковка и т. д.), интеллектуальные указатели и другие средства.

Типы в пространстве имен winrt

Тип Описание
Шаблон структуры agile_ref Тип, представляющий гибкую ссылку на объект или интерфейс C++/WinRT.
Структура apartment_context Записывает контекст потока в сопрограмме, чтобы его можно было восстановить позже.
Шаблон структуры array_view Представление или диапазон непрерывного ряда значений.
Структура маркера auto_revoke_t Тип маркера, используемый для запроса отмены события при регистрации делегата для обработки события.
шаблон структуры cloaked marker struct Тип маркера, используемый для указания того, что реализованный интерфейс не должен сообщаться IInspectable::GetIids
Структура clock Тип, содержащий статические вспомогательные функции для преобразования windows::Foundation::D ateTime (то есть std::chrono::time_point) в winrt::file_time и из time_t.
Шаблон структуры com_array_view Представление или диапазон смежных рядов значений для передачи в среда выполнения Windows API и из него.
Шаблон структуры com_ptr Шаблон интеллектуального указателя COM с подсчетом ссылок.
структуру составного маркера Тип маркера, используемый для указания того, что тип может быть внутренним классом составного класса.
создание структуры маркера Тип маркера, используемый для указания того, что тип является внешним классом составного класса.
deferrable_event_args Тип, который можно использовать для реализации (создания) шаблона отложенного события.
Шаблон структуры delegate Тип, который можно использовать для объявления настраиваемого типа делегата для собственных событий.
Шаблон структуры event Тип, который можно использовать для объявления и реализации события указанного типа делегата.
Шаблон структуры event_revoker При регистрации делегата можно запросить средство отзыва событий, которое можно использовать для автоматического или ручного отзыва делегата.
Структура event_token Маркер, возвращаемый при регистрации делегата обработки событий с событием; может использоваться для отмены регистрации того же делегата.
Структура file_handle Представляет объект дескриптора файлов Windows.
Структура fire_and_forget Используйте этот тип возвращаемого значения, чтобы сделать сопрограмму огнем и забыть.
структуру guid Представляет глобальный уникальный идентификатор (GUID).
Структура handle Представляет объект дескриптора Windows.
Шаблон структуры handle_type Шаблон для структур winrt::handle и winrt::file_handle .
Структура hstring Последовательная коллекция символов Юникода UTF-16, представляющих текстовую строку.
Структура hresult_access_denied Тип, производный от winrt::hresult_error, представляющий E_ACCESSDENIED код ошибки HRESULT.
Структура hresult_canceled Тип, производный от winrt::hresult_error, представляющий ERROR_CANCELLED код ошибки HRESULT.
Структура hresult_changed_state Тип, производный от winrt::hresult_error, представляющий E_CHANGED_STATE код ошибки HRESULT.
Структура hresult_class_not_available Тип, производный от winrt::hresult_error, представляющий CLASS_E_CLASSNOTAVAILABLE код ошибки HRESULT.
Структура hresult_error Тип, представляющий код ошибки HRESULT.
Структура hresult_illegal_delegate_assignment Тип, производный от winrt::hresult_error, представляющий E_ILLEGAL_DELEGATE_ASSIGNMENT код ошибки HRESULT.
Структура hresult_illegal_method_call Тип, производный от winrt::hresult_error, представляющий E_ILLEGAL_METHOD_CALL код ошибки HRESULT.
Структура hresult_illegal_state_change Тип, производный от winrt::hresult_error, представляющий код ошибки E_ILLEGAL_STATE_CHANGE HRESULT.
Структура hresult_invalid_argument Тип, производный от winrt::hresult_error, представляющий E_INVALIDARG код ошибки HRESULT.
Структура hresult_no_interface Тип, производный от winrt::hresult_error, представляющий E_NOINTERFACE код ошибки HRESULT.
Структура hresult_not_implemented Тип, производный от winrt::hresult_error, представляющий E_NOTIMPL код ошибки HRESULT.
Структура hresult_out_of_bounds Тип, производный от winrt::hresult_error, представляющий E_BOUNDS код ошибки HRESULT.
Структура hresult_wrong_thread Тип, производный от winrt::hresult_error, представляющий RPC_E_WRONG_THREAD код ошибки HRESULT.
Шаблон структуры implements Шаблон базовой структуры, реализующий один или несколько интерфейсов среда выполнения Windows от имени производного типа.
Шаблон структуры map_base Базовый класс, производный от , представляющий ненаблюдаемую ассоциативную коллекцию.
Шаблон структуры map_view_base Базовый класс, производный от , который представляет представление непрерывной последовательности элементов в ассоциативной коллекции.
no_module_lock структуры маркера Тип маркера, используемый для указания того, что экземпляры типа не учитываются в количестве объектов модуля.
Структура маркера no_weak_ref Тип маркера, используемый для отказа от поддержки слабых ссылок.
Структура маркера non_agile Тип маркера, используемый для указания того, что тип не является гибким и, следовательно, не реализует интерфейс IAgileObject.
Шаблон структуры observable_map_base Базовый класс, производный от , который представляет наблюдаемую ассоциативную коллекцию.
Шаблон структуры observable_vector_base Базовый класс, производный от , который представляет наблюдаемый вектор.
Структура маркера static_lifetime Тип маркера, используемый для выбора фабрики активации в статическом времени существования.
Шаблон структуры vector_base Базовый класс, производный от , который представляет ненаблюдаемую коллекцию общего назначения, известную как вектор.
Шаблон структуры vector_view_base Базовый класс, от которого можно наследовать для реализации собственного пользовательского представления или диапазона непрерывной последовательности элементов в коллекции общего назначения.
Шаблон структуры weak_ref Тип, представляющий слабую ссылку на объект или интерфейс C++/WinRT.
Структура Windows::Foundation::IUnknown Каждый класс среды выполнения C++/WinRT (будь то windows или сторонний класс среды выполнения) является производным от winrt::Windows::Foundation::IUnknown.

Функции в пространстве имен winrt

Функция Описание
Функция attach_abi Вспомогающая функция, которая присоединяет объект C++/WinRT к дескриптору или необработанному указателю, которому принадлежит ссылка на его целевой объект.
Шаблон функции box_value Шаблон функции, который заключает (или упаковывает) скалярное значение или значение массива внутри объекта ссылочного класса, чтобы его можно было передать в функцию, которая ожидает IInspectable.
Шаблон функции capture Шаблон функции, вызывающий указанную функцию или метод, захватывает результирующий указатель интерфейса и возвращает его в виде winrt::com_ptr.
Шаблон функции check_bool Вспомогающая функция, которая проверяет, является ли значение false, и, если да, получает значение кода последней ошибки вызывающего потока и создает исключение с помощью объекта C++/WinRT, представляющего этот код ошибки.
Функция check_hresult Вспомогающая функция, которая проверяет, представляет ли код HRESULT ошибку, и, если да, создает исключение с помощью объекта C++/WinRT, представляющего код ошибки.
Шаблон функции check_nt Вспомогающая функция, которая проверяет, представляет ли код ошибку, и, если да, сопоставляет значение состояния NT кода ошибки со значением HRESULT и создает исключение с помощью объекта C++/WinRT, представляющего код ошибки.
Шаблон функции check_pointer Вспомогающая функция, которая проверяет, имеет ли указатель значение NULL, и, если да, извлекает значение кода последней ошибки вызывающего потока и создает исключение с помощью объекта C++/WinRT, представляющего этот код ошибки.
Шаблон функции check_win32 Вспомогающая функция, которая проверяет, представляет ли код ошибку, и, если да, сопоставляет код системной ошибки значения со значением HRESULT и создает исключение с помощью объекта C++/WinRT, представляющего код ошибки.
Функция copy_from_abi Вспомогающая функция, которая копирует в объект C++/WinRT из дескриптора или из необработанного указателя.
Функция copy_to_abi Вспомогающая функция, которая копирует в дескриптор или указатель из объекта C++/WinRT.
Шаблон функции create_instance Шаблон функции, который создает один неинициализированный объект класса, связанного с указанным идентификатором CLSID, и возвращает его в виде winrt::com_ptr или вызывает исключение в случае успеха.
Функция detach_abi Вспомогающая функция, которая отсоединяет объект C++/WinRT от указанного дескриптора или от упоминаемого интерфейса.
Шаблон функции from_abi Вспомогающая функция, которая при получении объекта проецируемого типа извлекает указатель на реализацию.
функция get_abi Вспомогающая функция, извлекающая указатель на базовый интерфейс IUnknown объекта C++/WinRT.
Шаблон функции get_activation_factory Вспомогающая функция, извлекающая фабрику активации для указанного типа класса среда выполнения Windows.
Функция get_cancellation_token В сопрограмме используйте объект, возвращенный winrt::get_cancellation_token для опроса или ответа на отмену.
Функция get_class_name Вспомогающая функция, извлекающая строку, содержащую полное имя типа указанного класса среда выполнения Windows.
Функция get_interfaces Вспомогающая функция, извлекающая массив, содержащий идентификаторы интерфейсов, реализованных объектом C++/WinRT.
Функция get_progress_token В сопрограмме используйте объект, возвращаемый winrt::get_progress_token , чтобы сообщить о ходе выполнения обработчику.
Шаблон функции get_self Вспомогающая функция, которая при получении объекта проецируемого типа извлекает указатель на реализацию.
Функция get_trust_level Вспомогающая функция, извлекающая уровень доверия объекта C++/WinRT.
Функция get_unknown Вспомогающая функция, возвращающая адрес базового необработанного интерфейса IUnknown объекта проецируемого типа.
Шаблон функции guid_of Шаблон вспомогательной функции, который извлекает GUID класса среды выполнения, совместного класса или интерфейса.
Шаблон функции is_guid_of Шаблон вспомогательной функции, определяющий, является ли предоставленный GUID одним из указанных классов среды выполнения, соклассов или интерфейсов.
Шаблон функции make Заводской метод, возвращающий экземпляр проецируемого типа или интерфейса при параметризации с помощью соответствующего типа реализации.
Шаблон функции make_agile Вспомогающая функция, возвращающая объект agile_ref , представляющий гибкую ссылку на объект или интерфейс C++/WinRT.
Шаблон функции make_self Метод фабрики, возвращающий com_ptr экземпляру типа реализации для класса среды выполнения.
Шаблон функции make_weak Вспомогающая функция, возвращающая объект weak_ref , представляющий слабую ссылку на объект или интерфейс C++/WinRT.
Шаблон функции name_of Вспомогающая функция, извлекающая строковое представление, содержащее полное имя типа определенного класса среда выполнения Windows.
функция put_abi Вспомогающая функция, извлекающая адрес базового указателя интерфейса IUnknown объекта C++/WinRT, чтобы для него можно было задать другое значение.
Функция resume_after Вспомогающая функция, которая возвращает управление вызывающему объекту, а затем возобновляет выполнение в потоке пула потоков после задержки.
Функция resume_background Вспомогающая функция, которая возвращает управление вызывающему объекту и возобновляет выполнение в потоке пула потоков.
Функция resume_foreground Вспомогающая функция для использования в сопрограмме, которая позволяет co_await переключать выполнение в определенный поток переднего плана.
resume_on_signal Функция, которую можно использовать для приостановки до получения сигнала о событии ядра.
Шаблон функции single_threaded_map Шаблон функции, который создает и возвращает объект типа, реализующего ненаблюдаемую ассоциативную коллекцию (карту). Объект возвращается в виде IMap.
Шаблон функции single_threaded_observable_map Шаблон функции, который создает и возвращает объект типа , реализующий наблюдаемую ассоциативную коллекцию (карту). Объект возвращается в виде IObservableMap.
Шаблон функции single_threaded_observable_vector Шаблон функции, который создает и возвращает объект типа, реализующего наблюдаемую коллекцию. Объект возвращается в виде IObservableVector.
Шаблон функции single_threaded_vector Шаблон функции, который создает и возвращает объект типа, реализующего коллекцию общего назначения. Объект возвращается в виде IVector.
Функция swap Вспомогающая функция, которая переключает содержимое двух значений.
Функция throw_hresult Вспомогающая функция, которая принимает код ошибки HRESULT и создает исключение с помощью объекта C++/WinRT, представляющего этот код ошибки.
Функция throw_last_error Вспомогающая функция, которая извлекает значение кода последней ошибки вызывающего потока и создает исключение с помощью объекта C++/WinRT, представляющего этот код ошибки.
Функция to_hresult Вспомогающая функция для использования в блоке catch, которая преобразует последнее исключение в код ошибки HRESULT.
Функция to_hstring Вспомогающая функция, которая преобразует входное значение в winrt::hstring , содержащий строковое представление значения.
функция to_string Вспомогающая функция, которая преобразует строку на ширину входных данных в строку std::string , содержащую узкую строку UTF-8.
Шаблон функции try_capture Шаблон функции, вызывающий указанную функцию или метод, захватывает указатель интерфейса, который является выходными данными функции или метода, и возвращает его в виде winrt::com_ptr или пустого com_ptr в случае успеха.
Шаблон функции try_create_instance Шаблон функции, который создает один неинициализированный объект класса, связанного с указанным идентификатором CLSID, и возвращает его в виде winrt::com_ptr или пустого com_ptr , если это не удалось.
Шаблон функции try_get_activation_factory Вспомогающая функция, извлекающая фабрику активации для указанного типа класса среда выполнения Windows или пустой com_ptr в случае успеха.
Шаблон функции unbox_value Шаблон функции, который разворачивает (или распаковывает) скалярное значение или значение массива из объекта ссылочного класса, чтобы его можно было обработать в функции, которая ожидает IInspectable.
Шаблон функции unbox_value_or Шаблон функции, который разворачивает (или распаковывает) скалярное значение из объекта ссылочного класса с резервным значением, чтобы его можно было обработать в функции, которая ожидает IInspectable.
Шаблон функции xaml_typename Вспомогающая функция, возвращающая имя типа среда выполнения Windows в виде объекта Windows::UI::Xaml::Interop::TypeName.

Функции C++/WinRT, расширяющие среда выполнения Windows API

Функции расширения существуют в типах проекций C++/WinRT для определенных API среда выполнения Windows. Например, winrt::Windows::Foundation::IAsyncAction — это тип проекции C++/WinRT для IAsyncAction. Функции расширения не являются частью поверхности двоичного интерфейса приложения (ABI) фактических типов среда выполнения Windows, поэтому они не перечислены как члены СРЕДА ВЫПОЛНЕНИЯ WINDOWS API. Но их можно вызывать из любого проекта C++/WinRT.

API-интерфейс WinRT Функции Описание
IAsyncAction get, wait_for См. раздел Функции расширения IAsyncAction C++/WinRT.
IAsyncActionWithProgress get, wait_for См. раздел Функции расширения IAsyncActionWithProgress C++/WinRT.
IAsyncOperation get, wait_for См. раздел Функции расширения IAsyncOperation C++/WinRT.
IAsyncOperationWithProgress get, wait_for См. раздел Функции расширения C++/WinRT IAsyncOperationWithProgress.
IBindableIterable begin, end См. раздел Функции расширения IBindableIterable C++/WinRT.
IBindableIterator begin, end, operator++, operator++(int), operator* См. раздел Функции расширения IBindableIterator C++/WinRT.
Ibuffer data См. раздел Функции расширения IBuffer C++/WinRT
IIterable begin, end См. раздел Функции расширения IIterable C++/WinRT.
IIterator operator++, operator++(int), operator* См. раздел Функции расширения IIterator C++/WinRT.
IKeyValuePair operator== См. раздел Функции расширения IKeyValuePair C++/WinRT.
Imap begin, end, TryLookup, TryRemove См . раздел Функции расширения IMap C++/WinRT
IMapView begin, end, TryLookup См. раздел Функции расширения IMapView C++/WinRT.
IMemoryBufferReference data См. раздел Функции расширения IMemoryBufferReference C++/WinRT.
IVector begin, end См. раздел Функции расширения IVector C++/WinRT.
IVectorView begin, end См. раздел Функции расширения IVectorView C++/WinRT.

Другие функции

Функция Описание
Функция GetRuntimeClassName Функция-член (созданного типа реализации), которая возвращает строку, содержащую полное имя типа реализуемого класса среда выполнения Windows.

См. также раздел

C++/WinRT