EMF::METARECORD(3)
πΈ NAME πΈ
okay so bestie, meet EMF::METARECORD β the base class of all metafile records. that's the whole name section, she's the mother of the entire family and we stan π
β¨ SYNOPSIS β¨
first things first, you gotta pull her in:
#include <libemf.h>
π Inherited by π
this is the whole squad that inherits from her, no cap, every single one:
EMF::EMRARCEMF::EMRARCTOEMF::EMRBEGINPATHEMF::EMRCLOSEFIGUREEMF::EMRCREATEBRUSHINDIRECTEMF::EMRCREATEPALETTEEMF::EMRCREATEPENEMF::EMRDELETEOBJECTEMF::EMRELLIPSEEMF::EMRENDPATHEMF::EMREOFEMF::EMREXTCREATEFONTINDIRECTWEMF::EMREXTCREATEPENEMF::EMREXTTEXTOUTAEMF::EMREXTTEXTOUTWEMF::EMRFILLPATHEMF::EMRLINETOEMF::EMRMODIFYWORLDTRANSFORMEMF::EMRMOVETOEXEMF::EMRPOLYBEZIEREMF::EMRPOLYBEZIER16EMF::EMRPOLYBEZIERTOEMF::EMRPOLYBEZIERTO16EMF::EMRPOLYGONEMF::EMRPOLYGON16EMF::EMRPOLYLINEEMF::EMRPOLYLINE16EMF::EMRPOLYLINETOEMF::EMRPOLYLINETO16EMF::EMRPOLYPOLYGONEMF::EMRPOLYPOLYGON16EMF::EMRRECTANGLEEMF::EMRRESTOREDCEMF::EMRSAVEDCEMF::EMRSCALEVIEWPORTEXTEXEMF::EMRSCALEWINDOWEXTEXEMF::EMRSELECTOBJECTEMF::EMRSETBKCOLOREMF::EMRSETBKMODEEMF::EMRSETMAPMODEEMF::EMRSETMETARGNEMF::EMRSETMITERLIMITEMF::EMRSETPIXELVEMF::EMRSETPOLYFILLMODEEMF::EMRSETTEXTALIGNEMF::EMRSETTEXTCOLOREMF::EMRSETVIEWPORTEXTEXEMF::EMRSETVIEWPORTORGEXEMF::EMRSETWINDOWEXTEXEMF::EMRSETWINDOWORGEXEMF::EMRSETWORLDTRANSFORMEMF::EMRSTROKEANDFILLPATHEMF::EMRSTROKEPATHEMF::ENHMETAHEADER
π«Ά Public Member Functions π«Ά
these are her public-facing slay moves:
virtual void execute (METAFILEDEVICECONTEXT *source, HDC dc) const =0
virtual bool serialize (DATASTREAM ds)=0
virtual int size (void) const =0
virtual ~METARECORD ()
π Detailed Description π
EMF::METARECORD is the base class of all metafile records. like, all of them. every single one is giving daughter-of-METARECORD energy.
okay so picture this: a metafile is just a sequence of graphics records that get 'executed' in order. literally one after another, in order, no skipping. and this class? she's the common base that lets each different record chill together in one common list π₯°. she also specifies an interface so every record can write itself out to a file. iconic behaviour, honestly.
π Constructor & Destructor Documentation π
π virtual EMF::METARECORD::~METARECORD () [inline], [virtual] π
the virtual destructor is there so that records which allocated extra memory can release it when they get deleted π«Ά. simple records? they just use the default destructor defined right here. no drama, no cleanup needed, lowkey perfect.
π₯ Member Function Documentation π₯
β virtual void EMF::METARECORD::execute (METAFILEDEVICECONTEXT * source, HDC dc) const [pure virtual] β
runs the graphics command inside the given context. this is the one PlayEnhMetaFile uses to 'copy' one metafile into another. she's literally the copy-paste queen π
Parameters
sourceβ the device context that this record is taken from.dcβ the destination context.
Implemented in
EMF::ENHMETAHEADER, EMF::EMREOF, EMF::EMRSETVIEWPORTORGEX,
EMF::EMRSETWINDOWORGEX, EMF::EMRSETVIEWPORTEXTEX, EMF::EMRSCALEVIEWPORTEXTEX,
EMF::EMRSETWINDOWEXTEX, EMF::EMRSCALEWINDOWEXTEX,
EMF::EMRMODIFYWORLDTRANSFORM, EMF::EMRSETWORLDTRANSFORM, EMF::EMRSETTEXTALIGN,
EMF::EMRSETTEXTCOLOR, EMF::EMRSETBKCOLOR, EMF::EMRSETBKMODE,
EMF::EMRSETPOLYFILLMODE, EMF::EMRSETMAPMODE, EMF::EMRSELECTOBJECT,
EMF::EMRDELETEOBJECT, EMF::EMRMOVETOEX, EMF::EMRLINETO, EMF::EMRARC,
EMF::EMRARCTO, EMF::EMRRECTANGLE, EMF::EMRELLIPSE, EMF::EMRPOLYLINE,
EMF::EMRPOLYLINE16, EMF::EMRPOLYGON, EMF::EMRPOLYGON16, EMF::EMRPOLYPOLYGON,
EMF::EMRPOLYPOLYGON16, EMF::EMRPOLYBEZIER, EMF::EMRPOLYBEZIER16,
EMF::EMRPOLYBEZIERTO, EMF::EMRPOLYBEZIERTO16, EMF::EMRPOLYLINETO,
EMF::EMRPOLYLINETO16, EMF::EMREXTTEXTOUTA, EMF::EMREXTTEXTOUTW,
EMF::EMRSETPIXELV, EMF::EMRCREATEPEN, EMF::EMREXTCREATEPEN,
EMF::EMRCREATEBRUSHINDIRECT, EMF::EMREXTCREATEFONTINDIRECTW,
EMF::EMRCREATEPALETTE, EMF::EMRFILLPATH, EMF::EMRSTROKEPATH,
EMF::EMRSTROKEANDFILLPATH, EMF::EMRBEGINPATH, EMF::EMRENDPATH,
EMF::EMRCLOSEFIGURE, EMF::EMRSAVEDC, EMF::EMRRESTOREDC, EMF::EMRSETMETARGN,
and EMF::EMRSETMITERLIMIT.
π¦ virtual bool EMF::METARECORD::serialize (DATASTREAM ds) [pure virtual] π¦
write yourself to the given file, bestie. it's virtual because some records are of arbitrary length and need to write extra information after their EMR structure. so like, they're not all one-size-fits-all, and that's fine π
Parameters
dsβ the datastream to write oneself to.
Implemented in
EMF::ENHMETAHEADER, EMF::EMREOF, EMF::EMRSETVIEWPORTORGEX,
EMF::EMRSETWINDOWORGEX, EMF::EMRSETVIEWPORTEXTEX, EMF::EMRSCALEVIEWPORTEXTEX,
EMF::EMRSETWINDOWEXTEX, EMF::EMRSCALEWINDOWEXTEX,
EMF::EMRMODIFYWORLDTRANSFORM, EMF::EMRSETWORLDTRANSFORM, EMF::EMRSETTEXTALIGN,
EMF::EMRSETTEXTCOLOR, EMF::EMRSETBKCOLOR, EMF::EMRSETBKMODE,
EMF::EMRSETPOLYFILLMODE, EMF::EMRSETMAPMODE, EMF::EMRSELECTOBJECT,
EMF::EMRDELETEOBJECT, EMF::EMRMOVETOEX, EMF::EMRLINETO, EMF::EMRARC,
EMF::EMRARCTO, EMF::EMRRECTANGLE, EMF::EMRELLIPSE, EMF::EMRPOLYLINE,
EMF::EMRPOLYLINE16, EMF::EMRPOLYGON, EMF::EMRPOLYGON16, EMF::EMRPOLYPOLYGON,
EMF::EMRPOLYPOLYGON16, EMF::EMRPOLYBEZIER, EMF::EMRPOLYBEZIER16,
EMF::EMRPOLYBEZIERTO, EMF::EMRPOLYBEZIERTO16, EMF::EMRPOLYLINETO,
EMF::EMRPOLYLINETO16, EMF::EMREXTTEXTOUTA, EMF::EMREXTTEXTOUTW,
EMF::EMRSETPIXELV, EMF::EMRCREATEPEN, EMF::EMREXTCREATEPEN,
EMF::EMRCREATEBRUSHINDIRECT, EMF::EMREXTCREATEFONTINDIRECTW,
EMF::EMRCREATEPALETTE, EMF::EMRFILLPATH, EMF::EMRSTROKEPATH,
EMF::EMRSTROKEANDFILLPATH, EMF::EMRBEGINPATH, EMF::EMRENDPATH,
EMF::EMRCLOSEFIGURE, EMF::EMRSAVEDC, EMF::EMRRESTOREDC, EMF::EMRSETMETARGN,
and EMF::EMRSETMITERLIMIT.
π virtual int EMF::METARECORD::size (void) const [pure virtual] π
okay so the header record of a metafile keeps track of the total size of the metafile in bytes, which means every time a record gets added to the list, it updates that total size. she's keeping the receipts, literally π§Ύβ¨
Implemented in
EMF::ENHMETAHEADER, EMF::EMREOF, EMF::EMRSETVIEWPORTORGEX,
EMF::EMRSETWINDOWORGEX, EMF::EMRSETVIEWPORTEXTEX, EMF::EMRSCALEVIEWPORTEXTEX,
EMF::EMRSETWINDOWEXTEX, EMF::EMRSCALEWINDOWEXTEX,
EMF::EMRMODIFYWORLDTRANSFORM, EMF::EMRSETWORLDTRANSFORM, EMF::EMRSETTEXTALIGN,
EMF::EMRSETTEXTCOLOR, EMF::EMRSETBKCOLOR, EMF::EMRSETBKMODE,
EMF::EMRSETPOLYFILLMODE, EMF::EMRSETMAPMODE, EMF::EMRSELECTOBJECT,
EMF::EMRDELETEOBJECT, EMF::EMRMOVETOEX, EMF::EMRLINETO, EMF::EMRARC,
EMF::EMRARCTO, EMF::EMRRECTANGLE, EMF::EMRELLIPSE, EMF::EMRPOLYLINE,
EMF::EMRPOLYLINE16, EMF::EMRPOLYGON, EMF::EMRPOLYGON16, EMF::EMRPOLYPOLYGON,
EMF::EMRPOLYPOLYGON16, EMF::EMRPOLYBEZIER, EMF::EMRPOLYBEZIER16,
EMF::EMRPOLYBEZIERTO, EMF::EMRPOLYBEZIERTO16, EMF::EMRPOLYLINETO,
EMF::EMRPOLYLINETO16, EMF::EMREXTTEXTOUTA, EMF::EMREXTTEXTOUTW,
EMF::EMRSETPIXELV, EMF::EMRCREATEPEN, EMF::EMREXTCREATEPEN,
EMF::EMRCREATEBRUSHINDIRECT, EMF::EMREXTCREATEFONTINDIRECTW,
EMF::EMRCREATEPALETTE, EMF::EMRFILLPATH, EMF::EMRSTROKEPATH,
EMF::EMRSTROKEANDFILLPATH, EMF::EMRBEGINPATH, EMF::EMRENDPATH,
EMF::EMRCLOSEFIGURE, EMF::EMRSAVEDC, EMF::EMRRESTOREDC, EMF::EMRSETMETARGN,
and EMF::EMRSETMITERLIMIT.
Referenced by EMF::METAFILEDEVICECONTEXT::appendHandle(), and EMF::METAFILEDEVICECONTEXT::appendRecord().
π Author π
generated automatically by Doxygen for libemf from the source code. she didn't write herself, bestie, the machines did it π
and that's the whole page!! this was Version 1.0.9, dated Thu Jun 6 2024 23:01:07 β go forth and inherit responsibly, mwah ππ¦π
π¦ where this page comes from
- debian trixie: libemf-doc 1.0.13-8 Β· GPL-2.0-only
- ubuntu questing: libemf-doc 1.0.13-8
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms