.TH "EMF::GLOBALOBJECTS" 3 "Tue Jun 30 2020" "Version 1.0.9" "libemf" \" -*- nroff -*- .ad l .nh .SH NAME EMF::GLOBALOBJECTS .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Member Functions" .in +1c .ti -1c .RI "HGDIOBJ \fBadd\fP (\fBOBJECT\fP *object)" .br .ti -1c .RI "\fBOBJECT\fP * \fBfind\fP (const HGDIOBJ handle)" .br .ti -1c .RI "void \fBremove\fP (const \fBOBJECT\fP *object)" .br .ti -1c .RI "auto \fBbegin\fP (void) const" .br .ti -1c .RI "auto \fBend\fP (void) const" .br .ti -1c .RI "METARECORDCTOR \fBnewRecord\fP (DWORD iType) const" .br .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_eof\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new \fBEMREOF\fP record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_setviewportorgex\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new \fBEMRSETVIEWPORTORGEX\fP record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_setwindoworgex\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new \fBEMRSETWINDOWORGEX\fP record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_setviewportextex\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new \fBEMRSETVIEWPORTEXTEX\fP record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_setwindowextex\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new \fBEMRSETWINDOWEXTEX\fP record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_scaleviewportextex\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new SCALEVIEWPORTEXTEX record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_scalewindowextex\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new SCALEWINDOWEXTEX record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_modifyworldtransform\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new MODIFYWORLDTRANSFORM record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_setworldtransform\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new SETWORLDTRANSFORM record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_settextalign\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new SETTEXTALIGN record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_settextcolor\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new SETTEXTCOLOR record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_setbkcolor\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new SETBKCOLOR record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_setbkmode\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new SETBKMODE record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_setpolyfillmode\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new SETPOLYFILLMODE record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_setmapmode\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new SETMAPMODE record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_selectobject\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new SELECTOBJECT record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_deleteobject\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new DELETEOBJECT record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_movetoex\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new MOVETOEX record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_lineto\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new LINETO record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_arc\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new ARC record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_arcto\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new ARCTO record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_rectangle\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new RECTANGLE record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_ellipse\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new ELLIPSE record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_polyline\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new POLYLINE record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_polyline16\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new POLYLINE16 record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_polygon\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new POLYGON record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_polygon16\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new POLYGON16 record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_polypolygon\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new POLYPOLYGON record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_polypolygon16\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new POLYPOLYGON16 record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_polybezier\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new POLYBEZIER record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_polybezier16\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new POLYBEZIER16 record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_polybezierto\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new POLYBEZIERTO record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_polybezierto16\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new POLYBEZIERTO16 record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_polylineto\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new POLYLINETO record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_polylineto16\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new POLYLINETO16 record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_exttextouta\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new EXTTEXTOUTA record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_exttextoutw\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new EXTTEXTOUTW record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_setpixelv\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new SETPIXELV record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_createpen\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new CREATEPEN record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_extcreatepen\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new EXTCREATEPEN record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_createbrushindirect\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new CREATEBRUSHINDIRECT record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_extcreatefontindirectw\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new EXTCREATEFONTINDIRECTW record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_fillpath\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new FILLPATH record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_strokepath\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new STROKEPATH record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_strokeandfillpath\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new STROKEANDFILLPATH record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_beginpath\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new BEGINPATH record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_endpath\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new ENDPATH record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_closefigure\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new CLOSEFIGURE record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_savedc\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new SAVEDC record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_restoredc\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new RESTOREDC record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_setmetargn\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new SETMETARGN record\&. " .ti -1c .RI "static \fBEMF::METARECORD\fP * \fBnew_setmiterlimit\fP (\fBDATASTREAM\fP &ds)" .br .RI "Create a new SETMITERLIMIT record\&. " .in -1c .SH "Detailed Description" .PP Stores all the objects in a single database within a process\&. .SH "Member Function Documentation" .PP .SS "HGDIOBJ EMF::GLOBALOBJECTS::add (\fBOBJECT\fP * object)" Add an object to the global vector\&. The object's handle is simply its index in the global object vector, which is computed by the very interesting 'difference between two iterators' method\&. .PP \fBParameters\fP .RS 4 \fIobject\fP pointer to a real instance of an object, not its handle\&. .RE .PP .SS "auto EMF::GLOBALOBJECTS::begin (void) const\fC [inline]\fP" .PP \fBReturns\fP .RS 4 an iterator pointing to the first global object\&. .RE .PP .SS "auto EMF::GLOBALOBJECTS::end (void) const\fC [inline]\fP" .PP \fBReturns\fP .RS 4 an iterator pointing to (one past) the final global object\&. .RE .PP .SS "\fBOBJECT\fP * EMF::GLOBALOBJECTS::find (const HGDIOBJ handle)" Look up a object by handle in the global object vector\&. Note: Stock objects (like a gray brush or the black pen) have their high order bit set, so this has to be masked out when using their handles\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP the object's handle\&. .RE .PP \fBReturns\fP .RS 4 pointer to object\&. .RE .PP .SS "METARECORDCTOR EMF::GLOBALOBJECTS::newRecord (DWORD iType) const" See if we have a constructor for a record of the given type\&. .PP \fBParameters\fP .RS 4 \fIiType\fP metarecord type\&. .RE .PP \fBReturns\fP .RS 4 pointer to 'virtual' constructor\&. .RE .PP .SS "void EMF::GLOBALOBJECTS::remove (const \fBOBJECT\fP * object)" A call to the metafile function DeleteObject() allows a particular object's handle to be reused, so some care has to be taken to erase it\&. .PP \fBParameters\fP .RS 4 \fIobject\fP pointer to object to delete\&. .RE .PP .SH "Author" .PP Generated automatically by Doxygen for libemf from the source code\&.