Класс 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
, OuterQueryInterface
OuterAddRef
и 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.