EMF
1.0
|
The base class of all metafile records. More...
#include <libemf.h>
Public Member Functions | |
virtual void | execute (METAFILEDEVICECONTEXT *source, HDC dc) const =0 |
virtual bool | serialize (DATASTREAM ds)=0 |
virtual int | size (void) const =0 |
virtual | ~METARECORD () |
The base class of all metafile records.
A metafile consists off a sequence of graphics records "executed" in order. This is a common base class that allows each, different, record to be stored in a common list. An interface is specified for each record to write itself to a file.
virtual EMF::METARECORD::~METARECORD | ( | ) | [inline, virtual] |
The virtual destructor allows records which allocated additional memory to release it when they are deleted. Simple records just use the default destructor defined here.
virtual void EMF::METARECORD::execute | ( | METAFILEDEVICECONTEXT * | source, |
HDC | dc | ||
) | const [pure virtual] |
Execute the graphics command in the given context. Used by PlayEnhMetaFile to "copy" one metafile into another.
source | the device context from which this record is taken. |
dc | the destination context. |
Implemented in EMF::EMRSETMITERLIMIT, EMF::EMRSETMETARGN, EMF::EMRRESTOREDC, EMF::EMRSAVEDC, EMF::EMRCLOSEFIGURE, EMF::EMRENDPATH, EMF::EMRBEGINPATH, EMF::EMRSTROKEANDFILLPATH, EMF::EMRSTROKEPATH, EMF::EMRFILLPATH, EMF::EMRCREATEPALETTE, EMF::EMREXTCREATEFONTINDIRECTW, EMF::EMRCREATEBRUSHINDIRECT, EMF::EMREXTCREATEPEN, EMF::EMRCREATEPEN, EMF::EMRSETPIXELV, EMF::EMREXTTEXTOUTA, EMF::EMRPOLYLINETO16, EMF::EMRPOLYLINETO, EMF::EMRPOLYBEZIERTO16, EMF::EMRPOLYBEZIERTO, EMF::EMRPOLYBEZIER16, EMF::EMRPOLYBEZIER, EMF::EMRPOLYPOLYGON16, EMF::EMRPOLYPOLYGON, EMF::EMRPOLYGON16, EMF::EMRPOLYGON, EMF::EMRPOLYLINE16, EMF::EMRPOLYLINE, EMF::EMRELLIPSE, EMF::EMRRECTANGLE, EMF::EMRARCTO, EMF::EMRARC, EMF::EMRLINETO, EMF::EMRMOVETOEX, EMF::EMRDELETEOBJECT, EMF::EMRSELECTOBJECT, EMF::EMRSETMAPMODE, EMF::EMRSETPOLYFILLMODE, EMF::EMRSETBKMODE, EMF::EMRSETBKCOLOR, EMF::EMRSETTEXTCOLOR, EMF::EMRSETTEXTALIGN, EMF::EMRSETWORLDTRANSFORM, EMF::EMRMODIFYWORLDTRANSFORM, EMF::EMRSCALEWINDOWEXTEX, EMF::EMRSETWINDOWEXTEX, EMF::EMRSCALEVIEWPORTEXTEX, EMF::EMRSETVIEWPORTEXTEX, EMF::EMRSETWINDOWORGEX, EMF::EMRSETVIEWPORTORGEX, EMF::EMREOF, and EMF::ENHMETAHEADER.
virtual bool EMF::METARECORD::serialize | ( | DATASTREAM | ds | ) | [pure virtual] |
Write yourself to the given file. This is virtual since some records are of arbitrary length and need to write additional information after their EMR structure.
ds | the datastream to write oneself to. |
Implemented in EMF::EMRSETMITERLIMIT, EMF::EMRSETMETARGN, EMF::EMRRESTOREDC, EMF::EMRSAVEDC, EMF::EMRCLOSEFIGURE, EMF::EMRENDPATH, EMF::EMRBEGINPATH, EMF::EMRSTROKEANDFILLPATH, EMF::EMRSTROKEPATH, EMF::EMRFILLPATH, EMF::EMRCREATEPALETTE, EMF::EMREXTCREATEFONTINDIRECTW, EMF::EMRCREATEBRUSHINDIRECT, EMF::EMREXTCREATEPEN, EMF::EMRCREATEPEN, EMF::EMRSETPIXELV, EMF::EMREXTTEXTOUTA, EMF::EMRPOLYLINETO16, EMF::EMRPOLYLINETO, EMF::EMRPOLYBEZIERTO16, EMF::EMRPOLYBEZIERTO, EMF::EMRPOLYBEZIER16, EMF::EMRPOLYBEZIER, EMF::EMRPOLYPOLYGON16, EMF::EMRPOLYPOLYGON, EMF::EMRPOLYGON16, EMF::EMRPOLYGON, EMF::EMRPOLYLINE16, EMF::EMRPOLYLINE, EMF::EMRELLIPSE, EMF::EMRRECTANGLE, EMF::EMRARCTO, EMF::EMRARC, EMF::EMRLINETO, EMF::EMRMOVETOEX, EMF::EMRDELETEOBJECT, EMF::EMRSELECTOBJECT, EMF::EMRSETMAPMODE, EMF::EMRSETPOLYFILLMODE, EMF::EMRSETBKMODE, EMF::EMRSETBKCOLOR, EMF::EMRSETTEXTCOLOR, EMF::EMRSETTEXTALIGN, EMF::EMRSETWORLDTRANSFORM, EMF::EMRMODIFYWORLDTRANSFORM, EMF::EMRSCALEWINDOWEXTEX, EMF::EMRSETWINDOWEXTEX, EMF::EMRSCALEVIEWPORTEXTEX, EMF::EMRSETVIEWPORTEXTEX, EMF::EMRSETWINDOWORGEX, EMF::EMRSETVIEWPORTORGEX, EMF::EMREOF, and EMF::ENHMETAHEADER.
virtual int EMF::METARECORD::size | ( | void | ) | const [pure virtual] |
The header record of a metafile records the total size of the metafile in bytes, so as each record is added to the list, it updates the total size.
Implemented in EMF::EMRSETMITERLIMIT, EMF::EMRSETMETARGN, EMF::EMRRESTOREDC, EMF::EMRSAVEDC, EMF::EMRCLOSEFIGURE, EMF::EMRENDPATH, EMF::EMRBEGINPATH, EMF::EMRSTROKEANDFILLPATH, EMF::EMRSTROKEPATH, EMF::EMRFILLPATH, EMF::EMRCREATEPALETTE, EMF::EMREXTCREATEFONTINDIRECTW, EMF::EMRCREATEBRUSHINDIRECT, EMF::EMREXTCREATEPEN, EMF::EMRCREATEPEN, EMF::EMRSETPIXELV, EMF::EMREXTTEXTOUTA, EMF::EMRPOLYLINETO16, EMF::EMRPOLYLINETO, EMF::EMRPOLYBEZIERTO16, EMF::EMRPOLYBEZIERTO, EMF::EMRPOLYBEZIER16, EMF::EMRPOLYBEZIER, EMF::EMRPOLYPOLYGON16, EMF::EMRPOLYPOLYGON, EMF::EMRPOLYGON16, EMF::EMRPOLYGON, EMF::EMRPOLYLINE16, EMF::EMRPOLYLINE, EMF::EMRELLIPSE, EMF::EMRRECTANGLE, EMF::EMRARCTO, EMF::EMRARC, EMF::EMRLINETO, EMF::EMRMOVETOEX, EMF::EMRDELETEOBJECT, EMF::EMRSELECTOBJECT, EMF::EMRSETMAPMODE, EMF::EMRSETPOLYFILLMODE, EMF::EMRSETBKMODE, EMF::EMRSETBKCOLOR, EMF::EMRSETTEXTCOLOR, EMF::EMRSETTEXTALIGN, EMF::EMRSETWORLDTRANSFORM, EMF::EMRMODIFYWORLDTRANSFORM, EMF::EMRSCALEWINDOWEXTEX, EMF::EMRSETWINDOWEXTEX, EMF::EMRSCALEVIEWPORTEXTEX, EMF::EMRSETVIEWPORTEXTEX, EMF::EMRSETWINDOWORGEX, EMF::EMRSETVIEWPORTORGEX, EMF::EMREOF, and EMF::ENHMETAHEADER.