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
Macros
PMF PathPoint Flags

Macros

#define U_PPF_B   0x8000
 15 Set: BrushID is an U_PFM_ARGB; Clear: is index of U_PMF_BRUSH object in EMF+ object table.
 
#define U_PPF_BZ   0x8000
 15 Set: Points are on a Bezier curve; Clear: Points are on a line
 
#define U_PPF_N   0x8000
 15 Set: object definition continues in next record; Clear: this is the final object definition record
 
#define U_PPF_K   0x8000
 15 Set: int16_t coordinates; Clear: use U_FLOAT coordinates
 
#define U_PPF_C   0x4000
 14 Set: int16_t coordinates; Clear: use U_FLOAT coordinates
 
#define U_PPF_XM   0x2000
 13 Set: Post multiply matrix; Clear: Pre multiply matrix
 
#define U_PPF_F   0x2000
 13 Set: winding fill; Clear: alternate fill
 
#define U_PPF_E   0x2000
 13 Set: effect from previous U_PMF_SERIALIZABLEOBJECT record will be applied,; Clear: no effect applied
 
#define U_PPF_R   0x1000
 12 Set: U_PMF_PathPointTypeRLE and/or U_PMF_PathPointType objects; Clear: only U_PMF_PathPointType
 
#define U_PPF_P   0x0800
 11 Set: relative coordinates; Clear absolute coordinates
 
#define U_PPF_D   0x0400
 10 Set: draw path closed; Clear: draw path open
 
#define U_PPF_VGA   0x0002
 1 Set: Palette is VGA basic colors; Clear: Palette is ???
 
#define U_PPF_PP   0x0001
 0 Set: Palette field is present; Clear: Palette field is absent
 
#define U_PPF_DM   0x0001
 0 Set: Dual-mode file; Clear: EMF+ only file
 
#define U_PPF_AA   0x0001
 0 Set: anti-aliasing on; Clear: anti-aliasing off
 
#define U_PPF_VIDEO   0x0001
 0 Set: reference device is video display; Clear: reference devis is printer
 

Detailed Description

For U_PMF_PATH Flags field For U_PMF_CMN_HDR Flags field EMF+ manual 2.2.1.6, Microsoft name: PathPoint Flags (U_PPF_*) For U_PMF_CMN_HDR Flags the bits are scattered all over the EMF+ manual. NOTE: bitfields in manual are BIG endian and MSB 0. This code reads the 16 bit flag field as LITTLE endian and uses LSB 0. The values shown are AFTER the data has been read into a uint16_t and the byte order set appropriately. All of these come out of a 16 bit field.