IEnumSTATPROPSTG interface (propidl.h)

The IEnumSTATPROPSTG interface iterates through an array of STATPROPSTG structures. The STATPROPSTG structures contain statistical data about properties in a property set. IEnumSTATPROPSTG has the same methods as all enumerator interfaces: Next, Skip, Reset, and Clone.

The implementation defines the order in which the properties in the set are enumerated. Properties that are present when the enumerator is created, and are not removed during the enumeration, will be enumerated only once. Properties added or deleted while the enumeration is in progress may or may not be enumerated, but will never be enumerated more than once.

Reserved property identifiers, properties with a property ID of 0 (dictionary), 1 (code page indicator), or greater than or equal to 0x80000000 are not enumerated.

Enumeration of a nonsimple property does not necessarily indicate that the property can be read successfully through a call to IPropertyStorage::ReadMultiple. This is because the performance overhead of checking existence of the indirect stream or storage is prohibitive during property enumeration.


The IEnumSTATPROPSTG interface inherits from the IUnknown interface. IEnumSTATPROPSTG also has these types of members:


The IEnumSTATPROPSTG interface has these methods.

Method Description
IEnumSTATPROPSTG::Clone Creates an enumerator that contains the same enumeration state as the current STATPROPSTG structure enumerator.
IEnumSTATPROPSTG::Next Retrieves a specified number of STATPROPSTG structures, that follow subsequently in the enumeration sequence.
IEnumSTATPROPSTG::Reset Resets the enumeration sequence to the beginning of the STATPROPSTG structure array.
IEnumSTATPROPSTG::Skip Skips the specified number of STATPROPSTG structures in the enumeration sequence.


Minimum supported client Windows 2000 Professional [desktop apps | UWP apps]
Minimum supported server Windows 2000 Server [desktop apps | UWP apps]
Target Platform Windows
Header propidl.h (include Propidl.h)

See also

EnumAll Sample