Класс CComCachedTearOffObject
Этот класс реализует IUnknown для интерфейса разрыва.
Синтаксис
template
<class contained>
class CComCachedTearOffObject : public
IUnknown,
public CComObjectRootEx<contained
::_ThreadModel::ThreadModelNoCS>
Параметры
содержащийся
Класс разрыва, производный от CComTearOffObjectBase
и интерфейсов, которые требуется поддерживать объект слеза.
Участники
Открытые конструкторы
Имя | Описание |
---|---|
CComCachedTearOffObject::CComCachedTearOffObject | Конструктор. |
CComCachedTearOffObject::~CComCachedTearOffObject | Деструктор |
Открытые методы
Имя | Описание |
---|---|
CComCachedTearOffObject::AddRef | Увеличивает число ссылок для CComCachedTearOffObject объекта. |
CComCachedTearOffObject::FinalConstruct | m_contained::FinalConstruct Вызывает метод слезоточивого класса. |
CComCachedTearOffObject::FinalRelease | m_contained::FinalRelease Вызывает метод слезоточивого класса. |
CComCachedTearOffObject::QueryInterface | Возвращает указатель на IUnknown CComCachedTearOffObject объект или запрошенный интерфейс в классе отключения (класс contained ). |
CComCachedTearOffObject::Release | Уменьшает число ссылок для CComCachedTearOffObject объекта и уничтожает его, если число ссылок равно 0. |
Открытые члены данных
Имя | Описание |
---|---|
CComCachedTearOffObject::m_contained | Объект, CComContainedObject производный от класса слезы (класса contained ). |
Замечания
CComCachedTearOffObject
реализует IUnknown для интерфейса разрыва. Этот класс отличается от CComTearOffObject
CComCachedTearOffObject
того, что имеет свой IUnknown
собственный, отдельный от объекта владельца (владелец является объектом IUnknown
, для которого создается разрыв). CComCachedTearOffObject
сохраняет собственное число ссылок на его IUnknown
и удаляет себя после того, как его число ссылок равно нулю. Однако если вы запрашиваете любой из его интерфейсов отключения, количество ссылок объекта IUnknown
владельца будет увеличиваться.
CComCachedTearOffObject
Если объект, реализующий разрыв, уже создается экземпляр, и интерфейс отключения запрашивается повторно, тот же CComCachedTearOffObject
объект повторно используется. В отличие от этого, если интерфейс разрыва, реализованный CComTearOffObject
объектом владельца, снова запрашивается через объект владельца, другой CComTearOffObject
будет создан экземпляр.
Класс владельца должен реализовывать FinalRelease
и вызывать Release
кэшированные IUnknown
для него CComCachedTearOffObject
значения, что приведет к уменьшению количества ссылок. Это приведет CComCachedTearOffObject
FinalRelease
к вызову и удалению разрыва.
Иерархия наследования
CComObjectRootBase
IUnknown
CComCachedTearOffObject
Требования
Заголовок: atlcom.h
CComCachedTearOffObject::AddRef
Увеличивает число CComCachedTearOffObject
ссылок объекта на 1.
STDMETHOD_(ULONG, AddRef)();
Возвращаемое значение
Значение, которое может быть полезно для диагностика и тестирования.
CComCachedTearOffObject::CComCachedTearOffObject
Конструктор.
CComCachedTearOffObject(void* pv);
Параметры
pv
[in] Указатель на IUnknown
CComCachedTearOffObject
элемент .
Замечания
Инициализирует CComContainedObject
элемент, m_contained.
CComCachedTearOffObject::~CComCachedTearOffObject
Деструктор
~CComCachedTearOffObject();
Замечания
Освобождает все выделенные ресурсы и вызывает FinalRelease.
CComCachedTearOffObject::FinalConstruct
Вызовы для создания m_contained
, объект, используемый для доступа к интерфейсу,>contained
<CComContainedObject
реализуемого классом слезы.m_contained::FinalConstruct
HRESULT FinalConstruct();
Возвращаемое значение
Стандартное значение HRESULT.
CComCachedTearOffObject::FinalRelease
Вызовы m_contained::FinalRelease
бесплатного m_contained
объекта CComContainedObject
<contained
> .
void FinalRelease();
CComCachedTearOffObject::m_contained
Объект CComContainedObject, производный от класса разрыва.
CcomContainedObject <contained> m_contained;
Параметры
содержащийся
[in] Класс разрыва, производный от CComTearOffObjectBase
и интерфейсов, которые требуется поддерживать объект слеза.
Замечания
Методы m_contained
наследуются для доступа к интерфейсу слеза в классе слезы через кэшированный объект QueryInterface
слезы и FinalConstruct
FinalRelease
.
CComCachedTearOffObject::QueryInterface
Извлекает указатель на запрошенный интерфейс.
STDMETHOD(QueryInterface)(REFIID iid, void** ppvObject);
Параметры
iid
[in] Идентификатор GUID запрашиваемого интерфейса.
ppvObject
[out] Указатель на указатель интерфейса, определяемый iid или NULL, если интерфейс не найден.
Возвращаемое значение
Стандартное значение HRESULT.
Замечания
Если запрошенный интерфейс имеет значение IUnknown
, возвращает указатель на CComCachedTearOffObject
собственный IUnknown
и увеличивает число ссылок. В противном случае запросы к интерфейсу в классе разрыва с помощью метода InternalQueryInterface , унаследованного от CComObjectRootEx
.
CComCachedTearOffObject::Release
Уменьшает число ссылок на 1 и, если число ссылок равно 0, удаляет CComCachedTearOffObject
объект.
STDMETHOD_(ULONG, Release)();
Возвращаемое значение
В сборках, отличных от отладки, всегда возвращается значение 0. В отладочных сборках возвращает значение, которое может быть полезно для диагностика или тестирования.
См. также
Класс CComTearOffObject
Класс CComObjectRootEx
Общие сведения о классе