IStorage::EnumElements  B5NS1Q

Retrieves a pointer to an enumerator object that can be used to enumerate the storage and stream objects contained within this storage object.

HRESULT EnumElements(

    DWORD reserved1,

//Reserved; must be zero

    void * reserved2,

//Reserved; must be NULL

    DWORD reserved3,

//Reserved; must be zero

    IEnumSTATSTG ** ppenum

//Indirect pointer to IEnumSTATSTG

   );

 

 

Parameters

reserved1

[in] Reserved for future use; must be zero.

reserved2

[in] Reserved for future use; must be NULL.

reserved3

[in] Reserved for future use; must be zero.

ppenum

[out] When successful, points to the location of an IEnumSTATSTG2INK9CC pointer to new enumerator object.

Return Values

S_OK

The enumerator object was successfully returned.

E_PENDING

Asynchronous Storage only: Part or all of the element s data is currently unavailable. For more information see IFillLockBytes194LHM2 and Asynchronous Storage27PL.UQ.

STG_E_INSUFFICIENTMEMORY

The enumerator object could not be created due to lack of memory.

STG_E_INVALIDPARAMETER

One of the parameters was not valid.

STG_E_REVERTED

The storage object has been invalidated by a revert operation above it in the transaction tree.

Remarks

The enumerator object returned by this method implements the IEnumSTATSTG2INK9CC interface, one of the standard enumerator interfaces that contain the Next, Reset, Clone, and Skip methods. IEnumSTATSTG enumerates the data stored in an array of STATSTGN9JHJ6 structures.

The storage object must be open in read mode to allow the enumeration of its elements.

The order in which the elements are enumerated and whether the enumerator is a snapshot or always reflects the current state of the storage object, and depends on the IStorageFS1VT1 implementation.

See Also

IStorage - Compound File Implementation14H.BPD, IEnumXXXX1_733H2, IEnumSTATSTG2INK9CC, STATSTGN9JHJ6