CIRCCOLL: Demonstrates a Collection/Enumeration

Click to open or copy the CIRCCOLL project files.

This sample shows how to implement a collection/enumeration of objects using ATL and STL (C++ Standard Template Library). Three object classes are implemented: the collection creator, the collection, and the object inside the collection. Only the collection creator has a coclass associated with it (see Circcoll.idl for the coclass declaration). The collection creator has a method to return a collection of circle objects. The collection object implements the Item, Count, and _NewItem methods, so that the object can be manipulated from Visual Basic using both the For...Next and For Each... syntax.

Running the Sample

Build Circcoll.dll and make sure it is registered. Load the .vbp file into Visual Basic and run the program. Press the button to activate the application.

This sample uses the following keywords:

AddRef; ATLASSERT; ATLTRACE; BEGIN_COM_MAP; BEGIN_OBJECT_MAP; CComCoClass; CComObject::CreateInstance; CComObjectRoot; CComVariant; COM_INTERFACE_ENTRY; DECLARE_NOT_AGGREGATABLE; DECLARE_REGISTRY; END_COM_MAP; END_OBJECT_MAP; glBegin; glEnd; glNormal3d; glPolygonMode; glVertex2d; glVertex3d; IConnectionPointContainerImpl::FindConnectionPoint; IConnectionPointImpl::Advise; IDispatchImpl; ISupportErrorInfo; OBJECT_ENTRY; QueryInterface; Release; USES_CONVERSION; VariantCopy; VariantInit