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