Klasa CComObjectStack
Ta klasa tworzy tymczasowy obiekt COM i zapewnia mu implementację szkieletową IUnknown
klasy .
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