FORMATETC
The FORMATETC structure is a generalized Clipboard format. It is
enhanced to encompass a target device, the aspect or view of the data, and a
storage medium indicator. Where one might expect to find a Clipboard format,
OLE uses a FORMATETC data structure instead. This structure is used as
a parameter in OLE functions and methods that require data format information.
typedef struct tagFORMATETC
{
CLIPFORMAT cfFormat;
DVTARGETDEVICE *ptd;
DWORD dwAspect;
LONG lindex;
DWORD tymed;
}FORMATETC, *LPFORMATETC;
Members
-
cfFormat
-
Particular clipboard format of interest. There are three types of formats
recognized by OLE:
-
Standard interchange formats, such as CF_TEXT.
-
Private application formats understood only by the application offering the
format, or by other applications offering similar features.
-
OLE formats, which are used to create linked or embedded objects.
-
ptd
-
Pointer to a DVTARGETDEVICE structure containing
information about the target device for which the data is being composed. A
NULL value is used whenever the specified data format is independent of the
target device or when the caller doesn’t care what device is used. In the
latter case, if the data requires a target device, the object should pick an
appropriate default device (often the display for visual components). Data
obtained from an object with a NULL target device, such as most metafiles, is
independent of the target device. The resulting data is usually the same as it
would be if the user chose the Save As command from the File menu and selected
an interchange format.
-
dwAspect
-
One of the DVASPECT enumeration constants that indicate
how much detail should be contained in the rendering. A single clipboard
format can support multiple aspects or views of the object. Most data and
presentation transfer and caching methods pass aspect information. For
example, a caller might request an object’s iconic picture, using the metafile
clipboard format to retrieve it. Note that only one DVASPECT value can
be used in dwAspect. That is, dwAspect cannot be the result of a
BOOLEAN OR operation on several DVASPECT values.
-
lindex
-
Part of the aspect when the data must be split across page boundaries. The
most common value is -1, which identifies all of the data. For the aspects
DVASPECT_THUMBNAIL and DVASPECT_ICON, lindex is ignored.
-
tymed
-
One of the TYMED enumeration constants which indicate the
type of storage medium used to transfer the object’s data. Data can be
transferred using whatever medium makes sense for the object. For example,
data can be passed using global memory, a disk file, or structured storage
objects. For more information, see the TYMED enumeration.
Remarks
The FORMATETC structure is used by methods in the data transfer and
presentation interfaces as a parameter specifying the data being transferred.
For example, the IDataObject::GetData method
uses the FORMATETC structure to indicate exactly what kind of data the
caller is requesting.
See Also
DVASPECT,
IDataAdviseHolder,
IDataObject,
IEnumFORMATETC,
IOleCache, OleCreate,
OleCreateFromData,
OleCreateLinkFromData,
OleCreateStaticFromData,
OleCreateLink,
OleCreateLinkToFile,
OleCreateFromFile,
STATDATA, STGMEDIUM,
TYMED