CComObjectStack-Klasse
Diese Klasse erstellt ein temporäres COM-Objekt und stellt es mit einer skeletalen Implementierung von IUnknown
.
Syntax
template <class Base>
class CComObjectStack : public Base
Parameter
Bemessungsgrundlage
Ihre Von CComObjectRoot oder CComObjectRootEx abgeleitete Klasse sowie von einer anderen Schnittstelle, die Sie für das Objekt unterstützen möchten.
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
CComObjectStack::CComObjectStack | Der Konstruktor. |
CComObjectStack::~CComObjectStack | Der Destruktor. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CComObjectStack::AddRef | Gibt Null zurück. Im Debugmodus werden Aufrufe _ASSERTE ausgeführt. |
CComObjectStack::QueryInterface | Gibt E_NOINTERFACE zurück. Im Debugmodus werden Aufrufe _ASSERTE ausgeführt. |
CComObjectStack::Release | Gibt Null zurück. Im Debugmodus werden Aufrufe _ASSERTE ausgeführt. ~ |
Öffentliche Datenmember
Name | Beschreibung |
---|---|
CComObjectStack::m_hResFinalConstruct | Enthält das HRESULT, das beim Erstellen des CComObjectStack Objekts zurückgegeben wird. |
Hinweise
CComObjectStack
wird verwendet, um ein temporäres COM-Objekt zu erstellen und das Objekt eine Skelettimplementierung von IUnknown
. In der Regel wird das Objekt als lokale Variable innerhalb einer Funktion verwendet (d. r. auf den Stapel verschoben). Da das Objekt nach Abschluss der Funktion zerstört wird, wird die Verweiszählung nicht ausgeführt, um die Effizienz zu erhöhen.
Das folgende Beispiel zeigt, wie Sie ein IN einer Funktion verwendete COM-Objekt erstellen:
void MyFunc()
{
CComObjectStack<CMyClass2> Tempobj;
//...
}
Das temporäre Objekt Tempobj
wird auf den Stapel verschoben und verschwindet automatisch, wenn die Funktion abgeschlossen ist.
Vererbungshierarchie
Base
CComObjectStack
Anforderungen
Kopfzeile: atlcom.h
CComObjectStack::AddRef
Gibt Null zurück.
STDMETHOD_(ULONG, AddRef)();
Rückgabewert
Gibt Null zurück.
Hinweise
Im Debugmodus werden Aufrufe _ASSERTE
ausgeführt.
CComObjectStack::CComObjectStack
Der Konstruktor.
CComObjectStack(void* = NULL);
Hinweise
Ruft auf FinalConstruct
und legt dann m_hResFinalConstruct auf das HRESULT fest, das von FinalConstruct
. Wenn Sie Ihre Basisklasse nicht von CComObjectRoot abgeleitet haben, müssen Sie ihre eigene FinalConstruct
Methode angeben. Der Destruktor ruft FinalRelease
auf.
CComObjectStack::~CComObjectStack
Der Destruktor.
CComObjectStack();
Hinweise
Gibt alle zugeordneten Ressourcen frei und ruft FinalRelease auf.
CComObjectStack::m_hResFinalConstruct
Enthält das HRESULT, das beim Erstellen des CComObjectStack
Objekts vom Aufruf FinalConstruct
zurückgegeben wird.
HRESULT m_hResFinalConstruct;
CComObjectStack::QueryInterface
Gibt E_NOINTERFACE zurück.
HRESULT QueryInterface(REFIID, void**);
Rückgabewert
Gibt E_NOINTERFACE zurück.
Hinweise
Im Debugmodus werden Aufrufe _ASSERTE
ausgeführt.
CComObjectStack::Release
Gibt Null zurück.
STDMETHOD_(ULONG, Release)();
Rückgabewert
Gibt Null zurück.
Hinweise
Im Debugmodus werden Aufrufe _ASSERTE
ausgeführt.
Siehe auch
CComAggObject-Klasse
CComObject-Klasse
CComObjectGlobal-Klasse
Klassenübersicht