winrt 命名空间 (C++/WinRT)

winrt 命名空间提供属于 C++/WinRT 的自定义数据类型,这是适用于 Windows 运行时 (WinRT) API 的标准新式 C++17 语言投影。 这些自定义类型提供与标准类型的适当转换,以便你大部分时间都可以继续使用你习惯使用的标准 C++ 语言功能和已有的源代码。

winrt 命名空间中还提供了用于创建运行时类实例、装箱和取消装箱等 (函数,) 、智能指针和其他因素。

winrt 命名空间中的类型

类型 说明
agile_ref 结构模板 表示对 C++/WinRT 对象或接口的敏捷引用的类型。
apartment_context 结构 捕获协同例程中的线程上下文,以便以后可以还原它。
array_view 结构模板 连续一系列值的视图或范围。
auto_revoke_t 标记结构 一种标记类型,用于在注册委托以处理事件时请求事件撤销程序。
隐藏标记结构模板 用于指示不应由 IInspectable::GetIids 报告实现的接口的标记类型
clock 结构 一种类型,它包含静态帮助程序函数,用于将 Windows::Foundation::D ateTime ((即 std::chrono::time_point) 与 winrt::file_time 以及从 winrt::file_time 转换到 和转换time_t)。
com_array 结构模板 用于传入和传递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::handlewinrt::file_handle 结构的模板。
hstring 结构 表示文本字符串的 UTF-16 Unicode 字符的顺序集合。
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 错误代码。
实现结构模板 代表派生类型实现一个或多个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 函数 一个帮助器函数,用于检索指向 C++/WinRT 对象的基础 IUnknown 接口的指针。
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 函数模板 一个帮助程序函数模板,用于检索运行时类、coclass 或接口的 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 函数 一个帮助程序函数,用于检索 C++/WinRT 对象的基础 IUnknown 接口指针的地址,以便可以将其设置为另一个值。
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 函数 一个帮助器函数,用于将输入宽字符串转换为包含 UTF-8 窄字符串 的 std::string
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::UI::Xaml::Interop::TypeName 对象的形式返回Windows 运行时类型的类型名称。

扩展Windows 运行时 API 的 C++/WinRT 函数

某些Windows 运行时 API 的 C++/WinRT 投影类型上存在扩展函数。 例如, winrt::Windows::Foundation::IAsyncActionIAsyncAction 的 C++/WinRT 投影类型。 扩展函数不是应用程序二进制接口的一部分, (ABI) 实际Windows 运行时类型的图面,因此它们不会列为Windows 运行时 API 的成员。 但可以从任何 C++/WinRT 项目中调用它们。

WinRT API 函数 描述
IAsyncAction getwait_for 请参阅 IAsyncAction C++/WinRT 扩展函数
IAsyncActionWithProgress getwait_for 请参阅 IAsyncActionWithProgress C++/WinRT 扩展函数
IAsyncOperation getwait_for 请参阅 IAsyncOperation C++/WinRT 扩展函数
IAsyncOperationWithProgress getwait_for 请参阅 IAsyncOperationWithProgress C++/WinRT 扩展函数
IBindableIterable beginend 请参阅 IBindableIterable C++/WinRT 扩展函数
IBindableIterator beginendoperator++operator++ (int) operator* 请参阅 IBindableIterator C++/WinRT 扩展函数
IBuffer data 请参阅 IBuffer C++/WinRT 扩展函数
IIterable beginend 请参阅 IIterable C++/WinRT 扩展函数
IIterator operator++operator++ (int) operator* 请参阅 IIterator C++/WinRT 扩展函数
IKeyValuePair operator== 请参阅 IKeyValuePair C++/WinRT 扩展函数
Imap beginendTryLookupTryRemove 请参阅 IMap C++/WinRT 扩展函数
IMapView beginendTryLookup 请参阅 IMapView C++/WinRT 扩展函数
IMemoryBufferReference data 请参阅 IMemoryBufferReference C++/WinRT 扩展函数
IVector beginend 请参阅 IVector C++/WinRT 扩展函数
IVectorView beginend 请参阅 IVectorView C++/WinRT 扩展函数

其他函数

函数 说明
GetRuntimeClassName 函数 成员函数 (生成的实现类型) ,该实现类型返回包含要实现的Windows 运行时类的完全限定类型名称的字符串。

请参阅

C++/WinRT