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
对象表示的接口的指针。