IEnumOleUndoUnits
The IEnumOleUndoUnits
interface enumerates the undo units on the undo or redo stack.
When to Implement
The undo
manager implements this method to enumerate a list of undo units on the undo or
redo stack.
When to Use
Use the IEnumOleUndoUnits
interface to enumerate all the top level undo units on the undo or redo stack.
The
prototypes of the methods are as follows:
HRESULT Next(
ULONG cUndoUnits , |
//[in]Number of undo units returned in rgpcd |
CONNECTDATA **rgpcd , |
//[out]Array to receive enumerated undo units |
ULONG *pcFetched |
//[out]Pointer to actual number of undo units |
); |
|
HRESULT Skip(
ULONG cUndoUnits |
//[in]Number of undo units to skip |
); |
|
HRESULT Reset(void);
HRESULT Clone(
IEnumOleUndoUnits** ppEnum |
//[out]Indirect pointer to newly created enumerator |
); |
|
Remarks
IEnumOleUndoUnits::Next
Enumerates
the next specified number of undo units in the enumerator s list, returning
them in rgpcd along with the actual number of enumerated elements in pcFetched.
The caller is
responsible for calling the Release method for each element in the array
once this method returns successfully. If cUndoUnits is greater than
one, the caller must also pass a non-NULL pointer to pcFetched to get
the number of pointers it has to release.
E_NOTIMPL is
not allowed as a return value. If an error value is returned, no entries in the
rgpcd array are valid on exit and require no release.
IEnumOleUndoUnits::Skip
Instructs the
enumerator to skip the next specified number of elements in the enumerator so
that the next call to IEnumOleUndoUnits::Next will not return those elements.
IEnumOleUndoUnits::Reset
Instructs the
enumerator to position itself at the beginning of the list of elements.
There is no
guarantee that the same set of elements will be enumerated on each pass through
the list. It depends on the collection being enumerated. It is too expensive
for some collections, such as files in a directory, to maintain a specific
state.
IEnumOleUndoUnits::Clone
Creates
another undo unit enumerator with the same state as the current enumerator to
iterate over the same list. This method makes it possible to record a point in
the enumeration sequence in order to return to that point at a later time.
The caller
must release this new enumerator separately from the first enumerator.
See Also
IOleUndoManager, IOleUndoUnit