Класс _com_ptr_t
Блок, относящийся только к системам Майкрософт
Объект _com_ptr_t инкапсулирует указатель интерфейса COM и называется "умным" указателем. Этот класс шаблона управляет выделением ресурсов и распределением сделки с помощью вызовов функций к IUnknown
функциям-членам: QueryInterface
, AddRef
и Release
.
Смарт-указатель обычно ссылается на определение typedef, предоставленное макросом _COM_SMARTPTR_TYPEDEF. Этот макрос принимает имя интерфейса и IID и объявляет специализацию _com_ptr_t с именем интерфейса и суффиксом Ptr
. Например:
_COM_SMARTPTR_TYPEDEF(IMyInterface, __uuidof(IMyInterface));
объявляет специализацию IMyInterfacePtr
_com_ptr_t.
Набор шаблонов функций, а не членов этого класса шаблона, поддерживает сравнения с умным указателем справа от оператора сравнения.
Строительство
Имя | Описание |
---|---|
_com_ptr_t | Создает объект _com_ptr_t. |
Низкоуровневые операции
Имя | Описание |
---|---|
Addref | AddRef Вызывает функцию-член IUnknown в инкапсулированном указателе интерфейса. |
Присоединить | Инкапсулирует необработанный указатель на интерфейс для типа этого интеллектуального указателя. |
Createinstance | Создает новый экземпляр объекта, заданного или CLSID ProgID . |
Отсоединить | Извлекает и возвращает инкапсулированный указатель на интерфейс. |
GetActiveObject | Присоединяется к существующему экземпляру объекта, заданного или CLSID ProgID . |
GetInterfacePtr | Возвращает инкапсулированный указатель на интерфейс. |
QueryInterface | QueryInterface Вызывает функцию-член IUnknown в инкапсулированном указателе интерфейса. |
Выпуск | Release Вызывает функцию-член IUnknown в инкапсулированном указателе интерфейса. |
Операторы
Имя | Описание |
---|---|
оператор = | Назначает новое значение существующему объекту _com_ptr_t . |
операторы ==, !=, <, <>=, >= | Сравните объект интеллектуального указателя с другим умным указателем, необработанным указателем интерфейса или NULL. |
Экстракторы | Извлекают инкапсулированный указатель на COM-интерфейс. |
Завершение блока, относящегося только к системам Майкрософт
Требования
Header:<comip.h>
Lib: comsuppw.lib или comsuppwd.lib (см. /Zc:wchar_t (wchar_t native type) для получения дополнительных сведений)
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по