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


Класс CComObjectGlobal

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

Синтаксис

template<class Base>
class CComObjectGlobal : public Base

Параметры

Основание
Класс, производный от CComObjectRoot или CComObjectRootEx, а также из любого другого интерфейса, который требуется поддерживать в объекте.

Участники

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

Имя Описание
CComObjectGlobal::CComObjectGlobal Конструктор.
CComObjectGlobal::~CComObjectGlobal Деструктор

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

Имя Описание
CComObjectGlobal::AddRef Реализует глобальный AddRef.
CComObjectGlobal::QueryInterface Реализует глобальный QueryInterface.
CComObjectGlobal::Release Реализует глобальный Release.

Открытые члены данных

Имя Описание
CComObjectGlobal::m_hResFinalConstruct Содержит HRESULT, возвращенный во время построения CComObjectGlobal объекта.

Замечания

CComObjectGlobal управляет счетчиком ссылок в модуле, содержам Base объект. CComObjectGlobal гарантирует, что объект не будет удален до тех пор, пока модуль не выпущен. Объект будет удален только в том случае, если количество ссылок на весь модуль переходит к нулю.

Например, с помощью CComObjectGlobalфабрики классов можно хранить общий глобальный объект, общий для всех клиентов.

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

Base

CComObjectGlobal

Требования

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

CComObjectGlobal::AddRef

Увеличивает число ссылок объекта на 1.

STDMETHOD_(ULONG, AddRef)();

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

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

Замечания

По умолчанию AddRef вызывается _Module::Lock, где _Module находится глобальный экземпляр CComModule или класс, производный от него.

CComObjectGlobal::CComObjectGlobal

Конструктор. Вызовы FinalConstruct , а затем задает m_hResFinalConstruct возвращаемого HRESULT FinalConstruct.

CComObjectGlobal(void* = NULL));

Замечания

Если вы не получили базовый класс из CComObjectRoot, необходимо указать собственный FinalConstruct метод. Деструктор вызывает FinalRelease.

CComObjectGlobal::~CComObjectGlobal

Деструктор

CComObjectGlobal();

Замечания

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

CComObjectGlobal::m_hResFinalConstruct

Содержит HRESULT от вызова FinalConstruct во время построения CComObjectGlobal объекта.

HRESULT m_hResFinalConstruct;

CComObjectGlobal::QueryInterface

Извлекает указатель на запрошенный указатель интерфейса.

STDMETHOD(QueryInterface)(REFIID iid, void** ppvObject);

Параметры

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

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

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

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

Замечания

QueryInterface обрабатывает интерфейсы только в таблице сопоставлений COM.

CComObjectGlobal::Release

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

STDMETHOD_(ULONG, Release)();

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

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

Замечания

По умолчанию Release вызывается _Module::Unlock, где _Module находится глобальный экземпляр CComModule или класс, производный от него.

См. также

Класс CComObjectStack
Класс CComAggObject
Класс CComObject
Общие сведения о классе