Класс 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
Общие сведения о классе