ComPtrRef 类

支持 WRL 基础结构,不应在代码中直接使用。

语法

template <typename T>
class ComPtrRef : public ComPtrRefBase<T>;

参数

T
ComPtr<T> 类型或派生自它的类型不仅仅是 ComPtr 表示的接口。

注解

表示对 ComPtr<T> 类型的对象的引用。

成员

公共构造函数

名称 描述
ComPtrRef::ComPtrRef 将指定指针中的 ComPtrRef 类的新实例初始化为另一个 ComPtrRef 对象。

公共方法

名称 描述
ComPtrRef::GetAddressOf 检索指向由当前 ComPtrRef 对象表示的接口的指针的地址。
ComPtrRef::ReleaseAndGetAddressOf 删除当前 ComPtrRef 对象并返回指向由 ComPtrRef 对象表示的接口的指针。

公共运算符

“属性” 描述
ComPtrRef::operator InterfaceType** 删除当前 ComPtrRef 对象并返回指向由 ComPtrRef 对象表示的接口的指针。
ComPtrRef::operator T* 返回当前 ComPtrRef 对象的 ptr_ 数据成员的值。
ComPtrRef::operator void** 删除当前 ComPtrRef 对象,将指针强制转换为接口(此接口由 ComPtrRef 对象表示为指针到指针 void),然后返回强制转换指针。
ComPtrRef::operator* 检索指向由当前 ComPtrRef 对象表示的接口的指针。
ComPtrRef::operator== 指示两个 ComPtrRef 对象是否相等。
ComPtrRef::operator!= 指示两个 ComPtrRef 对象是否不相等。

继承层次结构

ComPtrRefBase

ComPtrRef

要求

标头: client.h

命名空间:Microsoft::WRL::Details

ComPtrRef::ComPtrRef

支持 WRL 基础结构,不应在代码中直接使用。

ComPtrRef(
   _In_opt_ T* ptr
);

参数

ptr
另一个 ComPtrRef 对象的基础值。

注解

将指定指针中的 ComPtrRef 类的新实例初始化为另一个 ComPtrRef 对象。

ComPtrRef::GetAddressOf

支持 WRL 基础结构,不应在代码中直接使用。

InterfaceType* const * GetAddressOf() const;

返回值

指向当前 ComPtrRef 对象表示的接口的指针的地址。

注解

检索指向由当前 ComPtrRef 对象表示的接口的指针的地址。

ComPtrRef::operator==

支持 WRL 基础结构,不应在代码中直接使用。

bool operator==(
   const Details::ComPtrRef<ComPtr<T>>& a,
   const Details::ComPtrRef<ComPtr<U>>& b
);

bool operator==(
   const Details::ComPtrRef<ComPtr<T>>& a,
   decltype(__nullptr)
);

bool operator==(
   decltype(__nullptr),
   const Details::ComPtrRef<ComPtr<T>>& a
);

bool operator==(
   const Details::ComPtrRef<ComPtr<T>>& a,
   void* b
);

bool operator==(
   void* b,
   const Details::ComPtrRef<ComPtr<T>>& a
);

参数

a
ComPtrRef 对象的引用。

b
ComPtrRef 另一个对象的引用,或指向匿名类型 (void*) 的指针。

返回值

如果对象 a 等于对象 b,则第一个运算符生成 true;否则生成 false

如果对象 a 等于 nullptr,则第二个和第三个运算符生成 true。否则生成 false

如果对象 a 等于对象 b,则第四个和第五个运算符生成 true;否则生成 false

备注

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

ComPtrRef::operator!=

支持 WRL 基础结构,不应在代码中直接使用。

bool operator!=(
   const Details::ComPtrRef<ComPtr<T>>& a,
   const Details::ComPtrRef<ComPtr<U>>& b
);

bool operator!=(
   const Details::ComPtrRef<ComPtr<T>>& a,
   decltype(__nullptr)
);

bool operator!=(
   decltype(__nullptr),
   const Details::ComPtrRef<ComPtr<T>>& a
);

bool operator!=(
   const Details::ComPtrRef<ComPtr<T>>& a,
   void* b
);

bool operator!=(
   void* b,
   const Details::ComPtrRef<ComPtr<T>>& a
);

参数

a
ComPtrRef 对象的引用。

b
ComPtrRef 另一个对象的引用,或指向匿名对象 (void*) 的指针。

返回值

如果对象 a 不等于对象 b,则第一个运算符生成 true;否则生成 false

如果对象 a 不等于 nullptr,则第二个和第三个运算符生成 true。否则生成 false

如果对象 a 不等于对象 b,则第四个和第五个运算符生成 true;否则生成 false

注解

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

ComPtrRef::operator InterfaceType**

支持 WRL 基础结构,不应在代码中直接使用。

operator InterfaceType**();

备注

删除当前 ComPtrRef 对象并返回指向由 ComPtrRef 对象表示的接口的指针。

ComPtrRef::operator*

支持 WRL 基础结构,不应在代码中直接使用。

InterfaceType* operator *();

返回值

指向当前 ComPtrRef 对象表示的接口的指针。

备注

检索指向由当前 ComPtrRef 对象表示的接口的指针。

ComPtrRef::operator T*

支持 WRL 基础结构,不应在代码中直接使用。

operator T*();

注解

返回当前 ComPtrRef 对象的 ptr_ 数据成员的值。

ComPtrRef::operator void**

支持 WRL 基础结构,不应在代码中直接使用。

operator void**() const;

备注

删除当前 ComPtrRef 对象,将指针强制转换为接口(此接口由 ComPtrRef 对象表示为指针到指针 void),然后返回强制转换指针。

ComPtrRef::ReleaseAndGetAddressOf

支持 WRL 基础结构,不应在代码中直接使用。

InterfaceType** ReleaseAndGetAddressOf();

返回值

指向由已删除的 ComPtrRef 对象表示的接口的指针。

注解

删除当前 ComPtrRef 对象并返回指向由 ComPtrRef 对象表示的接口的指针。