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


Класс CComObjectStack

Этот класс создает временный COM-объект и предоставляет его с помощью скелетной реализации IUnknown.

Синтаксис

template <class  Base>
class CComObjectStack : public Base

Параметры

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

Участники

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

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

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

Имя Описание
CComObjectStack::AddRef Возвращает ноль. В режиме отладки вызовы _ASSERTE.
CComObjectStack::QueryInterface Возвращает E_NOINTERFACE. В режиме отладки вызовы _ASSERTE.
CComObjectStack::Release Возвращает ноль. В режиме отладки вызовы _ASSERTE. ~

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

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

Замечания

CComObjectStack используется для создания временного COM-объекта и предоставления объекта скелетной реализации IUnknown. Как правило, объект используется в качестве локальной переменной в одной функции (т. е. принудительной передачи в стек). Так как объект уничтожается при завершении функции, подсчет ссылок не выполняется для повышения эффективности.

В следующем примере показано, как создать COM-объект, используемый внутри функции:

void MyFunc()
{
   CComObjectStack<CMyClass2> Tempobj;
   //...
}

Временный объект Tempobj отправляется в стек и автоматически исчезает после завершения функции.

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

Base

CComObjectStack

Требования

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

CComObjectStack::AddRef

Возвращает ноль.

STDMETHOD_(ULONG, AddRef)();

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

Возвращает ноль.

Замечания

В режиме отладки вызовы _ASSERTE.

CComObjectStack::CComObjectStack

Конструктор.

CComObjectStack(void* = NULL);

Замечания

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

CComObjectStack::~CComObjectStack

Деструктор

CComObjectStack();

Замечания

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

CComObjectStack::m_hResFinalConstruct

Содержит hrESULT, возвращенный при вызове FinalConstructCComObjectStack во время построения объекта.

HRESULT    m_hResFinalConstruct;

CComObjectStack::QueryInterface

Возвращает E_NOINTERFACE.

HRESULT    QueryInterface(REFIID, void**);

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

Возвращает E_NOINTERFACE.

Замечания

В режиме отладки вызовы _ASSERTE.

CComObjectStack::Release

Возвращает ноль.

STDMETHOD_(ULONG, Release)();

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

Возвращает ноль.

Замечания

В режиме отладки вызовы _ASSERTE.

См. также

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