IEnumMoniker

A version of this page is also available for

Windows Embedded CE 6.0 R3

4/8/2010

This interface is used to enumerate the components of a moniker or to enumerate the monikers in a table of monikers.

IEnumMoniker has the same methods as all enumerator interfaces: Next, Skip, Reset, and Clone.

When to Implement

You need to implement IEnumMoniker if you are writing a new type of moniker and your monikers have an internal structure that can be enumerated.

Your implementation of IMoniker::Enum must return an enumerator that implements IEnumMoniker and can enumerate your moniker's components. If your moniker has no structure that can be enumerated, your IMoniker::Enum method can simply return a NULL pointer.

When to Use

Call the methods of the IEnumMoniker interface if you need to enumerate the components of a composite moniker, or to enumerate the monikers in a table.

OLE defines two interfaces that supply an IEnumMoniker interface pointer:

  • The IMoniker::Enum method gets a pointer to an IEnumMoniker implementation that can enumerate forwards or backwards through the components of the moniker.
  • The IRunningObjectTable::EnumRunning method returns a pointer to an IEnumMoniker implementation that can enumerate the monikers registered in a Running Object Table.

The prototypes of the methods are as follows:

HRESULT Next(
  ULONG celt,
  IMoniker_com_IMoniker* rgelt,
  ULONG* pceltFetched
);
 
HRESULT Skip(
  ULONG celt
);
 
HRESULT Reset(void)
 
HRESULT Clone(
  IEnumMoniker** ppenum  
);

Methods in Vtable Order

IUnknown method Description

QueryInterface

Returns pointers to supported interfaces.

AddRef

Increments reference count.

Release

Decrements reference count.

Method 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.

Remarks

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

Requirements

Header objidl.h, objidl.idl
Library ole32.lib, uuid.lib
Windows Embedded CE Windows CE 3.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

IMoniker::Enum
IRunningObjectTable::EnumRunning