IEnumXXXX

To allow you to enumerate the number of items of a given type that an object maintains, COM provides a set of enumeration interfaces, one for each type of item.

To use these interfaces, the client asks an object that maintains a collection of items to create an enumerator object. The interface on the enumerator object is one of the enumeration interfaces, all of which have a name of the form IEnumItem_name. The only difference between enumeration interfaces is what they enumerate—there must be a separate enumeration interface for each type of item enumerated. All have the same set of methods and are used in the same way. For example, by repeatedly calling the Next method, the client gets successive pointers to each item in the collection.

The following table lists the set of enumeration interfaces that COM defines, and the items enumerated.

Enumeration Interface Name Item Enumerated

IEnumFORMATETC

An array of FORMATETC structures.

IEnumMoniker

The components of a moniker, or the monikers in a table.

IEnumOLEVERB

The different verbs available for an object, in order of ascending verb number.

IEnumSTATDATA

An array of STATDATA structures that contain advisory connection information for a data object.

IEnumSTATSTG

An array of STATSTG structures that contain statistical information about a storage, stream, or LockBytes object.

IEnumString

Strings

IEnumUnknown

Enumerates IUnknown interface pointers.

IEnumVARIANT

A collection of Variants. It allows clients to enumerate heterogeneous collections of objects and intrinsic types when the clients cannot or do not know the specific type(s) of elements in the collection.

Methods in Vtable Order

IUnknown Methods Description

QueryInterface

Returns pointers to supported interfaces.

AddRef

Increments reference count.

Release

Decrements reference count.

IEnumXXXX Methods Description

Next

Retrieves a specified number of items in the enumeration sequence.

Skip

Skips over a specified number of items in the enumeration sequence.

Reset

Resets the enumeration sequence to the beginning.

Clone

Creates another enumerator that contains the same enumeration state as the current one.

Send comments about this topic to Microsoft.