#include <atlstl/automation/enumerators.hpp>
copy_enumerator_impl is the analogue to CComEnumImpl, but the advantages over the ATL class is that it can be added to/removed from after initialisation, and it can be initialised/appended from a sequence (as defined by the start and end iterators), rather than assuming an array as source.
copy_enumerator is the analogue to CComEnum, but uses the atlstl::copy_enumerator_impl as its 'implementation' class template.
| I | The interface, e.g. IEnumString | |
| piid | The address of the interface, e.g. &IID_IEnumString | |
| V | The value type of the enumeration, e.g. LPOLESTR | |
| It | The iterator class, e.g. LPOLESTR* | |
| Copy | A class that implements copy behaviour (see CComEnumImpl) | |
| ThreadModel | The threading model of the instances (see CComObjectRoot) | 
| Public Types | |
| typedef copy_enumerator< I, piid, V, IV, I2ETx, TM > | class_type | 
| Protected Member Functions | |
| virtual impl_type_ * | CreateEmptyClone () const | 
 1.5.6
 1.5.6