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;

See also

ATLCollections Sample
Class Overview