Udostępnij za pośrednictwem


Klasa CComObjectStack

Ta klasa tworzy tymczasowy obiekt COM i zapewnia mu implementację szkieletową IUnknownklasy .

Składnia

template <class  Base>
class CComObjectStack : public Base

Parametry

Baza
Klasa, pochodząca z CComObjectRoot lub CComObjectRootEx, a także z dowolnego innego interfejsu, który ma być obsługiwane w obiekcie.

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CComObjectStack::CComObjectStack Konstruktor.
CComObjectStack::~CComObjectStack Destruktora.

Metody publiczne

Nazwa/nazwisko opis
CComObjectStack::AddRef Zwraca zero. W trybie debugowania wywołuje metodę _ASSERTE.
CComObjectStack::QueryInterface Zwraca E_NOINTERFACE. W trybie debugowania wywołuje metodę _ASSERTE.
CComObjectStack::Release Zwraca zero. W trybie debugowania wywołuje metodę _ASSERTE. ~

Publiczne elementy członkowskie danych

Nazwa/nazwisko opis
CComObjectStack::m_hResFinalConstruct Zawiera wartość HRESULT zwróconą podczas budowy CComObjectStack obiektu.

Uwagi

CComObjectStack służy do tworzenia tymczasowego obiektu COM i zapewnienia obiektu szkieletowej implementacji IUnknown. Zazwyczaj obiekt jest używany jako zmienna lokalna w ramach jednej funkcji (czyli wypychana do stosu). Ponieważ obiekt jest niszczony po zakończeniu działania funkcji, zliczanie odwołań nie jest wykonywane w celu zwiększenia wydajności.

W poniższym przykładzie pokazano, jak utworzyć obiekt COM używany wewnątrz funkcji:

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

Obiekt Tempobj tymczasowy jest wypychany do stosu i automatycznie zniknie po zakończeniu działania funkcji.

Hierarchia dziedziczenia

Base

CComObjectStack

Wymagania

Nagłówek: atlcom.h

CComObjectStack::AddRef

Zwraca zero.

STDMETHOD_(ULONG, AddRef)();

Wartość zwracana

Zwraca zero.

Uwagi

W trybie debugowania wywołuje metodę _ASSERTE.

CComObjectStack::CComObjectStack

Konstruktor.

CComObjectStack(void* = NULL);

Uwagi

Wywołania FinalConstruct , a następnie ustawia m_hResFinalConstruct do hrESULT zwrócone przez FinalConstruct. Jeśli klasa bazowa nie pochodzi z klasy CComObjectRoot, musisz podać własną FinalConstruct metodę. Destruktor wywołuje metodę FinalRelease.

CComObjectStack::~CComObjectStack

Destruktora.

CComObjectStack();

Uwagi

Zwalnia wszystkie przydzielone zasoby i wywołuje finalrelease.

CComObjectStack::m_hResFinalConstruct

Zawiera element HRESULT zwracany z wywołania FinalConstruct podczas budowy CComObjectStack obiektu.

HRESULT    m_hResFinalConstruct;

CComObjectStack::QueryInterface

Zwraca E_NOINTERFACE.

HRESULT    QueryInterface(REFIID, void**);

Wartość zwracana

Zwraca E_NOINTERFACE.

Uwagi

W trybie debugowania wywołuje metodę _ASSERTE.

CComObjectStack::Release

Zwraca zero.

STDMETHOD_(ULONG, Release)();

Wartość zwracana

Zwraca zero.

Uwagi

W trybie debugowania wywołuje metodę _ASSERTE.

Zobacz też

Klasa CComAggObject
Klasa CComObject
Klasa CComObjectGlobal
Omówienie klasy