IMoniker::Enum (Compact 2013)

3/26/2014

This method enumerates component monikers.

Syntax

HRESULT Enum( 
  BOOL fForward, 
  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 the IUnknown::AddRef method on the enumerator object.

    It is the caller's responsibility to call the IUnknown::Release method.

    If an error occurs or if the moniker has no enumerable components, the implementation sets *ppenumMoniker to NULL.

Return Value

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.

To determine whether the platform supports this interface, see Determine Supported COM APIs.

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.

Requirements

Header

objidl.h,
objidl.idl

Library

ole32.lib,
uuid.lib

See Also

Reference

IMoniker
IUnknown::AddRef
IUnknown::Release
IEnumMoniker