ICollectionOnSTLImpl Class
This class provides methods used by a collection class.
template <class T, class CollType, class ItemType, class CopyItem, class EnumType>
class ICollectionOnSTLImpl : public T
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.
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. |
Name | Description |
---|---|
ICollectionOnSTLImpl::m_coll | The collection. |
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.
T
ICollectionOnSTLImpl
Header: atlcom.h
This method returns the number of items in the collection.
STDMETHOD(getcount)(long* pcount);
pcount
[out] The number of elements in the collection.
A standard HRESULT value.
This method returns the specified item from the collection.
STDMETHOD(get_Item)(long Index, ItemType* pvar);
Index
[in] The 1-based index of an item in the collection.
pvar
[out] The item corresponding to Index.
A standard HRESULT value.
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.
Returns an enumerator object for the collection.
STDMETHOD(get__NewEnum)(IUnknown** ppUnk);
ppUnk
[out] The IUnknown pointer of a newly created enumerator object.
A standard HRESULT value.
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.
This member holds the items represented by the collection.
CollType m_coll;