CComContainedObject Class
This class implements IUnknown by delegating to the owner object's IUnknown
.
Important
This class and its members cannot be used in applications that execute in the Windows Runtime.
Syntax
template<class Base>
class CComContainedObject : public Base
Parameters
Base
Your class, derived from CComObjectRoot or CComObjectRootEx.
Members
Public Constructors
Name | Description |
---|---|
CComContainedObject::CComContainedObject | The constructor. Initializes the member pointer to the owner object's IUnknown . |
CComContainedObject::~CComContainedObject | The destructor. |
Public Methods
Name | Description |
---|---|
CComContainedObject::AddRef | Increments the reference count on the owner object. |
CComContainedObject::GetControllingUnknown | Retrieves the owner object's IUnknown . |
CComContainedObject::QueryInterface | Retrieves a pointer to the interface requested on the owner object. |
CComContainedObject::Release | Decrements the reference count on the owner object. |
Remarks
ATL uses CComContainedObject
in classes CComAggObject, CComPolyObject, and CComCachedTearOffObject. CComContainedObject
implements IUnknown by delegating to the owner object's IUnknown
. (The owner is either the outer object of an aggregation, or the object for which a tear-off interface is being created.) CComContainedObject
calls CComObjectRootEx
's OuterQueryInterface
, OuterAddRef
, and OuterRelease
, all inherited through Base
.
Inheritance Hierarchy
Base
CComContainedObject
Requirements
Header: atlcom.h
CComContainedObject::AddRef
Increments the reference count on the owner object.
STDMETHOD_(ULONG, AddRef)();
Return Value
A value that may be useful for diagnostics or testing.
CComContainedObject::CComContainedObject
The constructor.
CComContainedObject(void* pv);
Parameters
pv
[in] The owner object's IUnknown
.
Remarks
Sets the m_pOuterUnknown
member pointer (inherited through the Base
class) to pv.
CComContainedObject::~CComContainedObject
The destructor.
~CComContainedObject();
Remarks
Frees all allocated resources.
CComContainedObject::GetControllingUnknown
Returns the m_pOuterUnknown
member pointer (inherited through the Base class) that holds the owner object's IUnknown
.
IUnknown* GetControllingUnknown();
Return Value
The owner object's IUnknown
.
Remarks
This method may be virtual if Base
has declared the DECLARE_GET_CONTROLLING_UNKNOWN macro.
CComContainedObject::QueryInterface
Retrieves a pointer to the interface requested on the owner object.
STDMETHOD(QueryInterface)(REFIID iid, void** ppvObject);
template <class Q>
HRESULT STDMETHODCALLTYPE QueryInterface(Q** pp);
Parameters
iid
[in] The identifier of the interface being requested.
ppvObject
[out] A pointer to the interface pointer identified by iid. If the object does not support this interface, ppvObject is set to NULL.
pp
[out] A pointer to the interface pointer identified by type Q
. If the object does not support this interface, pp is set to NULL.
Return Value
A standard HRESULT value.
CComContainedObject::Release
Decrements the reference count on the owner object.
STDMETHOD_(ULONG, Release)();
Return Value
In debug builds, Release
returns a value that may be useful for diagnostics or testing. In non-debug builds, Release
always returns 0.