_com_ptr_t 类
Microsoft 专用
_com_ptr_t 对象封装 COM 接口指针,被称为“智能”指针。 此模板类通过对 IUnknown
成员函数的函数调用来管理资源分配和解除分配:QueryInterface
、AddRef
和 Release
。
智能指针通常由 _COM_SMARTPTR_TYPEDEF 宏提供的 typedef 定义引用。 此宏采用接口名称和 IID,并利用接口名称与后缀 Ptr
声明 _com_ptr_t 的专用化。 例如:
_COM_SMARTPTR_TYPEDEF(IMyInterface, __uuidof(IMyInterface));
声明 _com_ptr_t 专用化 IMyInterfacePtr
。
函数模板集(而非此模板类的成员),支持与比较运算符右侧的智能指针进行比较。
建筑
名称 | 描述 |
---|---|
_com_ptr_t | 构造 _com_ptr_t 对象。 |
低级别运算
名称 | 描述 |
---|---|
AddRef | 调用封装的接口指针上的 IUnknown 的 AddRef 成员函数。 |
附加 | 封装此智能指针的类型的原始接口指针。 |
CreateInstance | 创建给定了 CLSID 或 ProgID 的对象的新实例。 |
分离 | 提取并返回封装的接口指针。 |
GetActiveObject | 附加到给定 CLSID 或 ProgID 的对象的现有实例。 |
GetInterfacePtr | 返回封装的接口指针。 |
QueryInterface | 调用封装的接口指针上的 IUnknown 的 QueryInterface 成员函数。 |
版本 | 调用封装的接口指针上的 IUnknown 的 Release 成员函数。 |
运算符
名称 | 描述 |
---|---|
operator = | 将新值赋给现有 _com_ptr_t 对象。 |
operators ==, !=, <, >, <=, >= | 将智能指针对象与另一个智能指针、原始接口指针或 NULL 进行比较。 |
提取器 | 提取封装的 COM 接口指针。 |
结束 Microsoft 专用
要求
标头:<comip.h>
Lib:comsuppw.lib 或 comsuppwd.lib(有关详细信息,请参阅 /Zc:wchar_t(wchar_t 为本机类型))
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈