ComPtr 类

创建smart pointer是一种智能指针类型,表示由模板参数指定的接口。 ComPtr会自动维护基础接口指针的引用计数,并在引用计数变为零时发布接口。

template <
   typename T
>
class ComPtr;

template<
   class U
>
friend class ComPtr;

参数

  • T
    表示 ComPtr 的接口。

  • U
    当前 ComPtr 为友元的类。(使用此参数的模板受保护。)

备注

声明 ComPtr<> 表示基础接口指针的类型。 使用声明变量 ComPtr<> 然后使用箭头成员访问运算符 (->) 对接口成员函数。

有关智能指针的更多信息,请参见 COM Coding Practices 主题中的“COM、聪明指针”小节在 MSDN Library 中。

成员

公共 Typedef

名称

说明

InterfaceType

T 模板参数指定类型的同义词。

公共构造函数

名称

说明

ComPtr::ComPtr 构造函数

初始化 ComPtr 类的新实例。 重载提供默认,复制个,、移动和转换该构造函数。

ComPtr::~ComPtr 析构函数

Deinitializes ComPtr 实例。

公共方法

名称

说明

ComPtr::As 方法

返回表示指定的模板参数标识的接口的 ComPtr 对象。

ComPtr::AsIID 方法

返回表示指定的接口ID的接口的 ComPtr 对象。

ComPtr::AsWeak 方法

检索对当前项的弱引用。

ComPtr::Attach 方法

将此 ComPtr 与当前模板类型参数指定的接口类型。

ComPtr::CopyTo 方法

复制当前或指定接口与此 ComPtr 对输出的指针。

ComPtr::Detach 方法

离散从它表示此接口的 ComPtr。

ComPtr::Get 方法

检索指向与此 ComPtr 关联的接口。

ComPtr::GetAddressOf 方法

ptr_ 检索数据成员的地址,包含指针到此 ComPtr 表示的接口。

ComPtr::ReleaseAndGetAddressOf 方法

释放接口与此 ComPtr 然后检索 ptr_ 数据成员的地址,包含一个指向接口被释放。

ComPtr::Swap 方法

交换当前 ComPtr 托管接口具有指定的 ComPtr 托管接口。

受保护的方法

名称

说明

ComPtr::InternalAddRef 方法

添加接口的引用计数与此 ComPtr。

ComPtr::InternalRelease 方法

对接口的 COM 版本操作与此 ComPtr。

公共运算符

名称

说明

ComPtr::operator Microsoft::WRL::Details::BoolType 运算符

指示是否 ComPtr 管理接口的对象生存期。

ComPtr::operator& 运算符

检索当前 ComPtr 的地址。

ComPtr::operator= 运算符

将值分配给当前 ComPtr。

ComPtr::operator-> 运算符

为当前模板参数检索的类型的指针。

ComPtr::operator== 运算符

指示两个ComPtr对象是否相等。

ComPtr::operator!= 运算符

指示两个ComPtr对象是否不相等。

受保护的数据成员

名称

说明

ComPtr::ptr_ 数据成员

包含一个指向相关,并由此 ComPtr 托管接口。

继承层次结构

ComPtr

要求

**标头:**client.h

命名空间: Microsoft::WRL

请参见

参考

Microsoft::WRL 命名空间