Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Этот класс реализует 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значения, что приведет к уменьшению количества ссылок. Это приведет CComCachedTearOffObjectFinalRelease к вызову и удалению разрыва.
Иерархия наследования
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слезы и FinalConstructFinalRelease.
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
Общие сведения о классе