Windows 运行时 C++ 模板库 (WRL) 是一种低级别方式创作并使用 Windows 运行时 元素的模板库。
优点
WRL 更轻松地使您能够实现和使用组件对象模型 (COM) 元素。它提供管理技术,如引用计数管理生存期对象和测试 HRESULT 值确定操作是否成功还是失败。若要成功使用 WRL,您必须仔细遵循这些规则和技术。
Visual C++ 组件扩展 (C++/CX) 都是高级,以语言为基础的方式使用 Windows 运行时 元素。WRL 和 C++/CX 通过自动执行委托您的管理任务简化代码编写 Windows 运行时 的。
WRL 和 C++/CX 提供不同的优点。这是您可能希望使用 WRL 而不是 C++/CX的一些原因:
WRL 添加到 Windows 运行时 应用程序二进制接口 (abi) (ABI) 的 ACE 抽象,使您能够控制基础代码更好地创建或使用 Windows 运行时 API。
C++/CX 表示 COM HRESULT 值作为异常。如果继承了使用 COM 或一个不使用一个异常的基本代码,您可能会发现 WRL 是一种更自然的方式与 Windows 运行时 一起使用,因为您不必使用异常。
说明
WRL 使用 HRESULT 值,且不会引发异常。此外,帮助的 WRL 使用智能指针和 RAII 模式可确保正确销毁对象,当应用程序代码引发异常。有关智能指针和 RAII 的更多信息,请参见 智能指针(现代C++) 和 对象特定资源(RAII)。
WRL 的用途以及模型由活动模板库 (ATL) 创作而来,即一组基于模板的 C++ 选件类简化编程 COM 对象。由于 WRL 使用标准 C++ 包装 Windows 运行时,可以更轻松地将端口和与 ATL 编写的许多现有 COM 组件交互。Windows 运行时。如果您已经知道 ATL,您可能会发现 WRL 编程更加容易。
入门
这是可帮助您获取同时使用 WRL 使用的一些资源。
窗口运行库 (WRL)
在视频的通道 9,请了解更多信息 WRL 如何帮助您编写 Windows 应用商店 apps 以及如何生成和使用 Windows 运行时 元素。如何:使用 WRL 激活和使用 Windows 运行时组件
演示如何使用 WRL 初始化 Windows 运行时 和激活和使用 Windows 运行时 元素。如何:使用 WRL 完成异步操作
在操作完成时,演示如何使用 WRL 开始异步操作并执行工作。如何:使用 WRL 处理事件
演示如何使用 WRL 订阅和处理 Windows 运行时 对象的事件。演练:使用 WRL 创建基本 Windows 运行时组件
演示如何使用 WRL 创建两个数字相加的基本 Windows 运行时 元素。并演示如何引发事件和使用 JavaScript 从 Windows 应用商店 app 的元素。演练:使用 WRL 和 Media Foundation 创建 Windows 应用商店应用程序
了解如何创建使用 Microsoft 媒体基础的 Windows 应用商店 app。如何:使用 WRL 创建传统型 COM 组件
演示如何使用 WRL 创建一个基本的 COM 组件和一个基本的方式注册和使用从桌面 app 的 COM 组件。如何:直接实例化 WRL 组件
了解如何使用 Microsoft::WRL::Make 和 Microsoft::WRL::Details::MakeAndInitialize 函数实例化定义它的模块的元素。演练:使用任务和 XML HTTP 请求 (IXHR2) 进行连接
演示如何使用任务发送 HTTP GET 和 POST 请求一起使用 IXMLHTTPRequest2 和 IXMLHTTPRequest2Callback 接口到 Windows 应用商店 app 的 web 服务。Bing maps 行程优化程序示例
使用在 演练:使用任务和 XML HTTP 请求 (IXHR2) 进行连接 定义在完全 Windows 应用商店 app 中的 HttpRequest 选件类。混合 app 创作示例的 DLL 服务器
演示如何使用 WRL 声明和实现接口并使用属性、方法和事件。DirectX 大理石迷宫游戏示例
演示如何使用 WRL 管理生存期 COM 组件 (如 DirectX 和媒体基础在一个完整三维游戏中。发送多士通知从桌面 apps 示例
演示如何使用 WRL 与桌面 app 的多士通知一起使用。
WRL 与 ATL 进行比较。
因为您可以使用它来小,快速 COM 对象,WRL 类似于活动模板库 (ATL)。使用工厂,WRL 和 ATL 间共享概念 (如对象,接口的显式注册的定义在模块中,并打开对象的创建。如果您熟悉 ATL,您可能熟悉 WRL。
WRL 支持对于 Windows 应用商店 apps 所需的 COM 函数。因此,因为它省略为 COM 函数直接支持例如,它与 ATL 不同:
聚合
股票实现
双重接口 (IDispatch)
标准枚举器接口
连接点
撕掉接口
OLE 嵌入
ActiveX 控件
COM+
概念
WRL 提供表示一些基本概念的类型。以下各节介绍这些类型。
ComPtr
ComPtr 是表示接口由模板参数指定的智能 指针 类型。使用 ComPtr 声明可以访问对象的成员从接口派生的变量。当引用计数为零时,ComPtr 自动维护基接口指针的引用计数并释放接口。
RuntimeClass
RuntimeClass 表示继承设置指定接口实例化选件类。RuntimeClass 对象可以提供组合为一个或多 Windows 运行时 COM 接口支持,或者弱引用到组件。
模块
模块 表示相关对象的集合。Module 对象管理选件类工厂,创建对象并注册,使其他应用程序使用对象。
回调
回调 函数创建成员函数是事件处理程序的对象 (回调方法)。使用 Callback 功能编写异步操作。
EventSource
EventSource 用于管理 委托 事件处理程序。使用 WRL 实现委托,并使用 EventSource,添加、移除和调用该委托。
AsyncBase
AsyncBase 提供表示 Windows 运行时 异步编程模型的虚方法。重写此选件类的成员创建可开始,停止或检查异步操作的进度的自定义选件类。
FtmBase
FtmBase 表示一个自由线程封送拆收器对象。FtmBase 创建一个全局接口表 (GIT),并且,以帮助管理线和代理对象。
WeakRef
WeakRef 是表示 弱引用,对象也可能无法访问的智能指针类型。WeakRef 对象可供仅 Windows 运行时和不按传统的 COM。
WeakRef 对象通常表示由外部线程或应用程序控制的对象。例如,WeakRef 对象可以引用文件对象。当文件打开时,WeakRef 有效,并且引用的文件可访问的。但文件时,在关闭时,WeakRef 无效,并且文件不可访问。
相关主题
描述如何访问 WRL 选件类库项目模板。此模板可帮助简化使用 Visual Studio 任务创建 Windows 运行时 元素。 |
|
显示主 WRL 类型、函数和宏。 |
|
参考 WRL的信息。 |
|
简要描述支持 Windows 运行时的 C++/CX 功能。 |
|
演示如何使用 C++/CX 创建一个基本的 Windows 运行时 元素。 |