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
WMF Common Macros

Macros

#define U_TEST_NOPX2(A, B)   (A == (uint32_t) (B + 3))
 A is Size16_4 (extracted and aligned), B = xb true if no bitmap associated with the structure, used with some BLT records.
 
#define U_TEST_NOPXB(A, B)   (A/2 == (uint32_t) (B + 3))
 A is Size16_4 (extracted and aligned)*2, B = xb, true if no bitmap associated with the structure, used with some BLT records.
 
#define U_WMRTYPE(A)   (((U_METARECORD *)A)->iType)
 Get iType from U_WMR* record.
 
#define U_WMRXB(A)   (((U_METARECORD *)A)->xb)
 Get xb from U_WMR* record.
 
#define U_WMR_XB_FROM_TYPE(A)   ((uint8_t) (U_wmr_values(A)>>8))
 Get xb from type value.
 
#define U_U16(A)   (*(uint16_t *)&A)
 interpret a 16 bit type as uint16_t.
 
#define U_P16(A)   ( (uint16_t *)&A)
 pass any 16 bit type as a pointer to a uint16_t.
 
#define U_PP16(A)   ( (uint16_t *) A)
 pass any pointer to a 16 bit type as a pointer to a uint16_t.
 

Detailed Description

Because Size16_4 may not be aligned no tests should dereference it directly from a pointer. in NOPX tests cast causes uint8_t to promote to uint32_t, without it c++ compiler complains about comparison of int with unsigned int