TS_IAggregationInternals
(Available in 01 TS COM - TS_COM_IAggregationInternals)
Purpose
TS_IAggregationInternals
Description
To support aggregation, the COM server must support access to some internal methods ( InternalQueryInterface, InternalAddRef and InternalRelease ). To make aggregation posible the 'TS_IUnknown' class exports a interface called 'TS_IAggregationInternals', this interface can be requested and the used to call these internal methods. Use 'TS_GUID_IAggregationInternals()' when the applications needs to the 'TS_IAggregationInternals' interface.
MSDN:Aggregate object
A COM object that is made up of one or more other COM objects. One object in the aggregate is designated the controlling object, which controls which interfaces in the aggregate are exposed and which are private. This controlling object has a special implementation of IUnknown called the controlling IUnknown. All objects in the aggregate must pass calls to IUnknown methods through the controlling IUnknown.
MSDN:Aggregation
A composition technique for implementing COM objects. It allows you to build a new object by reusing one or more existing objects' interface implementations. The aggregate object chooses which interfaces to expose to clients, and the interfaces are exposed as if they were implemented by the aggregate object. Clients of the aggregate object communicate only with the aggregate object.
MSDN:Object Reusability
When needing detailed information about aggregation see 'Object Reusability' in the MSDN documantation.
HRESULT QueryInterface( [in] REFIID riid, [out, iid_is(riid)] void **ppvObject);
ULONG AddRef();
ULONG Release();
HRESULT InternalQueryInterface( [in] REFIID riid, [out, iid_is(riid)] void **ppvObject);
ULONG InternalAddRef();
ULONG InternalRelease();
HRESULT InternalGetTypeInfoCount( [out] UINT * pctinfo );
HRESULT InternalGetTypeInfo( [in] UINT iTInfo, [in] LCID lcid, [out] ITypeInfo ** ppTInfo );
HRESULT InternalGetIDsOfNames( [in] REFIID riid, [in, size_is(cNames)] LPOLESTR * rgszNames, [in] UINT cNames, [in] LCID lcid, [out, size_is(cNames)] DISPID * rgDispId );
HRESULT InternalInvoke( [in] DISPID dispIdMember, [in] REFIID riid, [in] LCID lcid, [in] WORD wFlags, [in, out] DISPPARAMS * pDispParams, [out] VARIANT * pVarResult, [out] EXCEPINFO * pExcepInfo, [out] UINT * puArgErr );
Inherits from
TS_IUnknown
Source
CLASS TS_IAggregationInternals INHERIT TS_IUnknown
DECLARE METHOD InternalQueryInterface
DECLARE METHOD InternalAddRef
DECLARE METHOD InternalRelease
DECLARE METHOD InternalGetTypeInfoCount
DECLARE METHOD InternalGetTypeInfo
DECLARE METHOD InternalGetIDsOfNames
DECLARE METHOD InternalInvoke