libUEMF
A portable library for reading and writing WMF, EMF and EMF+ files
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Fields
U_EMRHEADER Struct Reference

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...
 

Detailed Description

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.

Field Documentation

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


The documentation for this struct was generated from the following file: