_com_ptr_t 提取器

Microsoft 专用

提取封装的 COM 接口指针。

语法

operator Interface*( ) const throw( );
operator Interface&( ) const;
Interface& operator*( ) const;
Interface* operator->( ) const;
Interface** operator&( ) throw( );
operator bool( ) const throw( );

备注

  • operator Interface*:返回封装的接口指针,这可能是 NULL。

  • operator Interface&:返回对封装的接口指针的引用,并发布错误(如果指针为 NULL)。

  • operator*:允许智能指针对象在取消引用时充当实际封装的接口。

  • operator->:允许智能指针对象在取消引用时充当实际封装的接口。

  • operator&:释放任何封装的接口指针(将其替换为 NULL),并返回封装的指针的地址。 通过此运算符,可通过寻址具有 out 参数的函数来传递智能指针,它通过该参数返回接口指针。

  • operator bool:支持在条件表达式中使用智能指针对象。 如果该指针不为 NULL,则此运算符返回 true

    注意

    由于 operator bool 未声明为 explicit,因此 _com_ptr_t 可隐式转换为 bool,它可转换为任何标量类型。 这可能会在代码中产生意外的后果。 请启用编译器警告(级别 4)C4800 来防止无意中使用此转换。

另请参阅

_com_ptr_t 类