CComObjectStack Class
The latest version of this topic can be found at CComObjectStack Class.
This class creates a temporary COM object and provides it with a skeletal implementation of IUnknown.
Syntax
template <class Base>
class CComObjectStack
: public Base
Parameters
Base
Your class, derived from CComObjectRoot or CComObjectRootEx, as well as from any other interface you want to support on the object.
Members
Public Constructors
Name | Description |
---|---|
CComObjectStack::CComObjectStack | The constructor. |
CComObjectStack::~CComObjectStack | The destructor. |
Public Methods
Name | Description |
---|---|
CComObjectStack::AddRef | Returns zero. In debug mode, calls _ASSERTE . |
CComObjectStack::QueryInterface | Returns E_NOINTERFACE. In debug mode, calls _ASSERTE . |
CComObjectStack::Release | Returns zero. In debug mode, calls _ASSERTE . ~ |
Public Data Members
Name | Description |
---|---|
CComObjectStack::m_hResFinalConstruct | Contains the HRESULT returned during construction of the CComObjectStack object. |
Remarks
CComObjectStack
is used to create a temporary COM object and provide the object a skeletal implementation of IUnknown. Typically, the object is used as a local variable within one function (that is, pushed onto the stack). Since the object is destroyed when the function finishes, reference counting is not performed to increase efficiency.
The following example shows how to create a COM object used inside a function:
void MyFunc()
{
CComObjectStack<CMyClass2> Tempobj;
//...
}
The temporary object Tempobj
is pushed onto the stack and automatically disappears when the function finishes.
Inheritance Hierarchy
Base
CComObjectStack
Requirements
Header: atlcom.h
CComObjectStack::AddRef
Returns zero.
STDMETHOD_(ULONG, AddRef)();
Return Value
Returns zero.
Remarks
In debug mode, calls _ASSERTE
.
CComObjectStack::CComObjectStack
The constructor.
CComObjectStack(void* = NULL);
Remarks
Calls FinalConstruct
and then sets m_hResFinalConstruct to the HRESULT
returned by FinalConstruct
. If you have not derived your base class from CComObjectRoot, you must supply your own FinalConstruct
method. The destructor calls FinalRelease
.
CComObjectStack::~CComObjectStack
The destructor.
CComObjectStack();
Remarks
Frees all allocated resources and calls FinalRelease.
CComObjectStack::m_hResFinalConstruct
Contains the HRESULT
returned from calling FinalConstruct
during construction of the CComObjectStack
object.
HRESULT m_hResFinalConstruct;
CComObjectStack::QueryInterface
Returns E_NOINTERFACE.
HRESULT QueryInterface(REFIID, void**);
Return Value
Returns E_NOINTERFACE.
Remarks
In debug mode, calls _ASSERTE
.
CComObjectStack::Release
Returns zero.
STDMETHOD_(ULONG, Release)();
Return Value
Returns zero.
Remarks
In debug mode, calls _ASSERTE
.
See Also
CComAggObject Class
CComObject Class
CComObjectGlobal Class
Class Overview