Класс _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. |
Низкоуровневые операции
Вызывает функцию-член AddRef IUnknown в инкапсулированном указателе на интерфейс. |
|
Инкапсулирует необработанный указатель на интерфейс для типа этого интеллектуального указателя. |
|
Создает новый экземпляр объекта, учитывая CLSID или ProgID. |
|
Извлекает и возвращает инкапсулированный указатель на интерфейс. |
|
Добавляет к существующему экземпляру объекта, заданного значением CLSID или ProgID. |
|
Возвращает инкапсулированный указатель на интерфейс. |
|
Вызывает функцию-член QueryInterface IUnknown в инкапсулированном указателе на интерфейс. |
|
Вызывает функцию-член Release IUnknown в инкапсулированном указателе на интерфейс. |
Операторы
Присваивает новое значение существующему объекту _com_ptr_t. |
|
Сравнивают объект интеллектуального указателя с другим интеллектуальным указателем, необработанным указателем на интерфейс или значением NULL. |
|
Извлекают инкапсулированный указатель на COM-интерфейс. |
Требования
Заголовок: comip.h
Библиотека: comsuppw.lib или comsuppwd.lib (дополнительные сведения см. в разделе /Zc:wchar_t (wchar_t – это собственный тип))