IEnumMoniker:IUnknown

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

OS Versions: Windows CE 3.0 and later.
Header: Objidl.h, Objidl.idl.
Link Library: Ole32.lib, Uuid.lib.

See Also

IMoniker::Enum | IRunningObjectTable::EnumRunning

Last updated on Wednesday, April 13, 2005

© 2005 Microsoft Corporation. All rights reserved.