IEnumFORMATETC  
The IEnumFORMATETC
interface is used to enumerate an array of FORMATETC structures. IEnumFORMATETC
has the same methods as all enumerator interfaces: Next, Skip, Reset,
and Clone. For general information on these methods, refer to IEnumXXXX. 
When to Implement
IEnumFORMATETC must be implemented by all data objects to support
calls to IDataObject::EnumFormatEtc, which supplies a pointer to the enumerator s IEnumFORMATETC
interface. If the data object supports a different set of FORMATETC
information depending on the direction of the data (whether a call is intended
for the SetData or GetData method of IDataObject), the
implementation of IEnumFORMATETC must be able to operate on both.
The order of
formats enumerated through the IEnumFORMATETC object should be the same
as the order that the formats would be in when placed on the clipboard.
Typically, this order starts with private data formats and ends with
presentation formats such as CF_METAFILEPICT.
When to Use
Call the
methods of IEnumFORMATETC when you need to enumerate the FORMATETC
structures defining the formats and media supported by a given data object.
This is necessary in most data transfer operations, such as clipboard and drag-and-drop,
so the object on the other end of the data transfer can determine whether the
appropriate format and media for the data is supported.
The
prototypes of the methods are as follows:
HRESULT Next(ULONG celt, FORMATETC * rgelt, ULONG
* pceltFetched)
HRESULT
Skip(ULONG celt)
HRESULT
Reset(void)
HRESULT
Clone(IEnumFORMATETC ** ppenum)
See Also