Partager via


IEnumMoniker (Compact 2013)

3/26/2014

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

See Also

Reference

COM Interfaces
IMoniker::Enum
IRunningObjectTable::EnumRunning