Поделиться через


Класс _com_ptr_t

Блок, относящийся только к системам Microsoft

Объект _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 в инкапсулированном указателе на интерфейс.

Attach

Инкапсулирует необработанный указатель на интерфейс для типа этого интеллектуального указателя.

CreateInstance

Создает новый экземпляр объекта, учитывая CLSID или ProgID.

Detach

Извлекает и возвращает инкапсулированный указатель на интерфейс.

GetActiveObject

Добавляет к существующему экземпляру объекта, заданного значением CLSID или ProgID.

GetInterfacePtr

Возвращает инкапсулированный указатель на интерфейс.

QueryInterface

Вызывает функцию-член QueryInterface IUnknown в инкапсулированном указателе на интерфейс.

Release

Вызывает функцию-член Release IUnknown в инкапсулированном указателе на интерфейс.

Операторы

operator =

Присваивает новое значение существующему объекту _com_ptr_t.

operators ==, !=, <, >, <=, >=

Сравнивают объект интеллектуального указателя с другим интеллектуальным указателем, необработанным указателем на интерфейс или значением NULL.

Средства извлечения

Извлекают инкапсулированный указатель на COM-интерфейс.

Требования

Заголовок: comip.h

Библиотека: comsuppw.lib или comsuppwd.lib (дополнительные сведения см. в разделе /Zc:wchar_t (wchar_t – это собственный тип))

См. также

Ссылки

Классы поддержки компилятора COM