Provided by: libemf-doc_1.0.9+git.10.3231442-1_all
NAME
EMF::METAFILEDEVICECONTEXT - Graphics Device Context.
SYNOPSIS
#include <libemf.h> Inherits EMF::OBJECT. Public Member Functions METAFILEDEVICECONTEXT (FILE *fp_, const RECT *size, LPCWSTR description_w) virtual ~METAFILEDEVICECONTEXT () OBJECTTYPE getType (void) const DWORD nextHandle (void) void clearHandle (DWORD handle) void appendRecord (METARECORD *record) void appendHandle (METARECORD *record) void deleteMetafile (void) void mergePoint (const LONG &x, const LONG &y) void mergePoint (const POINT &p) Data Fields ::FILE * fp DATASTREAM ds ENHMETAHEADER * header std::vector< EMF::METARECORD *> records SIZEL resolution The resolution in DPI of the reference DC. SIZEL viewport_ext The extent of the viewport. POINT viewport_org The origin of the viewport. SIZEL window_ext The extent of the window. POINT window_org The origin of the window. bool update_frame Update the frame automatically? POINT min_device_point The lft/top-most painted point in device units. POINT max_device_point The rgt/btm-most painted point in device units. POINT point The current point. PEN * pen The current pen. BRUSH * brush The current brush. FONT * font The current font. PALETTE * palette The current palette. UINT text_alignment The current text alignment. COLORREF text_color The current text foreground color. COLORREF bk_color The current background color. INT bk_mode The current background mode. INT polyfill_mode The current polygon fill mode. INT map_mode The current mapping mode. FLOAT miter_limit The current miter length limit. std::vector< bool > handles std::map< HGDIOBJ, HGDIOBJ > emf_handles
Detailed Description
Graphics Device Context. Almost all GDI graphics calls require a device context (except those which create graphics objects such as pens and fonts). This is a specific context which renders to a metafile. There is a one-to-one correspondence between the device context and the metafile.
Constructor & Destructor Documentation
EMF::METAFILEDEVICECONTEXT::METAFILEDEVICECONTEXT (FILE * fp_, const RECT * size, LPCWSTR description_w) [inline] Most graphics programs seem to want to handle the opening and closing of files themselves, so this is an extension to the w32 interface. Parameters: fp_ stdio pointer to an open file. May be null. size the rectangle describing the position and size of the metafile on the 'page'. May be null. description_w a UNICODE string describing the metafile. The format must be 'some text\0some more text\0\0'. May be null. virtual EMF::METAFILEDEVICECONTEXT::~METAFILEDEVICECONTEXT () [inline], [virtual] Destructor frees all the graphics objects which may have been allocated. Now, it also frees any metarecords which it might hold, too.
Member Function Documentation
void EMF::METAFILEDEVICECONTEXT::appendHandle (METARECORD * record) [inline] Add this record to the metafile. Parameters: record this record is an object so it increments the handle count as well. References EMF::METARECORD::size(). Referenced by EMF::EMRCREATEPALETTE::execute(). void EMF::METAFILEDEVICECONTEXT::appendRecord (METARECORD * record) [inline] Add this record to the metafile. Parameters: record standard graphics record References EMF::METARECORD::size(). Referenced by EMF::EMRCREATEPALETTE::execute(). void EMF::METAFILEDEVICECONTEXT::clearHandle (DWORD handle) [inline] Clear the usage of this handle Referenced by EMF::EMRCREATEPALETTE::execute(). void EMF::METAFILEDEVICECONTEXT::deleteMetafile (void) [inline] Delete all the records from the metafile. This would seem to include deleting the header record as well. Referenced by EMF::EMRCREATEPALETTE::execute(). OBJECTTYPE EMF::METAFILEDEVICECONTEXT::getType (void) const [inline], [virtual] Return the type of this object (could probably do better with RTTI()). Implements EMF::OBJECT. void EMF::METAFILEDEVICECONTEXT::mergePoint (const LONG & x, const LONG & y) [inline] Somewhat superfluous, except checker doesn't understand the initialization of automatic structures in the declaration. Referenced by EMF::EMRCREATEPALETTE::execute(). void EMF::METAFILEDEVICECONTEXT::mergePoint (const POINT & p) [inline] Take the given point and determine if it enlarges the 'painted' area of the device. DWORD EMF::METAFILEDEVICECONTEXT::nextHandle (void) [inline] Scan the bit vector of used handles and return the index of the first free bit as this objects metafile handle. References EMF::ENHMETAHEADER::size(). Referenced by EMF::EMRCREATEPALETTE::execute().
Field Documentation
DATASTREAM EMF::METAFILEDEVICECONTEXT::ds All i/o to the metafile is wrapped by this class so that byte swapping on big-endian machines is transparent. Referenced by EMF::EMRCREATEPALETTE::execute(). std::map< HGDIOBJ, HGDIOBJ > EMF::METAFILEDEVICECONTEXT::emf_handles This map holds the current mapping between EMF handles and global object handles as a metafile is played back (with PlayEnhMetaFile). Referenced by EMF::EMRSELECTOBJECT::execute(), EMF::EMRDELETEOBJECT::execute(), EMF::EMRCREATEPEN::execute(), EMF::EMREXTCREATEPEN::execute(), EMF::EMRCREATEBRUSHINDIRECT::execute(), EMF::EMREXTCREATEFONTINDIRECTW::execute(), and EMF::EMRCREATEPALETTE::execute(). ::FILE* EMF::METAFILEDEVICECONTEXT::fp If it is a file-based metafile, then this pointer is not null. Referenced by EMF::EMRCREATEPALETTE::execute(). std::vector< bool > EMF::METAFILEDEVICECONTEXT::handles For compatibility, it appears that metafile handles are reused as objects are deleted. Attempt to emulate that behavior with a bit vector of used metafile handles. ENHMETAHEADER* EMF::METAFILEDEVICECONTEXT::header Serves double duty as the physical device description. Referenced by EMF::EMRCREATEPALETTE::execute(). std::vector< EMF::METARECORD* > EMF::METAFILEDEVICECONTEXT::records All of the metafile records are stored in memory. Referenced by EMF::EMRCREATEPALETTE::execute().
Author
Generated automatically by Doxygen for libemf from the source code.