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


Класс CComContainedObject

Этот класс реализует IUnknown путем делегирования объекту IUnknownвладельца.

Внимание

Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.

Синтаксис

template<class Base>
class CComContainedObject : public Base

Параметры

Основание
Класс, производный от CComObjectRoot или CComObjectRootEx.

Участники

Открытые конструкторы

Имя Описание
CComContainedObject::CComContainedObject Конструктор. Инициализирует указатель члена на объект IUnknownвладельца.
CComContainedObject::~CComContainedObject Деструктор

Открытые методы

Имя Описание
CComContainedObject::AddRef Увеличивает число ссылок для объекта владельца.
CComContainedObject::GetControllingUnknown Извлекает объект IUnknownвладельца.
CComContainedObject::QueryInterface Извлекает указатель на интерфейс, запрошенный для объекта владельца.
CComContainedObject::Release Уменьшает количество ссылок для объекта владельца.

Замечания

ATL используется CComContainedObject в классах CComAggObject, CComPolyObject и CComCachedTearOffObject. CComContainedObjectреализует IUnknown путем делегирования объекту IUnknownвладельца. (Владелец является внешним объектом агрегирования или объектом, для которого создается интерфейс разрыва.) CComContainedObject вызовы CComObjectRootEx, OuterQueryInterfaceOuterAddRefи OuterRelease, все наследуемые через Base.

Иерархия наследования

Base

CComContainedObject

Требования

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

CComContainedObject::AddRef

Увеличивает число ссылок для объекта владельца.

STDMETHOD_(ULONG, AddRef)();

Возвращаемое значение

Значение, которое может быть полезно для диагностика или тестирования.

CComContainedObject::CComContainedObject

Конструктор.

CComContainedObject(void* pv);

Параметры

pv
[in] Объект IUnknownвладельца.

Замечания

m_pOuterUnknown Задает указатель члена (унаследованный через Base класс) для pv.

CComContainedObject::~CComContainedObject

Деструктор

~CComContainedObject();

Замечания

Освобождает все выделенные ресурсы.

CComContainedObject::GetControllingUnknown

m_pOuterUnknown Возвращает указатель члена (наследуемый через базовый класс), содержащий объект IUnknownвладельца.

IUnknown* GetControllingUnknown();

Возвращаемое значение

Объект IUnknownвладельца.

Замечания

Этот метод может быть виртуальным, если Base объявил макрос DECLARE_GET_CONTROLLING_UNKNOWN.

CComContainedObject::QueryInterface

Извлекает указатель на интерфейс, запрошенный для объекта владельца.

STDMETHOD(QueryInterface)(REFIID iid, void** ppvObject);
template <class Q>
HRESULT STDMETHODCALLTYPE QueryInterface(Q** pp);

Параметры

iid
[in] Идентификатор запрашиваемого интерфейса.

ppvObject
[out] Указатель на указатель интерфейса, определяемый iid. Если объект не поддерживает этот интерфейс, ppvObject имеет значение NULL.

pp
[out] Указатель на указатель интерфейса, определяемый по типу Q. Если объект не поддерживает этот интерфейс, для pp задано значение NULL.

Возвращаемое значение

Стандартное значение HRESULT.

CComContainedObject::Release

Уменьшает количество ссылок для объекта владельца.

STDMETHOD_(ULONG, Release)();

Возвращаемое значение

В отладочных сборках Release возвращает значение, которое может быть полезно для диагностика или тестирования. В сборках, отличных от отладки, Release всегда возвращается значение 0.

См. также

Общие сведения о классе