libUEMF
A portable library for reading and writing WMF, EMF and EMF+ files
|
The first U_ENHMETARECORD record in the metafile. More...
#include <uemf.h>
Data Fields | |
U_EMR | emr |
U_EMR. | |
U_RECTL | rclBounds |
Bounding rectangle in device units. | |
U_RECTL | rclFrame |
Bounding rectangle in 0.01 mm units. | |
uint32_t | dSignature |
FormatSignature Enumeration (must be U_ENHMETA_SIGNATURE) | |
uint32_t | nVersion |
Must be U_ENHMETA_VERSION (0x00010000) | |
uint32_t | nBytes |
Length in bytes of the Metafile. | |
uint32_t | nRecords |
Records in the Metafile. | |
uint16_t | nHandles |
Number of graphics objects used in the Metafile. | |
uint16_t | sReserved |
Must be 0. | |
uint32_t | nDescription |
Characters in the Description field, 0 if no description. | |
uint32_t | offDescription |
Offset in bytes to optional UTF-16BE string Description field. | |
uint32_t | nPalEntries |
Number of Palette entries (in U_EMR_EOF record). | |
U_SIZEL | szlDevice |
Reference device size in pixels. | |
U_SIZEL | szlMillimeters |
Reference device size in 0.01 mm. | |
U_CBPXLFMT | cbPixelFormat |
Size in bytes of PixelFormatDescriptor, 0 if no PFD. More... | |
U_OFFPXLFMT | offPixelFormat |
Offset in bytes to optional PixelFormatDescriptor from the start of the RECORD, 0 if no PFD. | |
uint32_t | bOpenGL |
nonZero if OpenGL commands are included | |
U_SIZEL | szlMicrometers |
Size of the display device in micrometer. More... | |
The first U_ENHMETARECORD record in the metafile.
EMF manual 2.2.9, Microsoft name: Header object, HeaderExtension1 object, HeaderExtension2 object
Microsoft names instead: Header, HeaderExtension1, and HeaderExtension2 objects. These are used nowhere else, so they are combined here, along with the first two fields which were not listed in the Header.
Note also that three fields in this file (nBytes, nRecords, nHandles) must be (re)set after the entire EMF is constructed, since typically they are not known until then. bOpenGL may or may not be knowable when this header is written.
Note also that rclBounds and rclFrame are supposed to be the region bounding the drawn content within the EMF. This is generally smaller than the size from szlDevice. However, since libUEMF does not actually draw anything it has no way of knowing what these values are. Instead when it creates a header it sets these to match the szl* fields.
U_CBPXLFMT U_EMRHEADER::cbPixelFormat |
Size in bytes of PixelFormatDescriptor, 0 if no PFD.
Fields for winver >= win95
U_SIZEL U_EMRHEADER::szlMicrometers |
Size of the display device in micrometer.
Fields for winver >= win98