ICollectionOnSTLImpl Class
This class provides methods used by a collection class.
Syntax
template <class T, class CollType, class ItemType, class CopyItem, class EnumType>
class ICollectionOnSTLImpl : public T
Parameters
T
A COM collection interface.
CollType
A C++ Standard Library container class.
ItemType
The type of item exposed by the container interface.
CopyItem
A copy policy class.
EnumType
A CComEnumOnSTL-compatible enumerator class.
Members
Public Methods
Name | Description |
---|---|
ICollectionOnSTLImpl::get__NewEnum | Returns an enumerator object for the collection. |
ICollectionOnSTLImpl::getcount | Returns the number of elements in the collection. |
ICollectionOnSTLImpl::get_Item | Returns the requested item from the collection. |
Public Data Members
Name | Description |
---|---|
ICollectionOnSTLImpl::m_coll | The collection. |
Remarks
This class provides the implementation for three methods of a collection interface: getcount, get_Item, and get__NewEnum.
To use this class:
Define (or borrow) a collection interface that you wish to implement.
Derive your class from a specialization of
ICollectionOnSTLImpl
based on this collection interface.Use your derived class to implement any methods from the collection interface not handled by
ICollectionOnSTLImpl
.
Note
If the collection interface is a dual interface, derive your class from IDispatchImpl, passing the ICollectionOnSTLImpl
specialization as the first template parameter if you want ATL to provide the implementation of the IDispatch
methods.
- Add items to the m_coll member to populate the collection.
For more information and examples, see ATL Collections and Enumerators.
Inheritance Hierarchy
T
ICollectionOnSTLImpl
Requirements
Header: atlcom.h
ICollectionOnSTLImpl::getcount
This method returns the number of items in the collection.
STDMETHOD(getcount)(long* pcount);
Parameters
pcount
[out] The number of elements in the collection.
Return Value
A standard HRESULT value.
ICollectionOnSTLImpl::get_Item
This method returns the specified item from the collection.
STDMETHOD(get_Item)(long Index, ItemType* pvar);
Parameters
Index
[in] The 1-based index of an item in the collection.
pvar
[out] The item corresponding to Index.
Return Value
A standard HRESULT value.
Remarks
The item is obtained by copying the data at the specified position in m_coll using the copy method of the copy policy class passed as a template argument in the ICollectionOnSTLImpl
specialization.
ICollectionOnSTLImpl::get__NewEnum
Returns an enumerator object for the collection.
STDMETHOD(get__NewEnum)(IUnknown** ppUnk);
Parameters
ppUnk
[out] The IUnknown pointer of a newly created enumerator object.
Return Value
A standard HRESULT value.
Remarks
The newly created enumerator maintains an iterator on the original collection, m_coll
, (so no copy is made) and holds a COM reference on the collection object to ensure that the collection remains alive while there are outstanding enumerators.
ICollectionOnSTLImpl::m_coll
This member holds the items represented by the collection.
CollType m_coll;