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 来防止无意中使用此转换。