_com_ptr_t
Экстракторы
Только для систем Майкрософт
Извлекают инкапсулированный указатель на 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
Позволяет использовать объект интеллектуального указателя в условном выражении. Этот оператор возвращает,true
если указатель не имеет значения NULL.Примечание.
Поскольку
operator bool
не объявлен какexplicit
,_com_ptr_t
неявноbool
преобразуется в , который преобразуется в любой скалярный тип. Это может иметь непредвиденные последствия в коде. Включите предупреждение компилятора (уровень 4) C4800 , чтобы предотвратить непреднамеренное использование этого преобразования.
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по