IMoniker::Enum

This method enumerates component monikers.

At a Glance

Header file: Oaidl.h
Windows CE versions: 2.0 and later

Syntax

HRESULT Enum( IEnumMoniker ** ppenumMoniker );

Parameters

fForward

[in] Boolean value that is set to TRUE to enumerate the monikers from left to right, or to FALSE to enumerate from right to left.

ppenumMoniker

[out] Address of IEnumMoniker* pointer variable that receives the interface pointer to the enumerator object for the moniker. When successful, the implementation must call IUnknown::AddRef on the enumerator object. It is the caller’s responsibility to call IUnknown::Release. If an error occurs or if the moniker has no enumerable components, the implementation sets *ppenumMoniker to NULL.

Return Values

The method supports the standard return values E_OUTOFMEMORY and E_UNEXPECTED, as well as S_OK, which indicates success. S_OK is returned even if the moniker does not provide an enumerator (if ppenumMoniker equals NULL).

Remarks

IMoniker::Enum must supply an IEnumMoniker pointer to an enumerator that can enumerate the components of a moniker. For example, the implementation of the IMoniker::Enum method for a generic composite moniker creates an enumerator that can determine the individual monikers that make up the composite, while the IMoniker::Enum method for a file moniker creates an enumerator that returns monikers representing each of the components in the path.

Notes to Callers

Call this method to examine the components that make up a composite moniker.

Notes to Implementers

If the new moniker class has no discernible internal structure, your implementation of this method can simply return S_OK and set ppenumMoniker to NULL.