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
upmf.h
Go to the documentation of this file.
1 
28 /*
29 File: upmf.h
30 Version: 0.0.2
31 Date: 04-NOV-2013
32 Author: David Mathog, Biology Division, Caltech
33 email: mathog@caltech.edu
34 Copyright: 2013 David Mathog and California Institute of Technology (Caltech)
35 */
36 
37 #ifndef _UPMF_
38 #define _UPMF_
39 
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43 
44 #include <stdint.h>
45 #include <stdbool.h>
46 #include "uemf.h"
47 
48 
52 #define U_PMF_DROP_ELEMENTS 1
53 #define U_PMF_KEEP_ELEMENTS 0
54 
55 #define U_SEG_NEW 1
56 #define U_SEG_OLD 0
57 
58 #define U_FILTER_APPLY 1
59 #define U_FILTER_IGNORE 0
60 #define U_OBJRECLIM 65020
61  // used 9728 to test fragmenting of emitted object records
62 
84 #define U_DD_Solid 0
85 #define U_DD_Dash 1
86 #define U_DD_DashDash 2
87 #define U_DD_DashDashDash 3
88 #define U_DD_DashDashDashDash 4
89 #define U_DD_Dot 5
90 #define U_DD_DotDot 6
91 #define U_DD_DotDotDot 7
92 #define U_DD_DotDotDotDot 8
93 #define U_DD_DashDot 9
94 #define U_DD_DashDashDot 10
95 #define U_DD_DashDashDotDot 11
96 #define U_DD_DashDashDashDot 12
97 #define U_DD_DashDotDot 13
98 #define U_DD_DashDotDotDot 14
99 #define U_DD_DashDotDashDot 15
100 #define U_DD_Long 16
101 #define U_DD_LongLong 17
102 #define U_DD_LongLongLong 18
103 #define U_DD_LongLongLongLong 19
104 #define U_DD_LongDot 20
105 #define U_DD_LongLongDot 21
106 #define U_DD_LongLongDotDot 22
107 #define U_DD_LongLongLongDot 23
108 #define U_DD_LongDotDot 24
109 #define U_DD_LongDotDotDot 25
110 #define U_DD_LongDotLongDot 26
111 #define U_DD_Types 27
112 
113 
120 #define U_PMR_HEADER 0x0001
121 #define U_PMR_ENDOFFILE 0x0002
122 #define U_PMR_COMMENT 0x0003
123 #define U_PMR_GETDC 0x0004
124 #define U_PMR_MULTIFORMATSTART 0x0005
125 #define U_PMR_MULTIFORMATSECTION 0x0006
126 #define U_PMR_MULTIFORMATEND 0x0007
127 #define U_PMR_OBJECT 0x0008
128 #define U_PMR_CLEAR 0x0009
129 #define U_PMR_FILLRECTS 0x000A
130 #define U_PMR_DRAWRECTS 0x000B
131 #define U_PMR_FILLPOLYGON 0x000C
132 #define U_PMR_DRAWLINES 0x000D
133 #define U_PMR_FILLELLIPSE 0x000E
134 #define U_PMR_DRAWELLIPSE 0x000F
135 #define U_PMR_FILLPIE 0x0010
136 #define U_PMR_DRAWPIE 0x0011
137 #define U_PMR_DRAWARC 0x0012
138 #define U_PMR_FILLREGION 0x0013
139 #define U_PMR_FILLPATH 0x0014
140 #define U_PMR_DRAWPATH 0x0015
141 #define U_PMR_FILLCLOSEDCURVE 0x0016
142 #define U_PMR_DRAWCLOSEDCURVE 0x0017
143 #define U_PMR_DRAWCURVE 0x0018
144 #define U_PMR_DRAWBEZIERS 0x0019
145 #define U_PMR_DRAWIMAGE 0x001A
146 #define U_PMR_DRAWIMAGEPOINTS 0x001B
147 #define U_PMR_DRAWSTRING 0x001C
148 #define U_PMR_SETRENDERINGORIGIN 0x001D
149 #define U_PMR_SETANTIALIASMODE 0x001E
150 #define U_PMR_SETTEXTRENDERINGHINT 0x001F
151 #define U_PMR_SETTEXTCONTRAST 0x0020
152 #define U_PMR_SETINTERPOLATIONMODE 0x0021
153 #define U_PMR_SETPIXELOFFSETMODE 0x0022
154 #define U_PMR_SETCOMPOSITINGMODE 0x0023
155 #define U_PMR_SETCOMPOSITINGQUALITY 0x0024
156 #define U_PMR_SAVE 0x0025
157 #define U_PMR_RESTORE 0x0026
158 #define U_PMR_BEGINCONTAINER 0x0027
159 #define U_PMR_BEGINCONTAINERNOPARAMS 0x0028
160 #define U_PMR_ENDCONTAINER 0x0029
161 #define U_PMR_SETWORLDTRANSFORM 0x002A
162 #define U_PMR_RESETWORLDTRANSFORM 0x002B
163 #define U_PMR_MULTIPLYWORLDTRANSFORM 0x002C
164 #define U_PMR_TRANSLATEWORLDTRANSFORM 0x002D
165 #define U_PMR_SCALEWORLDTRANSFORM 0x002E
166 #define U_PMR_ROTATEWORLDTRANSFORM 0x002F
167 #define U_PMR_SETPAGETRANSFORM 0x0030
168 #define U_PMR_RESETCLIP 0x0031
169 #define U_PMR_SETCLIPRECT 0x0032
170 #define U_PMR_SETCLIPPATH 0x0033
171 #define U_PMR_SETCLIPREGION 0x0034
172 #define U_PMR_OFFSETCLIP 0x0035
173 #define U_PMR_DRAWDRIVERSTRING 0x0036
174 #define U_PMR_STROKEFILLPATH 0x0037
175 #define U_PMR_SERIALIZABLEOBJECT 0x0038
176 #define U_PMR_SETTSGRAPHICS 0x0039
177 #define U_PMR_SETTSCLIP 0x003A
178 #define U_PMR_RECFLAG 0x4000
179 #define U_PMR_TYPE_MASK 0x003F
180 #define U_PMR_MIN 1
181 #define U_PMR_MAX 58
182 
183 
192 #define U_UNDEFINED_OID 0x00000000
193 #define U_PMF_BRUSH_OID 0x02020101
194 #define U_PMF_CUSTOMLINECAP_OID 0x02020102
195 #define U_PMF_FONT_OID 0x02020103
196 #define U_PMF_IMAGE_OID 0x02020104
197 #define U_PMF_IMAGEATTRIBUTES_OID 0x02020105
198 #define U_PMF_PATH_OID 0x02020106
199 #define U_PMF_PEN_OID 0x02020107
200 #define U_PMF_REGION_OID 0x02020108
201 #define U_PMF_STRINGFORMAT_OID 0x02020109
202 #define U_PMF_ARGB_OID 0x02020201
203 #define U_PMF_BITMAP_OID 0x02020202
204 #define U_PMF_BITMAPDATA_OID 0x02020203
205 #define U_PMF_BLENDCOLORS_OID 0x02020204
206 #define U_PMF_BLENDFACTORS_OID 0x02020205
207 #define U_PMF_BOUNDARYPATHDATA_OID 0x02020206
208 #define U_PMF_BOUNDARYPOINTDATA_OID 0x02020207
209 #define U_PMF_CHARACTERRANGE_OID 0x02020208
210 #define U_PMF_COMPOUNDLINEDATA_OID 0x02020209
211 #define U_PMF_COMPRESSEDIMAGE_OID 0x02020210
212 #define U_PMF_CUSTOMENDCAPDATA_OID 0x02020211
213 #define U_PMF_CUSTOMLINECAPARROWDATA_OID 0x02020212
214 #define U_PMF_CUSTOMLINECAPDATA_OID 0x02020213
215 #define U_PMF_CUSTOMLINECAPOPTIONALDATA_OID 0x02020214
216 #define U_PMF_CUSTOMSTARTCAPDATA_OID 0x02020215
217 #define U_PMF_DASHEDLINEDATA_OID 0x02020216
218 #define U_PMF_FILLPATHOBJ_OID 0x02020217
219 #define U_PMF_FOCUSSCALEDATA_OID 0x02020218
220 #define U_PMF_GRAPHICSVERSION_OID 0x02020219
221 #define U_PMF_HATCHBRUSHDATA_OID 0x02020220
222 #define U_PMF_INTEGER7_OID 0x02020221
223 #define U_PMF_INTEGER15_OID 0x02020222
224 #define U_PMF_LANGUAGEIDENTIFIER_OID 0x02020223
225 #define U_PMF_LINEARGRADIENTBRUSHDATA_OID 0x02020224
226 #define U_PMF_LINEARGRADIENTBRUSHOPTIONALDATA_OID 0x02020225
227 #define U_PMF_LINEPATH_OID 0x02020226
228 #define U_PMF_METAFILE_OID 0x02020227
229 #define U_PMF_PALETTE_OID 0x02020228
230 #define U_PMF_PATHGRADIENTBRUSHDATA_OID 0x02020229
231 #define U_PMF_PATHGRADIENTBRUSHOPTIONALDATA_OID 0x02020230
232 #define U_PMF_PATHPOINTTYPE_OID 0x02020231
233 #define U_PMF_PATHPOINTTYPERLE_OID 0x02020232
234 #define U_PMF_PENDATA_OID 0x02020233
235 #define U_PMF_PENOPTIONALDATA_OID 0x02020234
236 #define U_PMF_POINT_OID 0x02020235
237 #define U_PMF_POINTF_OID 0x02020236
238 #define U_PMF_POINTR_OID 0x02020237
239 #define U_PMF_RECT_OID 0x02020238
240 #define U_PMF_RECTF_OID 0x02020239
241 #define U_PMF_REGIONNODE_OID 0x02020240
242 #define U_PMF_REGIONNODECHILDNODES_OID 0x02020241
243 #define U_PMF_REGIONNODEPATH_OID 0x02020242
244 #define U_PMF_SOLIDBRUSHDATA_OID 0x02020243
245 #define U_PMF_STRINGFORMATDATA_OID 0x02020244
246 #define U_PMF_TEXTUREBRUSHDATA_OID 0x02020245
247 #define U_PMF_TEXTUREBRUSHOPTIONALDATA_OID 0x02020246
248 #define U_PMF_TRANSFORMMATRIX_OID 0x02020247
249 #define U_PMF_IE_BLUR_OID 0x02020301
250 #define U_PMF_IE_BRIGHTNESSCONTRAST_OID 0x02020302
251 #define U_PMF_IE_COLORBALANCE_OID 0x02020303
252 #define U_PMF_IE_COLORCURVE_OID 0x02020304
253 #define U_PMF_IE_COLORLOOKUPTABLE_OID 0x02020305
254 #define U_PMF_IE_COLORMATRIX_OID 0x02020306
255 #define U_PMF_IE_HUESATURATIONLIGHTNESS_OID 0x02020307
256 #define U_PMF_IE_LEVELS_OID 0x02020308
257 #define U_PMF_IE_REDEYECORRECTION_OID 0x02020309
258 #define U_PMF_IE_SHARPEN_OID 0x02020310
259 #define U_PMF_IE_TINT_OID 0x02020311
260 #define U_PMR_STROKEFILLPATH_OID 0x02010101
261 #define U_PMR_OFFSETCLIP_OID 0x02030101
262 #define U_PMR_RESETCLIP_OID 0x02030102
263 #define U_PMR_SETCLIPPATH_OID 0x02030103
264 #define U_PMR_SETCLIPRECT_OID 0x02030104
265 #define U_PMR_SETCLIPREGION_OID 0x02030105
266 #define U_PMR_COMMENT_OID 0x02030201
267 #define U_PMR_ENDOFFILE_OID 0x02030301
268 #define U_PMR_GETDC_OID 0x02030302
269 #define U_PMR_HEADER_OID 0x02030303
270 #define U_PMR_CLEAR_OID 0x02030401
271 #define U_PMR_DRAWARC_OID 0x02030402
272 #define U_PMR_DRAWBEZIERS_OID 0x02030403
273 #define U_PMR_DRAWCLOSEDCURVE_OID 0x02030404
274 #define U_PMR_DRAWCURVE_OID 0x02030405
275 #define U_PMR_DRAWDRIVERSTRING_OID 0x02030406
276 #define U_PMR_DRAWELLIPSE_OID 0x02030407
277 #define U_PMR_DRAWIMAGE_OID 0x02030408
278 #define U_PMR_DRAWIMAGEPOINTS_OID 0x02030409
279 #define U_PMR_DRAWLINES_OID 0x02030410
280 #define U_PMR_DRAWPATH_OID 0x02030411
281 #define U_PMR_DRAWPIE_OID 0x02030412
282 #define U_PMR_DRAWRECTS_OID 0x02030413
283 #define U_PMR_DRAWSTRING_OID 0x02030414
284 #define U_PMR_FILLCLOSEDCURVE_OID 0x02030415
285 #define U_PMR_FILLELLIPSE_OID 0x02030416
286 #define U_PMR_FILLPATH_OID 0x02030417
287 #define U_PMR_FILLPIE_OID 0x02030418
288 #define U_PMR_FILLPOLYGON_OID 0x02030419
289 #define U_PMR_FILLRECTS_OID 0x02030420
290 #define U_PMR_FILLREGION_OID 0x02030421
291 #define U_PMR_OBJECT_OID 0x02030501
292 #define U_PMR_SERIALIZABLEOBJECT_OID 0x02030502
293 #define U_PMR_SETANTIALIASMODE_OID 0x02030601
294 #define U_PMR_SETCOMPOSITINGMODE_OID 0x02030602
295 #define U_PMR_SETCOMPOSITINGQUALITY_OID 0x02030603
296 #define U_PMR_SETINTERPOLATIONMODE_OID 0x02030604
297 #define U_PMR_SETPIXELOFFSETMODE_OID 0x02030605
298 #define U_PMR_SETRENDERINGORIGIN_OID 0x02030606
299 #define U_PMR_SETTEXTCONTRAST_OID 0x02030607
300 #define U_PMR_SETTEXTRENDERINGHINT_OID 0x02030608
301 #define U_PMR_BEGINCONTAINER_OID 0x02030701
302 #define U_PMR_BEGINCONTAINERNOPARAMS_OID 0x02030702
303 #define U_PMR_ENDCONTAINER_OID 0x02030703
304 #define U_PMR_RESTORE_OID 0x02030704
305 #define U_PMR_SAVE_OID 0x02030705
306 #define U_PMR_SETTSCLIP_OID 0x02030801
307 #define U_PMR_SETTSGRAPHICS_OID 0x02030802
308 #define U_PMR_MULTIPLYWORLDTRANSFORM_OID 0x02030901
309 #define U_PMR_RESETWORLDTRANSFORM_OID 0x02030902
310 #define U_PMR_ROTATEWORLDTRANSFORM_OID 0x02030903
311 #define U_PMR_SCALEWORLDTRANSFORM_OID 0x02030904
312 #define U_PMR_SETPAGETRANSFORM_OID 0x02030905
313 #define U_PMR_SETWORLDTRANSFORM_OID 0x02030906
314 #define U_PMR_TRANSLATEWORLDTRANSFORM_OID 0x02030907
315 #define U_PMR_TRANSLATEWORLDTRANSFORM_OID 0x02030907
316 #define U_PMR_CMN_HDR_OID 0x40000000
317 #define U_PMF_4NUM_OID 0x40000001
318 #define U_PMF_RAW_OID 0x40000002
319 #define U_PMF_ARRAY_OID 0x80000000
320 #define U_PMF_MASK_OID 0x7FFFFFFF
321 
322 
330 #define U_BDT_Pixel 0x00
331 #define U_BDT_Compressed 0x01
332 
339 #define U_BT_SolidColor 0x00
340 #define U_BT_HatchFill 0x01
341 #define U_BT_TextureFill 0x02
342 #define U_BT_PathGradient 0x03
343 #define U_BT_LinearGradient 0x04
344 
351 #define U_CM_Replace 0x00
352 #define U_CM_Intersect 0x01
353 #define U_CM_Union 0x02
354 #define U_CM_XOR 0x03
355 #define U_CM_Exclude 0x04
356 #define U_CM_Complement 0x05
357 
364 #define U_CMS_Over 0x00
365 #define U_CMS_Copy 0x01
366 
373 #define U_CQ_Default 0x01
374 #define U_CQ_HighSpeed 0x02
375 #define U_CQ_HighQuality 0x03
376 #define U_CQ_GammaCorrected 0x04
377 #define U_CQ_AssumeLinear 0x05
378 
385 #define U_CA_Exposure 0x00
386 #define U_CA_Density 0x01
387 #define U_CA_Contrast 0x02
388 #define U_CA_Highlight 0x03
389 #define U_CA_Shadow 0x04
390 #define U_CA_Midtone 0x05
391 #define U_CA_WhiteSaturation 0x06
392 #define U_CA_BlackSaturation 0x07
393 
400 #define U_CC_All 0x00
401 #define U_CC_Red 0x01
402 #define U_CC_Green 0x02
403 #define U_CC_Blue 0x03
404 
411 #define U_CLCDT_Default 0x00
412 #define U_CLCDT_AdjustableArrow 0x01
413 
420 #define U_DLCT_Flat 0x00
421 #define U_DLCT_Round 0x02
422 #define U_DLCT_Triangle 0x03
423 
430 #define U_FT_None 0x00
431 #define U_FT_Point 0x01
432 #define U_FT_Linear 0x02
433 #define U_FT_Triangle 0x03
434 #define U_FT_Box 0x04
435 #define U_FT_PyramidalQuad 0x06
436 #define U_FT_GaussianQuad 0x07
437 
444 #define U_GV_1 0x01
445 #define U_GV_1_1 0x02
446 
453 #define U_HSP_Horizontal 0x00000000
454 #define U_HSP_Vertical 0x00000001
455 #define U_HSP_ForwardDiagonal 0x00000002
456 #define U_HSP_BackwardDiagonal 0x00000003
457 #define U_HSP_LargeGrid 0x00000004
458 #define U_HSP_DiagonalCross 0x00000005
459 #define U_HSP_05Percent 0x00000006
460 #define U_HSP_10Percent 0x00000007
461 #define U_HSP_20Percent 0x00000008
462 #define U_HSP_25Percent 0x00000009
463 #define U_HSP_30Percent 0x0000000A
464 #define U_HSP_40Percent 0x0000000B
465 #define U_HSP_50Percent 0x0000000C
466 #define U_HSP_60Percent 0x0000000D
467 #define U_HSP_70Percent 0x0000000E
468 #define U_HSP_75Percent 0x0000000F
469 #define U_HSP_80Percent 0x00000010
470 #define U_HSP_90Percent 0x00000011
471 #define U_HSP_LightDownwardDiagonal 0x00000012
472 #define U_HSP_LightUpwardDiagonal 0x00000013
473 #define U_HSP_DarkDownwardDiagonal 0x00000014
474 #define U_HSP_DarkUpwardDiagonal 0x00000015
475 #define U_HSP_WideDownwardDiagonal 0x00000016
476 #define U_HSP_WideUpwardDiagonal 0x00000017
477 #define U_HSP_LightVertical 0x00000018
478 #define U_HSP_LightHorizontal 0x00000019
479 #define U_HSP_NarrowVertical 0x0000001A
480 #define U_HSP_NarrowHorizontal 0x0000001B
481 #define U_HSP_DarkVertical 0x0000001C
482 #define U_HSP_DarkHorizontal 0x0000001D
483 #define U_HSP_DashedDownwardDiagonal 0x0000001E
484 #define U_HSP_DashedUpwardDiagonal 0x0000001F
485 #define U_HSP_DashedHorizontal 0x00000020
486 #define U_HSP_DashedVertical 0x00000021
487 #define U_HSP_SmallConfetti 0x00000022
488 #define U_HSP_LargeConfetti 0x00000023
489 #define U_HSP_ZigZag 0x00000024
490 #define U_HSP_Wave 0x00000025
491 #define U_HSP_DiagonalBrick 0x00000026
492 #define U_HSP_HorizontalBrick 0x00000027
493 #define U_HSP_Weave 0x00000028
494 #define U_HSP_Plaid 0x00000029
495 #define U_HSP_Divot 0x0000002A
496 #define U_HSP_DottedGrid 0x0000002B
497 #define U_HSP_DottedDiamond 0x0000002C
498 #define U_HSP_Shingle 0x0000002D
499 #define U_HSP_Trellis 0x0000002E
500 #define U_HSP_Sphere 0x0000002F
501 #define U_HSP_SmallGrid 0x00000030
502 #define U_HSP_SmallCheckerBoard 0x00000031
503 #define U_HSP_LargeCheckerBoard 0x00000032
504 #define U_HSP_OutlinedDiamond 0x00000033
505 #define U_HSP_SolidDiamond 0x00000034
506 
513 #define U_HKP_None 0x00
514 #define U_HKP_Show 0x01
515 #define U_HKP_Hide 0x02
516 
523 #define U_IDT_Unknown 0x00
524 #define U_IDT_Bitmap 0x01
525 #define U_IDT_Metafile 0x02
526 
533 #define U_IM_Default 0x00
534 #define U_IM_LowQuality 0x01
535 #define U_IM_HighQuality 0x02
536 #define U_IM_Bilinear 0x03
537 #define U_IM_Bicubic 0x04
538 #define U_IM_NearestNeighbor 0x05
539 #define U_IM_HighQualityBilinear 0x06
540 #define U_IM_HighQualityBicubic 0x07
541 
548 #define U_LID_LANG_NEUTRAL 0x0000
549 #define U_LID_zh_CHS 0x0004
550 #define U_LID_LANG_INVARIANT 0x007F
551 #define U_LID_LANG_NEUTRAL_USER_DEFAULT 0x0400
552 #define U_LID_ar_SA 0x0401
553 #define U_LID_bg_BG 0x0402
554 #define U_LID_ca_ES 0x0403
555 #define U_LID_zh_CHT 0x0404
556 #define U_LID_cs_CZ 0x0405
557 #define U_LID_da_DK 0x0406
558 #define U_LID_de_DE 0x0407
559 #define U_LID_el_GR 0x0408
560 #define U_LID_en_US 0x0409
561 #define U_LID_es_Tradnl_ES 0x040A
562 #define U_LID_fi_FI 0x040B
563 #define U_LID_fr_FR 0x040C
564 #define U_LID_he_IL 0x040D
565 #define U_LID_hu_HU 0x040E
566 #define U_LID_is_IS 0x040F
567 #define U_LID_it_IT 0x0410
568 #define U_LID_ja_JA 0x0411
569 #define U_LID_ko_KR 0x0412
570 #define U_LID_nl_NL 0x0413
571 #define U_LID_nb_NO 0x0414
572 #define U_LID_pl_PL 0x0415
573 #define U_LID_pt_BR 0x0416
574 #define U_LID_rm_CH 0x0417
575 #define U_LID_ro_RO 0x0418
576 #define U_LID_ru_RU 0x0419
577 #define U_LID_hr_HR 0x041A
578 #define U_LID_sk_SK 0x041B
579 #define U_LID_sq_AL 0x041C
580 #define U_LID_sv_SE 0x041D
581 #define U_LID_th_TH 0x041E
582 #define U_LID_tr_TR 0x041F
583 #define U_LID_ur_PK 0x0420
584 #define U_LID_id_ID 0x0421
585 #define U_LID_uk_UA 0x0422
586 #define U_LID_be_BY 0x0423
587 #define U_LID_sl_SI 0x0424
588 #define U_LID_et_EE 0x0425
589 #define U_LID_lv_LV 0x0426
590 #define U_LID_lt_LT 0x0427
591 #define U_LID_tg_TJ 0x0428
592 #define U_LID_fa_IR 0x0429
593 #define U_LID_vi_VN 0x042A
594 #define U_LID_hy_AM 0x042B
595 #define U_LID_az_Latn_AZ 0x042C
596 #define U_LID_eu_ES 0x042D
597 #define U_LID_wen_DE 0x042E
598 #define U_LID_mk_MK 0x042F
599 #define U_LID_st_ZA 0x0430
600 #define U_LID_tn_ZA 0x0432
601 #define U_LID_xh_ZA 0x0434
602 #define U_LID_zu_ZA 0x0435
603 #define U_LID_af_ZA 0x0436
604 #define U_LID_ka_GE 0x0437
605 #define U_LID_fa_FA 0x0438
606 #define U_LID_hi_IN 0x0439
607 #define U_LID_mt_MT 0x043A
608 #define U_LID_se_NO 0x043B
609 #define U_LID_ga_GB 0x043C
610 #define U_LID_ms_MY 0x043E
611 #define U_LID_kk_KZ 0x043F
612 #define U_LID_ky_KG 0x0440
613 #define U_LID_sw_KE 0x0441
614 #define U_LID_tk_TM 0x0442
615 #define U_LID_uz_Latn_UZ 0x0443
616 #define U_LID_tt_Ru 0x0444
617 #define U_LID_bn_IN 0x0445
618 #define U_LID_pa_IN 0x0446
619 #define U_LID_gu_IN 0x0447
620 #define U_LID_or_IN 0x0448
621 #define U_LID_ta_IN 0x0449
622 #define U_LID_te_IN 0x044A
623 #define U_LID_kn_IN 0x044B
624 #define U_LID_ml_IN 0x044C
625 #define U_LID_as_IN 0x044D
626 #define U_LID_mr_IN 0x044E
627 #define U_LID_sa_IN 0x044F
628 #define U_LID_mn_MN 0x0450
629 #define U_LID_bo_CN 0x0451
630 #define U_LID_cy_GB 0x0452
631 #define U_LID_km_KH 0x0453
632 #define U_LID_lo_LA 0x0454
633 #define U_LID_gl_ES 0x0456
634 #define U_LID_kok_IN 0x0457
635 #define U_LID_sd_IN 0x0459
636 #define U_LID_syr_SY 0x045A
637 #define U_LID_si_LK 0x045B
638 #define U_LID_iu_Cans_CA 0x045D
639 #define U_LID_am_ET 0x045E
640 #define U_LID_ne_NP 0x0461
641 #define U_LID_fy_NL 0x0462
642 #define U_LID_ps_AF 0x0463
643 #define U_LID_fil_PH 0x0464
644 #define U_LID_div_MV 0x0465
645 #define U_LID_ha_Latn_NG 0x0468
646 #define U_LID_yo_NG 0x046A
647 #define U_LID_quz_BO 0x046B
648 #define U_LID_nzo_ZA 0x046C
649 #define U_LID_ba_RU 0x046D
650 #define U_LID_lb_LU 0x046E
651 #define U_LID_kl_GL 0x046F
652 #define U_LID_ig_NG 0x0470
653 #define U_LID_so_SO 0x0477
654 #define U_LID_ii_CN 0x0478
655 #define U_LID_arn_CL 0x047A
656 #define U_LID_moh_CA 0x047C
657 #define U_LID_br_FR 0x047E
658 #define U_LID_ug_CN 0x0480
659 #define U_LID_ mi_NZ 0x0481
660 #define U_LID_oc_FR 0x0482
661 #define U_LID_co_FR 0x0483
662 #define U_LID_gsw_FR 0x0484
663 #define U_LID_sah_RU 0x0485
664 #define U_LID_qut_GT 0x0486
665 #define U_LID_rw_RW 0x0487
666 #define U_LID_wo_SN 0x0488
667 #define U_LID_gbz_AF 0x048C
668 #define U_LID_LANG_NEUTRAL_SYS_DEFAULT 0x0800
669 #define U_LID_ar_IQ 0x0801
670 #define U_LID_zh_CN 0x0804
671 #define U_LID_de_CH 0x0807
672 #define U_LID_en_GB 0x0809
673 #define U_LID_es_MX 0x080A
674 #define U_LID_fr_BE 0x080C
675 #define U_LID_it_CH 0x0810
676 #define U_LID_ko_Johab_KR 0x0812
677 #define U_LID_nl_BE 0x0813
678 #define U_LID_nn_NO 0x0814
679 #define U_LID_pt_PT 0x0816
680 #define U_LID_sr_Latn_SP 0x081A
681 #define U_LID_sv_FI 0x081D
682 #define U_LID_ur_IN 0x0820
683 #define U_LID_lt_C_LT 0x0827
684 #define U_LID_az_Cyrl_AZ 0x082C
685 #define U_LID_wee_DE 0x082E
686 #define U_LID_se_SE 0x083B
687 #define U_LID_ga_IE 0x083C
688 #define U_LID_ms_BN 0x083E
689 #define U_LID_uz_Cyrl_UZ 0x0843
690 #define U_LID_bn_BD 0x0845
691 #define U_LID_mn_Mong_CN 0x0850
692 #define U_LID_sd_PK 0x0859
693 #define U_LID_iu_Latn_CA 0x085D
694 #define U_LID_tzm_Latn_DZ 0x085F
695 #define U_LID_quz_EC 0x086B
696 #define U_LID_LANG_NEUTRAL_CUSTOM_DEFAULT 0x0C00
697 #define U_LID_ar_EG 0x0C01
698 #define U_LID_zh_HK 0x0C04
699 #define U_LID_de_AT 0x0C07
700 #define U_LID_en_AU 0x0C09
701 #define U_LID_es_ES 0x0C0A
702 #define U_LID_fr_CA 0x0C0C
703 #define U_LID_sr_Cyrl_CS 0x0C1A
704 #define U_LID_se_FI 0x0C3B
705 #define U_LID_quz_PE 0x0C6B
706 #define U_LID_LANG_NEUTRAL_CUSTOM 0x1000
707 #define U_LID_ar_LY 0x1001
708 #define U_LID_zh_SG 0x1004
709 #define U_LID_de_LU 0x1007
710 #define U_LID_en_CA 0x1009
711 #define U_LID_es_GT 0x100A
712 #define U_LID_fr_CH 0x100C
713 #define U_LID_hr_BA 0x101A
714 #define U_LID_smj_NO 0x103B
715 #define U_LID_LANG_NEUTRAL_CUSTOM_DEFAULT_MUI 0x1400
716 #define U_LID_ar_DZ 0x1401
717 #define U_LID_zh_MO 0x1404
718 #define U_LID_de_LI 0x1407
719 #define U_LID_en_NZ 0x1409
720 #define U_LID_es_CR 0x140A
721 #define U_LID_fr_LU 0x140C
722 #define U_LID_bs_Latn_BA 0x141A
723 #define U_LID_smj_SE 0x143B
724 #define U_LID_ar_MA 0x1801
725 #define U_LID_en_IE 0x1809
726 #define U_LID_es_PA 0x180A
727 #define U_LID_ar_MC 0x180C
728 #define U_LID_sr_Latn_BA 0x181A
729 #define U_LID_sma_NO 0x183B
730 #define U_LID_ar_TN 0x1C01
731 #define U_LID_en_ZA 0x1C09
732 #define U_LID_es_DO 0x1C0A
733 #define U_LID_sr_Cyrl_BA 0x1C1A
734 #define U_LID_sma_SE 0x1C3B
735 #define U_LID_ar_OM 0x2001
736 #define U_LID_el_2_GR 0x2008
737 #define U_LID_en_JM 0x2009
738 #define U_LID_es_VE 0x200A
739 #define U_LID_bs_Cyrl_BA 0x201A
740 #define U_LID_sms_FI 0x203B
741 #define U_LID_ar_YE 0x2401
742 #define U_LID_ar_029 0x2409
743 #define U_LID_es_CO 0x240A
744 #define U_LID_smn_FI 0x243B
745 #define U_LID_ar_SY 0x2801
746 #define U_LID_en_BZ 0x2809
747 #define U_LID_es_PE 0x280A
748 #define U_LID_ar_JO 0x2C01
749 #define U_LID_en_TT 0x2C09
750 #define U_LID_es_AR 0x2C0A
751 #define U_LID_ar_LB 0x3001
752 #define U_LID_en_ZW 0x3009
753 #define U_LID_es_EC 0x300A
754 #define U_LID_ar_KW 0x3401
755 #define U_LID_en_PH 0x3409
756 #define U_LID_es_CL 0x340A
757 #define U_LID_ar_AE 0x3801
758 #define U_LID_es_UY 0x380A
759 #define U_LID_ar_BH 0x3C01
760 #define U_LID_es_PY 0x3C0A
761 #define U_LID_ar_QA 0x4001
762 #define U_LID_en_IN 0x4009
763 #define U_LID_es_BO 0x400A
764 #define U_LID_en_MY 0x4409
765 #define U_LID_es_SV 0x440A
766 #define U_LID_en_SG 0x4809
767 #define U_LID_es_HN 0x480A
768 #define U_LID_es_NI 0x4C0A
769 #define U_LID_es_PR 0x500A
770 #define U_LID_es_US 0x540A
771 #define U_LID_zh_Hant 0x7C04
772 #define U_LID_SEC_MASK 0xFB00
773 #define U_LID_PRI_MASK 0x03FF
774 
781 #define U_LCT_Flat 0x00
782 #define U_LCT_Square 0x01
783 #define U_LCT_Round 0x02
784 #define U_LCT_Triangle 0x03
785 #define U_LCT_NoAnchor 0x10
786 #define U_LCT_SquareAnchor 0x11
787 #define U_LCT_RoundAnchor 0x12
788 #define U_LCT_DiamondAnchor 0x13
789 #define U_LCT_ArrowAnchor 0x14
790 #define U_LCT_AnchorMask 0xF0
791 #define U_LCT_Custom 0xFF
792 
799 #define U_LJT_Miter 0x00
800 #define U_LJT_Bevel 0x01
801 #define U_LJT_Round 0x02
802 #define U_LJT_MiterClipped 0x03
803 
810 #define U_LS_Solid 0x00
811 #define U_LS_Dash 0x01
812 #define U_LS_Dot 0x02
813 #define U_LS_DashDot 0x03
814 #define U_LS_DashDotDot 0x04
815 #define U_LS_Custom 0x05
816 
823 #define U_MDT_Wmf 0x01
824 #define U_MDT_WmfPlaceable 0x02
825 #define U_MDT_Emf 0x03
826 #define U_MDT_EmfPlusOnly 0x04
827 #define U_MDT_EmfPlusDual 0x05
828 
835 #define U_OT_Invalid 0x00
836 #define U_OT_Brush 0x01
837 #define U_OT_Pen 0x02
838 #define U_OT_Path 0x03
839 #define U_OT_Region 0x04
840 #define U_OT_Image 0x05
841 #define U_OT_Font 0x06
842 #define U_OT_StringFormat 0x07
843 #define U_OT_ImageAttributes 0x08
844 #define U_OT_CustomLineCap 0x09
845 
852 #define U_PPT_Start 0x00
853 #define U_PPT_Line 0x01
854 #define U_PPT_Bezier 0x03
855 #define U_PPT_MASK 0x0F
856 
863 #define U_PA_Center 0x00
864 #define U_PA_Inset 0x01
865 #define U_PA_Left 0x02
866 #define U_PA_Outset 0x03
867 #define U_PA_Right 0x04
868 
886 #define U_PF_Undefined 0x00000000
887 #define U_PF_1bppIndexed 0x00030101
888 #define U_PF_4bppIndexed 0x00030402
889 #define U_PF_8bppIndexed 0x00030803
890 #define U_PF_16bppGrayScale 0x00101004
891 #define U_PF_16bppRGB555 0x00021005
892 #define U_PF_16bppRGB565 0x00021006
893 #define U_PF_16bppARGB1555 0x00061007
894 #define U_PF_24bppRGB 0x00021808
895 #define U_PF_32bppRGB 0x00022009
896 #define U_PF_32bppARGB 0x0026200A
897 #define U_PF_32bppPARGB 0x000E200B
898 #define U_PF_48bppRGB 0x0010300C
899 #define U_PF_64bppARGB 0x0034400D
900 #define U_PF_64bppPARGB 0x001A400E
901 
908 #define U_POM_Default 0x00
909 #define U_POM_HighSpeed 0x01
910 #define U_POM_HighQuality 0x02
911 #define U_POM_None 0x03
912 #define U_POM_Half 0x04
913 
920 #define U_RNDT_Kids 0x00000000
921 #define U_RNDT_And 0x00000001
922 #define U_RNDT_Or 0x00000002
923 #define U_RNDT_Xor 0x00000003
924 #define U_RNDT_Exclude 0x00000004
925 #define U_RNDT_Complement 0x00000005
926 #define U_RNDT_Rect 0x10000000
927 #define U_RNDT_Path 0x10000001
928 #define U_RNDT_Empty 0x10000002
929 #define U_RNDT_Infinite 0x10000003
930 
937 #define U_SM_Default 0x00
938 #define U_SM_HighSpeed 0x01
939 #define U_SM_HighQuality 0x02
940 #define U_SM_None 0x03
941 #define U_SM_AntiAlias8x4 0x04
942 #define U_SM_AntiAlias8x8 0x05
943 
962 #define U_SA_Near 0x00
963 #define U_SA_Center 0x01
964 #define U_SA_Far 0x02
965 
972 #define U_SDS_User 0x00
973 #define U_SDS_None 0x01
974 #define U_SDS_National 0x02
975 #define U_SDS_Traditional 0x03
976 
983 #define U_ST_None 0x00
984 #define U_ST_Character 0x01
985 #define U_ST_Word 0x02
986 #define U_ST_EllipsisCharacter 0x03
987 #define U_ST_EllipsisWord 0x04
988 #define U_ST_EllipsisPath 0x05
989 
996 #define U_TRH_SystemDefault 0x00
997 #define U_TRH_SingleBitPerPixelGridFit 0x01
998 #define U_TRH_SingleBitPerPixel 0x02
999 #define U_TRH_AntialiasGridFit 0x03
1000 #define U_TRH_Antialias 0x04
1001 #define U_TRH_ClearTypeGridFit 0x05
1002 
1009 #define U_UT_World 0x00
1010 #define U_UT_Display 0x01
1011 #define U_UT_Pixel 0x02
1012 #define U_UT_Point 0x03
1013 #define U_UT_Inch 0x04
1014 #define U_UT_Document 0x05
1015 #define U_UT_Millimeter 0x06
1016 
1023 #define U_WM_Tile 0x00000000
1024 #define U_WM_TileFlipX 0x00000001
1025 #define U_WM_TileFlipY 0x00000002
1026 #define U_WM_TileFlipXY 0x00000003
1027 #define U_WM_Clamp 0x00000004
1028 
1047 #define U_BD_None 0x0000
1048 #define U_BD_Path 0x0001
1049 #define U_BD_Transform 0x0002
1050 #define U_BD_PresetColors 0x0004
1051 #define U_BD_BlendFactorsH 0x0008
1052 #define U_BD_BlendFactorsV 0x0010
1053 #define U_BD_NoBit 0x0020
1054 #define U_BD_FocusScales 0x0040
1055 #define U_BD_IsGammaCorrected 0x0080
1056 #define U_BD_DoNotTransform 0x0100
1057 #define U_BD_MASKA 0x009E
1058 #define U_BD_MASKB 0x00CF
1059 #define U_BD_MASKC 0x0182
1060 
1067 #define U_CLCD_None 0x00
1068 #define U_CLCD_FillPath 0x01
1069 #define U_CLCD_LinePath 0x02
1070 
1077 #define U_DSO_None 0x00
1078 #define U_DSO_CmapLookup 0x01
1079 #define U_DSO_Vertical 0x02
1080 #define U_DSO_RealizedAdvance 0x04
1082 #define U_DSO_LimitSubpixel 0x08
1090 #define U_FS_None 0x00
1091 #define U_FS_Bold 0x01
1092 #define U_FS_Italic 0x02
1093 #define U_FS_Underline 0x04
1094 #define U_FS_Strikeout 0x08
1102 #define U_PLTS_None 0x00
1103 #define U_PLTS_HasAlpha 0x01
1104 #define U_PLTS_GrayScale 0x02
1105 #define U_PLTS_Halftone 0x04
1113 #define U_PTP_None 0x00
1114 #define U_PTP_DashMode 0x10
1115 #define U_PTP_PathMarker 0x20
1116 #define U_PTP_NoBit 0x40
1117 #define U_PTP_CloseSubpath 0x80
1118 #define U_PTP_NotClose 0x70
1119 #define U_PTP_MASK 0xF0
1120 #define U_PTP_SHIFT 4
1131 #define U_PD_None 0x0000
1132 #define U_PD_Transform 0x0001
1133 #define U_PD_StartCap 0x0002
1134 #define U_PD_EndCap 0x0004
1135 #define U_PD_Join 0x0008
1136 #define U_PD_MiterLimit 0x0010
1137 #define U_PD_LineStyle 0x0020
1138 #define U_PD_DLCap 0x0040
1139 #define U_PD_DLOffset 0x0080
1140 #define U_PD_DLData 0x0100
1141 #define U_PD_NonCenter 0x0200
1142 #define U_PD_CLData 0x0400
1143 #define U_PD_CustomStartCap 0x0800
1144 #define U_PD_CustomEndCap 0x1000
1152 #define U_SF_None 0x00000000
1153 #define U_SF_DirectionRightToLeft 0x00000001
1154 #define U_SF_DirectionVertical 0x00000002
1155 #define U_SF_NoFitBlackBox 0x00000004
1156 #define U_SF_NoBit4 0x00000008
1157 #define U_SF_NoBit5 0x00000010
1158 #define U_SF_DisplayFormatControl 0x00000020
1159 #define U_SF_NoBit7 0x00000040
1160 #define U_SF_NoBit8 0x00000080
1161 #define U_SF_NoBit9 0x00000100
1162 #define U_SF_NoBit10 0x00000200
1163 #define U_SF_NoFontFallback 0x00000400
1164 #define U_SF_MeasureTrailingSpaces 0x00000800
1165 #define U_SF_NoWrap 0x00001000
1166 #define U_SF_LineLimit 0x00002000
1167 #define U_SF_NoClip 0x00004000
1168 #define U_SF_BypassGDI 0x80000000
1176 #define U_IE_BlurEffectGuid "{633C80A4-1843-482B-9EF2-BE2834C5FDD4}"
1177 #define U_IE_BrightnessContrastEffectGuid "{D3A1DBE1-8EC4-4C17-9F4C-EA97AD1C343D}"
1178 #define U_IE_ColorBalanceEffectGuid "{537E597D-251E-48DA-9664-29CA496B70F8}"
1179 #define U_IE_ColorCurveEffectGuid "{DD6A0022-58E4-4A67-9D9B-D48EB881A53D}"
1180 #define U_IE_ColorLookupTableEffectGuid "{A7CE72A9-0F7F-40D7-B3CC-D0C02D5C3212}"
1181 #define U_IE_ColorMatrixEffectGuid "{718F2615-7933-40E3-A511-5F68FE14DD74}"
1182 #define U_IE_HueSaturationLightnessEffectGuid "{8B2DD6C3-EB07-4D87-A5F0-7108E26A9C5F}"
1183 #define U_IE_LevelsEffectGuid "{99C354EC-2A31-4F3A-8C34-17A803B33A25}"
1184 #define U_IE_RedEyeCorrectionEffectGuid "{74D29D05-69A4-4266-9549-3CC52836B632}"
1185 #define U_IE_SharpenEffectGuid "{63CBF3EE-C526-402C-8F71-62C540BF5142}"
1186 #define U_IE_TintEffectGuid "{1077AF00-2848-4441-9489-44AD4C2D7A2C}"
1194 #define U_IEE_Unknown 0
1195 #define U_IEE_BlurEffectGuid 1
1196 #define U_IEE_BrightnessContrastEffectGuid 2
1197 #define U_IEE_ColorBalanceEffectGuid 3
1198 #define U_IEE_ColorCurveEffectGuid 4
1199 #define U_IEE_ColorLookupTableEffectGuid 5
1200 #define U_IEE_ColorMatrixEffectGuid 6
1201 #define U_IEE_HueSaturationLightnessEffectGuid 7
1202 #define U_IEE_LevelsEffectGuid 8
1203 #define U_IEE_RedEyeCorrectionEffectGuid 9
1204 #define U_IEE_SharpenEffectGuid 10
1205 #define U_IEE_TintEffectGuid 11
1213 #define U_OC_Rect 0x00
1214 #define U_OC_Bitmap 0x01
1229 #define U_PPF_B 0x8000
1230 #define U_PPF_BZ 0x8000
1231 #define U_PPF_N 0x8000
1232 #define U_PPF_K 0x8000
1233 #define U_PPF_C 0x4000
1234 #define U_PPF_XM 0x2000
1235 #define U_PPF_F 0x2000
1236 #define U_PPF_E 0x2000
1237 #define U_PPF_R 0x1000
1238 #define U_PPF_P 0x0800
1239 #define U_PPF_D 0x0400
1240 #define U_PPF_VGA 0x0002
1241 #define U_PPF_PP 0x0001
1242 #define U_PPF_DM 0x0001
1243 #define U_PPF_AA 0x0001
1244 #define U_PPF_VIDEO 0x0001
1255 #define U_FF_MASK_SUBLID 0x003F
1256 #define U_FF_SHFT_SUBLID 0x000A
1257 #define U_FF_MASK_PRILID 0x03FF
1258 #define U_FF_SHFT_PRILID 0x0000
1259 #define U_FF_MASK_LID 0xFFFF
1260 #define U_FF_SHFT_LID 0x0000
1261 #define U_FF_MASK_RL 0x003F
1262 #define U_FF_SHFT_RL 0x0008
1263 #define U_FF_MASK_PPT 0x00FF
1264 #define U_FF_SHFT_PPT 0x0000
1265 /* the next one is used most places an object ID is specified */
1266 #define U_FF_MASK_OID8 0x00FF
1267 #define U_FF_SHFT_OID8 0x0000
1268 #define U_FF_MASK_CM4 0x000F
1269 #define U_FF_SHFT_CM4 0x0008
1270 #define U_FF_MASK_OT 0x003F
1271 #define U_FF_SHFT_OT 0x0008
1272 #define U_FF_MASK_AA 0x007F
1273 #define U_FF_SHFT_AA 0x0001
1274 #define U_FF_MASK_CM 0x00FF
1275 #define U_FF_SHFT_CM 0x0000
1276 #define U_FF_MASK_CQ 0x00FF
1277 #define U_FF_SHFT_CQ 0x0000
1278 #define U_FF_MASK_IM 0x00FF
1279 #define U_FF_SHFT_IM 0x0000
1280 #define U_FF_MASK_PxOffM 0x00FF
1281 #define U_FF_SHFT_PxOffM 0x0000
1282 #define U_FF_MASK_TGC 0x0FFF
1283 #define U_FF_SHFT_TGC 0x0000
1284 #define U_FF_MASK_TRH 0x00FF
1285 #define U_FF_SHFT_TRH 0x0000
1286 #define U_FF_MASK_UT 0x00FF
1287 #define U_FF_SHFT_UT 0x0008
1288 #define U_FF_MASK_TSC 0x7FFF
1289 #define U_FF_SHFT_TSC 0x0000
1290 #define U_FF_MASK_PU 0x00FF
1291 #define U_FF_SHFT_PU 0x0000
1300 #define U_GFVR_PMF 0x000DBC01
1301 #define U_GFVR_MASKHI 0xFFFFF000
1302 #define U_GFVR_MASKLO 0x00000FFF
1310 #define U_XM_PostX 1
1311 #define U_XM_PreX 0
1315 /* Utility objects, not defined in EMF+ spec */
1316 
1320 typedef struct {
1321  char *accum;
1322  uint32_t space;
1323  uint32_t used;
1324  int Type;
1325  int Id;
1327 
1330 typedef struct {
1331  char *Data;
1332  size_t Size;
1333  size_t Used;
1334  uint32_t Type;
1336 
1341 typedef struct {
1342  uint32_t Elements;
1343  U_PSEUDO_OBJ *poPoints;
1344  U_PSEUDO_OBJ *poTypes;
1346 
1352 typedef struct {
1353  const void *Ptr;
1356  size_t Units;
1357  size_t Reps;
1358  int TE;
1360 
1366 typedef struct {
1367  char *name;
1368  int Ascent;
1369  int Descent;
1370  int LineGap;
1371  int EmSize;
1372  int yMax;
1373  int yMin;
1375 
1376 
1377 
1378 /* EMF+ objects */
1379 
1385 typedef struct {
1386  uint32_t Version;
1387  uint32_t Type;
1389 
1391 typedef struct {
1393  uint32_t Version;
1394  uint32_t Type;
1395 /* variable part of object, not part of structure
1396  uint32_t Data[]; //!< one of the 2 types of Linecap data (2.2.2 12, 13)
1397 */
1400 
1402 typedef struct {
1404  uint32_t Version;
1405  U_FLOAT EmSize;
1406  uint32_t SizeUnit;
1407  int32_t FSFlags;
1408  uint32_t Reserved;
1409  uint32_t Length;
1410 /* variable part of object, not part of structure
1411  uint16_t FamilyName[]; //!< Unicode (UTF-16LE) name of font family
1412 */
1414 } U_PMF_FONT;
1415 
1417 typedef struct {
1419  uint32_t Version;
1420  uint32_t Type;
1421 /* variable part of object, not part of structure
1422  uint32_t Data[]; //!< one of the 2 types of image data (2.2.2 2 or 27)
1423 */
1425 } U_PMF_IMAGE;
1426 
1428 typedef struct {
1430  uint8_t Blue;
1431  uint8_t Green;
1432  uint8_t Red;
1433  uint8_t Alpha;
1435 } U_PMF_ARGB;
1436 
1438 typedef struct {
1440  uint32_t Version;
1441  uint32_t Reserved1;
1442  uint32_t WrapMode;
1443  U_PMF_ARGB ClampColor;
1444  int32_t ObjectClamp;
1445  uint32_t Reserved2;
1448 
1450 typedef struct {
1452  uint32_t Version;
1453  uint32_t Count;
1454  uint16_t Flags;
1455 /* variable part of object, not part of structure
1456  points array of points like:
1457  U_PPF_P U_PPF_C Type
1458  1 x U_PMF_POINTR
1459  0 1 U_PMF_POINT
1460  0 0 U_PMF_POINTF
1461  types array of:.
1462  U_PPF_R Type
1463  1 U_PMF_PATHPOINTTYPERLE and/or U_PMF_PATHPOINTTYPE
1464  0 U_PMF_PathPointType (only)
1465  alignment padding up to 3 bytes
1466 */
1468 } U_PMF_PATH;
1469 
1472 typedef struct {
1473  uint32_t Version;
1474  uint32_t type;
1475 /* variable part of object, not part of structure
1476  U_PMF_PENDATA pen
1477  U_PMF_BRUSH brush
1478 */
1479 } U_PMF_PEN;
1480 
1482 typedef struct {
1483  uint32_t Type;
1484 /* variable part of object, not part of structure, will be absent in object for some types
1485  data data is a tree made up of some combination of these objects
1486  U_PMF_REGIONNODEPATH 2.2.2.42 terminal node
1487  U_PMF_RECTF 2.2.2.39 terminal node
1488  U_PMF_REGIONNODECHILDNODES 2.2.2.41 non-terminal node
1489 */
1491 
1493 typedef struct {
1494  uint32_t Version;
1495  uint32_t Elements;
1496 /* variable part of object, not part of structure, will be absent in object for some types
1497  U_PMF_REGIONNODE Nodes[1]; //!< Nodes defining region
1498 */
1499 } U_PMF_REGION;
1500 
1510 typedef uint32_t U_PMF_LANGUAGEIDENTIFIER;
1513 typedef struct {
1514  uint32_t Version;
1515  uint32_t Flags;
1516  U_PMF_LANGUAGEIDENTIFIER
1517  Language;
1518  uint32_t StringAlignment;
1519  uint32_t LineAlign;
1520  uint32_t DigitSubstitution;
1521  U_PMF_LANGUAGEIDENTIFIER
1522  DigitLanguage;
1523  U_FLOAT FirstTabOffset;
1524  int32_t HotkeyPrefix;
1525  U_FLOAT LeadingMargin;
1526  U_FLOAT TrailingMargin;
1527  U_FLOAT Tracking;
1528  uint32_t Trimming;
1529  uint32_t TabStopCount;
1530  uint32_t RangeCount;
1531 /* variable part of object, not part of structure.
1532  U_PMF_STRINGFORMATDATA data
1533 
1534  Note that U_PMF_STRINGFORMATDATA has no struct as it is entirely variable
1535  and the size of the two fields in it are specified by the two preceding fields in this object type.
1536 */
1538 
1542 typedef struct {
1543  int32_t Width;
1544  int32_t Height;
1545  int32_t Stride;
1546  uint32_t PxFormat;
1547  uint32_t Type;
1548 /* variable part of object, not part of structure.
1549  (various types) BitmapData //!< is either an U_PMF_BITMAPDATA or U_PMF_COMPRESSEDIMAGE object
1550 */
1551 } U_PMF_BITMAP;
1552 
1564 typedef struct {
1565  uint32_t Elements;
1566 /* variable part of object, not part of structure.
1567  U_FLOAT Positions //!< positions along gradient line. The first position MUST be 0.0 and the last MUST be 1.0.
1568  U_PMF_ARGB Colors //!< colors at positions on gradient line
1569 */
1571 
1573 typedef struct {
1574  uint32_t Elements;
1575 /* variable part of object, not part of structure.
1576  U_FLOAT Positions //!< positions along gradient line. The first position MUST be 0.0 and the last MUST be 1.0.
1577  U_FLOAT Factors //!< blending factors, 0.0->1.0 values, inclusive
1578 */
1580 
1582 typedef struct {
1583  int32_t Size;
1584 /* variable part of object, not part of structure.
1585  U_PMF_PATH Data //!< Boundary of the brush
1586 */
1588 
1590 typedef struct {
1591  int32_t Elements;
1592 /* variable part of object, not part of structure.
1593  U_PMF_POINTF Points //!< Boundary of the brush
1594 */
1596 
1598 typedef struct {
1599  int32_t First;
1600  int32_t Length;
1602 
1608 typedef struct {
1609  int32_t Elements;
1610 /* variable part of object, not part of structure.
1611  U_FLOAT Data //!< Line or gap width (0.0 <-> 1.0, fraction of total line width )
1612 */
1614 
1624 typedef struct {
1625  int32_t Size;
1626 /* variable part of object, not part of structure.
1627  U_PMF_CUSTOMLINECAP Data //!< Description of linecap
1628 */
1630 
1632 typedef struct {
1633  U_FLOAT Width;
1634  U_FLOAT Height;
1635  U_FLOAT MiddleInset;
1636  uint32_t FillState;
1637  uint32_t StartCap;
1638  uint32_t EndCap;
1639  uint32_t Join;
1640  U_FLOAT MiterLimit;
1641  U_FLOAT WidthScale;
1642  U_FLOAT FillHotSpot[2];
1643  U_FLOAT LineHotSpot[2];
1645 
1647 typedef struct {
1648  uint32_t Flags;
1649  uint32_t Cap;
1650  U_FLOAT Inset;
1651  uint32_t StartCap;
1652  uint32_t EndCap;
1653  uint32_t Join;
1654  U_FLOAT MiterLimit;
1655  U_FLOAT WidthScale;
1656  U_FLOAT FillHotSpot[2];
1657  U_FLOAT LineHotSpot[2];
1658 /* variable part of object, not part of structure.
1659  U_PMF_CUSTOMLINECAPOPTIONALDATA Data //!< meaning determined by Flags
1660 */
1662 
1672 typedef struct {
1673  int32_t Size;
1674 /* variable part of object, not part of structure.
1675  U_PMF_CUSTOMLINECAP Data //!< Description of linecap
1676 */
1678 
1680 typedef struct {
1681  int32_t Elements;
1682 /* variable part of object, not part of structure.
1683  U_FLOAT Data; //!< Array of lengths of dashes and spaces
1684 */
1686 
1691 typedef struct {
1692  int32_t Size;
1693 /* variable part of object, not part of structure.
1694  U_PMF_PATH Data; //!< Path specification
1695 */
1696 } U_PMF_FILLPATHO;
1697 
1707 typedef struct {
1708  uint32_t Count;
1709  U_FLOAT ScaleX;
1710  U_FLOAT ScaleY;
1712 
1721 typedef uint32_t U_PMF_GRAPHICSVERSION;
1725 typedef struct {
1726  uint32_t Style;
1727  U_PMF_ARGB Foreground;
1728  U_PMF_ARGB Background;
1730 
1738 #define U_TEST_INT7 0x80
1739 #define U_SIGN_INT7 0x40
1740 #define U_MASK_INT7 0x7F
1754 #define U_TEST_INT15 0x8000
1755 #define U_SIGN_INT15 0x4000
1756 #define U_MASK_INT15 0x7FFF
1759 /* EMF+ manual 2.2.2.23, Microsoft name: EmfPlusLanguageIdentifier Object, defined above, before 2.2.1.9 */
1760 
1762 typedef struct {
1765  U_FLOAT Width;
1766  U_FLOAT Height;
1768 
1773 typedef struct {
1774  uint32_t Flags;
1775  int32_t WrapMode;
1776  U_PMF_RECTF RectF;
1777  U_PMF_ARGB StartColor;
1778  U_PMF_ARGB EndColor;
1779  uint32_t Reserved1;
1780  uint32_t Reserved2;
1781 /* variable part of object, not part of structure.
1782  U_PMF_LINEARGRADIENTBRUSHOPTIONALDATA data; //!< presence and meaning depend on Flags field
1783 */
1785 
1787 typedef struct {
1788  U_FLOAT m11;
1789  U_FLOAT m12;
1790  U_FLOAT m21;
1791  U_FLOAT m22;
1792  U_FLOAT dX;
1793  U_FLOAT dY;
1795 
1798 typedef struct {
1799  U_FLOAT m11;
1800  U_FLOAT m12;
1801  U_FLOAT m21;
1802  U_FLOAT m22;
1804 
1808 typedef struct {
1810 /* variable part of object, not part of structure.
1811  (various) pattern; //!< Presence and meaning depend on Flags field, see below
1812 
1813  Flag values
1814  U_BD_PresetColors U_BD_BlendFactorsH U_BD_BlendFactorsV pattern(s) present?
1815  0 0 0 none
1816  1 0 0 U_PMF_BLENDCOLORS
1817  0 1 0 U_PMF_BLENDFACTORS
1818  0 0 1 U_PMF_BLENDFACTORS
1819  0 1 1 U_PMF_BLENDFACTORS, U_PMF_BLENDFACTORS
1820 */
1822 
1824 typedef struct {
1825  int32_t Size;
1826 /* variable part of object, not part of structure.
1827  U_PMF_PATH Data; //!< Outline path
1828 */
1829 } U_PMF_LINEPATH;
1830 
1832 typedef struct {
1833  uint32_t Type;
1834  uint32_t Size;
1835 /* variable part of object, not part of structure.
1836  U_PMF_IMAGE Data; //!< Various types of data, like an EMF metafile, WMF metafile, another EMF+ metafile
1837 */
1838 } U_PMF_METAFILE;
1839 
1841 typedef struct {
1842  uint32_t Flags;
1843  uint32_t Elements;
1844 /* variable part of object, not part of structure.
1845  U_PMF_ARGB Data; //!< Palette data (array of colors)
1846 */
1847 } U_PMF_PALETTE;
1848 
1850 typedef struct {
1854 
1856 typedef struct {
1857  uint32_t Flags;
1858  int32_t WrapMode;
1859  U_PMF_ARGB CenterColor;
1860  U_PMF_POINTF Center;
1861  uint32_t Elements;
1862 /* variable part of object, not part of structure.
1863  U_PMF_ARGB Gradient; //!< Color Gradient with Elements members
1864  (varies) Boundary; //!< U_PMF_BOUNDARYPATHDATA object if BrushDataPath bit set in Flag, else U_PMF_BOUNDARYPOINTDATA object
1865  U_PMF_GRADIENTBRUSHOPTIONALDATA data; //!< exact composition depends on Flags
1866 */
1868 
1872 /* Entire thing is variable or optional.
1873 typedef struct {
1874  U_PMF_TRANSFORMMATRIX Matrix; //!< Optional Transformation matrix
1875  U_PMF_BLENDCOLORS Pattern; //!< presence and meaning depend on Flags field
1876  Flag values
1877  U_BD_PresetColors U_BD_BlendFactorsH pattern?
1878  0 0 none
1879  1 0 U_PMF_BLENDCOLORS
1880  0 1 U_PMF_BLENDFACTORS
1881  U_PMF_FOCUSSSCALEDATA data //!< Present if U_BD_FocusScales bit set in Flags in U_PMF_PATHGRADIENTNBRUSHDATA object
1882 } U_PMF_PATHGRADIENTBRUSHOPTIONALDATA;
1883 */
1884 
1905 typedef uint16_t U_PMF_PATHPOINTTYPERLE;
1913 typedef struct {
1914  uint32_t Flags;
1915  uint32_t Unit;
1916  U_FLOAT Width;
1918 
1940 typedef struct {
1941  int16_t X;
1942  int16_t Y;
1944 
1958 typedef struct {
1959  int16_t X;
1960  int16_t Y;
1961  int16_t Width;
1962  int16_t Height;
1964 
1977 typedef struct {
1978  int32_t Size;
1979 /* variable part of object, not part of structure.
1980  U_PMF_PATH Data; //!< Boundary of region node
1981 */
1983 
1987 typedef struct {
1988  U_PMF_ARGB Color;
1990 
1998 typedef struct {
1999  uint32_t Flags;
2000  int32_t WrapMode;
2001 /* variable part of object, not part of structure.
2002  U_PMF_TEXTUREBRUSHOPTIONALDATA data; //!< Optional texture data
2003 */
2005 
2019 typedef struct {
2020  uint16_t Type;
2021  uint16_t Flags;
2022  uint32_t Size;
2023  uint32_t DataSize;
2025 
2029 typedef struct {
2030  U_FLOAT Radius;
2031  uint32_t ExpandEdge;
2033 
2034 
2036 typedef struct {
2037  int32_t Brightness;
2038  int32_t Contrast;
2040 
2042 typedef struct {
2043  int32_t CyanRed;
2044  int32_t MagentaGreen;
2045  int32_t YellowBlue;
2047 
2058 typedef struct {
2059  uint32_t Adjust;
2060  uint32_t Channel;
2061  int32_t Intensity;
2063 
2065 typedef struct {
2066  uint8_t BLUT[256];
2067  uint8_t GLUT[256];
2068  uint8_t RLUT[256];
2069  uint8_t ALUT[256];
2071 
2073 typedef struct {
2074  U_FLOAT M[5][5];
2076 
2078 typedef struct {
2079  int32_t Hue;
2080  int32_t Saturation;
2081  int32_t Lightness;
2083 
2085 typedef struct {
2086  int32_t Highlight;
2087  int32_t Midtone;
2088  int32_t Shadow;
2090 
2092 typedef struct {
2093  int32_t Elements;
2094 /* variable part of object, not included in structure
2095  U_RECTL Rects[]; //!< Array of rectangular area(s) to apply red eye correction
2096 */
2098 
2100 typedef struct {
2101  U_FLOAT Radius;
2102  int32_t Sharpen;
2104 
2106 typedef struct {
2107  int32_t Hue;
2108  int32_t Amount;
2110 
2111 /* ************************** EMF+ Records ******************************** */
2112 
2114 typedef struct {
2115  U_PMF_CMN_HDR Header;
2116  U_FLOAT dX;
2117  U_FLOAT dY;
2119 
2121 typedef struct {
2122  U_PMF_CMN_HDR Header;
2124 
2131 typedef struct {
2132  U_PMF_CMN_HDR Header;
2134 
2140 typedef struct {
2141  U_PMF_CMN_HDR Header;
2144 
2151 typedef struct {
2152  U_PMF_CMN_HDR Header;
2154 
2160 typedef struct {
2161  U_PMF_CMN_HDR Header;
2163 
2165 typedef struct {
2166  U_PMF_CMN_HDR Header;
2168 
2170 typedef struct {
2171  U_PMF_CMN_HDR Header;
2173 
2179 typedef struct {
2180  U_PMF_CMN_HDR Header;
2181  U_PMF_GRAPHICSVERSION Version;
2182  uint32_t EmfPlusFlags;
2183  uint32_t LogicalDpiX;
2184  uint32_t LogicalDpiY;
2186 
2188 typedef struct {
2189  U_PMF_CMN_HDR Header;
2190  U_PMF_ARGB Color;
2192 
2199 typedef struct {
2200  U_PMF_CMN_HDR Header;
2201  U_FLOAT Start;
2202  U_FLOAT Sweep;
2203 /* variable part of record, not included in structure
2204  U_RECT or U_RECTF Rect; //!< Bounding box for elliptical arc being drawn.
2205 */
2206 } U_PMF_DRAWARC;
2207 
2219 typedef struct {
2220  U_PMF_CMN_HDR Header;
2221  uint32_t Elements;
2222 /*
2223  variable part of record, not included in structure
2224  (varies) Points; //!< Points, for type see table above
2225 */
2227 
2247 typedef struct {
2248  U_PMF_CMN_HDR Header;
2249  U_FLOAT Tension;
2250 /*
2251  variable part of record, not included in structure
2252  (varies) Points; //!< Points, for type see table above
2253 */
2255 
2271 typedef struct {
2272  U_PMF_CMN_HDR Header;
2273  U_FLOAT Tension;
2274  uint32_t Offset;
2275  uint32_t NSegs;
2276  uint32_t Elements;
2277 /*
2278  variable part of record, not included in structure
2279  (varies) Points; //!< Points, for type see table above
2280 */
2281 } U_PMF_DRAWCURVE;
2282 
2289 typedef struct {
2290  U_PMF_CMN_HDR Header;
2291  U_FLOAT Tension;
2292  uint32_t BrushID;
2293  uint32_t DSOFlags;
2294  uint32_t HasMatrix;
2295  uint32_t Elements;
2296 /*
2297  variable part of record, not included in structure
2298  uint16_t Glyphs; //!< If U_DSO_CmapLookup is set in DSOFlags this is an array
2299  of UTF16LE characters, otherwise, it is an array of indices into the U_PMF_FONT
2300  object indexed by Object_ID in flags.
2301  U_PMF_POINTF Positions; //!< Coordinates of each member of Glyphs. U_DSO_RealizedAdvance set in DSOFlags
2302  Relative then positions are calculated relative to the first glyph which is stored
2303  in Positions, otherwise, all glyph positions are stored in Positions.
2304  U_PMF_TRANSFORMMATRIX Matrix; //!< Transformation to apply to Glyphs & Positions. Present if HasMatrix is 1
2305 */
2307 
2314 typedef struct {
2315  U_PMF_CMN_HDR Header;
2316 /*
2317  variable part of record, not included in structure
2318  (varies) Rect; //!< Bounding rectangle, data type set by bit1 of Header.Flags
2319 */
2321 
2328 typedef struct {
2329  U_PMF_CMN_HDR Header;
2330  uint32_t ImgAttrID;
2331  int32_t SrcUnit;
2332  U_PMF_RECTF SrcRect;
2333 /*
2334  variable part of record, not included in structure
2335  (varies) DstRect; //!< Destination rectangle for image. Type controlled by bit1 of Header.Flags
2336 */
2337 } U_PMF_DRAWIMAGE;
2338 
2355 typedef struct {
2356  U_PMF_CMN_HDR Header;
2357  uint32_t ImgAttrID;
2358  int32_t SrcUnit;
2359  U_PMF_RECTF SrcRect;
2360  uint32_t Elements;
2361 /*
2362  variable part of record, not included in structure
2363  (varies) Points; //!< 3 points of a parallelogram. Type from bit1 and bit4 of Header.Flags, see table above
2364 */
2366 
2380 typedef struct {
2381  U_PMF_CMN_HDR Header;
2382  uint32_t Elements;
2383 /*
2384  variable part of record, not included in structure
2385  (varies) Points; //!< Sequence of points to connect with line segments. Type from bit1 and bit4 of Header.Flags, see table above
2386 */
2387 } U_PMF_DRAWLINES;
2388 
2394 typedef struct {
2395  U_PMF_CMN_HDR Header;
2396  uint32_t PenID;
2398 
2405 typedef struct {
2406  U_PMF_CMN_HDR Header;
2407  U_FLOAT Start;
2408  U_FLOAT Sweep;
2409 /*
2410  variable part of record, not included in structure
2411  U_RECT or U_RECTF Rect; //!< Bounding box for elliptical pie segment being drawn. Type from bit1 of Header.Flags, see above
2412 */
2413 } U_PMF_DRAWPIE;
2414 
2421 typedef struct {
2422  U_PMF_CMN_HDR Header;
2423  uint32_t Elements;
2424 /*
2425  variable part of record, not included in structure
2426  U_RECT or U_RECTF Rects; //!< Array of rectangles to draw. Type from bit1 of Header.Flags, see above
2427 */
2428 } U_PMF_DRAWRECTS;
2429 
2436 typedef struct {
2437  U_PMF_CMN_HDR Header;
2438  uint32_t BrushID;
2439  uint32_t FormatID;
2440  uint32_t Length;
2442 /*
2443  variable part of record, not included in structure
2444  uint16_t String; //!< Array of UFT-16LE unicode characters.
2445 */
2447 
2461 typedef struct {
2462  U_PMF_CMN_HDR Header;
2463  uint32_t BrushID;
2464  U_FLOAT Tension;
2465  uint32_t Elements;
2466 /*
2467  variable part of record, not included in structure
2468  (varies) Points; //!< Sequence of points to connect. Type from bit1 and bit4 of Header.Flags, see table above
2469 */
2471 
2478 typedef struct {
2479  U_PMF_CMN_HDR Header;
2480  uint32_t BrushID;
2481 /*
2482  variable part of record, not included in structure
2483  U_RECT or U_RECTF Rect; //!< Bounding box for elliptical pie segment being drawn. Type from bit1 of Header.Flags, see above
2484 */
2486 
2494 typedef struct {
2495  U_PMF_CMN_HDR Header;
2496  uint32_t BrushID;
2498 
2505 typedef struct {
2506  U_PMF_CMN_HDR Header;
2507  uint32_t BrushID;
2508  U_FLOAT Start;
2509  U_FLOAT Sweep;
2510 /*
2511  variable part of record, not included in structure
2512  U_RECT or U_RECTF Rect; //!< Bounding box for elliptical pie segment being filled. Type from bit1 of Header.Flags, see above
2513 */
2514 } U_PMF_FILLPIE;
2515 
2528 typedef struct {
2529  U_PMF_CMN_HDR Header;
2530  uint32_t BrushID;
2531  uint32_t Elements;
2532 /*
2533  variable part of record, not included in structure
2534  (varies) Points; //!< Sequence of points to connect with line segments. Type from bit1 and bit4 of Header.Flags, see table above
2535 */
2537 
2544 typedef struct {
2545  U_PMF_CMN_HDR Header;
2546  uint32_t BrushID;
2547  uint32_t Elements;
2548 /*
2549  variable part of record, not included in structure
2550  U_RECT or U_RECTF Rects; //!< Array of rectangles to draw. Type from bit1 of Header.Flags, see above
2551 */
2552 } U_PMF_FILLRECTS;
2553 
2560 typedef struct {
2561  U_PMF_CMN_HDR Header;
2562  uint32_t BrushID;
2564 
2572 typedef struct {
2573  U_PMF_CMN_HDR Header;
2574 /*
2575  variable part of record, not included in structure
2576  uint8_t Data; //!< Object's data. Type from bits1-7 and bits8-15 of Header.Flags, see above
2577 */
2578 } U_PMF_OBJECT;
2579 
2586 typedef struct {
2587  U_PMF_CMN_HDR Header;
2588  uint8_t GUID[16];
2589  uint32_t Size;
2591 /*
2592  variable part of record, not included in structure
2593  uint8_t Data; //!< "Serialized image effects parameter block". One of the ImageEffects objects.
2594 */
2596 
2603 typedef struct {
2604  U_PMF_CMN_HDR Header;
2606 
2612 typedef struct {
2613  U_PMF_CMN_HDR Header;
2615 
2621 typedef struct {
2622  U_PMF_CMN_HDR Header;
2624 
2630 typedef struct {
2631  U_PMF_CMN_HDR Header;
2633 
2639 typedef struct {
2640  U_PMF_CMN_HDR Header;
2642 
2644 typedef struct {
2645  U_PMF_CMN_HDR Header;
2646  int32_t X;
2647  int32_t Y;
2649 
2655 typedef struct {
2656  U_PMF_CMN_HDR Header;
2658 
2664 typedef struct {
2665  U_PMF_CMN_HDR Header;
2667 
2674 typedef struct {
2675  U_PMF_CMN_HDR Header;
2676  U_PMF_RECTF DstRect;
2677  U_PMF_RECTF SrcRect;
2678  uint32_t Index;
2680 
2682 typedef struct {
2683  U_PMF_CMN_HDR Header;
2684  uint32_t Index;
2686 
2688 typedef struct {
2689  U_PMF_CMN_HDR Header;
2690  uint32_t Index;
2692 
2694 typedef struct {
2695  U_PMF_CMN_HDR Header;
2696  uint32_t Index;
2698 
2700 typedef struct {
2701  U_PMF_CMN_HDR Header;
2702  uint32_t Index;
2704 
2711 typedef struct {
2712  U_PMF_CMN_HDR Header;
2713 /*
2714  variable part of record, not included in structure
2715  U_RECT or U_RECTF Rects; //!< Array of rectangles to draw. Type from bit0 of Header.Flags, see above
2716 */
2717 } U_PMF_SETTSCLIP;
2718 
2725 typedef struct {
2726  U_PMF_CMN_HDR Header;
2727  uint8_t AntiAliasMode;
2728  uint8_t TextRenderHint;
2729  uint8_t CompositingMode;
2730  uint8_t CompositingQuality;
2731  int16_t RenderOriginX;
2732  int16_t RenderOriginY;
2733  uint16_t TextContrast;
2734  uint8_t FilterType;
2735  uint8_t PixelOffset;
2736  U_PMF_TRANSFORMMATRIX WorldToDevice;
2737 /*
2738  optional part of record, not included in structure
2739  U_PMF_PALETTE Palette; //!< Present if bit15 of Header.Flags is set
2740 */
2742 
2748 typedef struct {
2749  U_PMF_CMN_HDR Header;
2752 
2756 typedef struct {
2757  U_PMF_CMN_HDR Header;
2759 
2769 typedef struct {
2770  U_PMF_CMN_HDR Header;
2771  U_FLOAT Angle;
2773 
2783 typedef struct {
2784  U_PMF_CMN_HDR Header;
2785  U_FLOAT Sx;
2786  U_FLOAT Sy;
2788 
2793 typedef struct {
2794  U_PMF_CMN_HDR Header;
2795  U_FLOAT Scale;
2797 
2798 
2800 typedef struct {
2801  U_PMF_CMN_HDR Header;
2804 
2814 typedef struct {
2815  U_PMF_CMN_HDR Header;
2816  U_FLOAT Dx;
2817  U_FLOAT Dy;
2819 
2821 
2822 /* EMF+ prototypes (helper functions) */
2823 void U_PMR_write(U_PSEUDO_OBJ *po, U_PSEUDO_OBJ *sum, EMFTRACK *et);
2824 int U_PMR_drawline(uint32_t PenID, uint32_t PathID, U_PMF_POINTF Start, U_PMF_POINTF End, int Dashed, U_PSEUDO_OBJ *sum, EMFTRACK *et);
2825 int U_PMR_drawstring( const char *string, int Vpos, uint32_t FontID, const U_PSEUDO_OBJ *BrushID, uint32_t FormatID,
2826  U_PMF_STRINGFORMAT Sfs, const char *FontName, U_FLOAT Height, U_FontInfoParams *fip, uint32_t FontFlags,
2827  U_FLOAT x, U_FLOAT y, U_PSEUDO_OBJ *sum, EMFTRACK *et);
2828 U_PMF_POINT *POINTF_To_POINT16_LE(U_PMF_POINTF *points, int count);
2829 int U_PMF_LEN_REL715(const char *contents, int Elements);
2830 int U_PMF_LEN_FLOATDATA(const char *contents);
2831 int U_PMF_LEN_BYTEDATA(const char *contents);
2832 int U_PMF_LEN_PENDATA(const char *PenData);
2833 int U_PMF_LEN_OPTPENDATA(const char *PenData, uint32_t Flags);
2834 char *U_PMF_CURLYGUID_set(uint8_t *GUID);
2835 int U_PMF_KNOWNCURLYGUID_set(const char *string);
2836 void U_PMF_MEMCPY_SRCSHIFT(void *Dst, const char **Src, size_t Size);
2837 void U_PMF_MEMCPY_DSTSHIFT(char **Dst, const void *Src, size_t Size);
2838 void U_PMF_REPCPY_DSTSHIFT(char **Dst, const void *Src, size_t Size, size_t Reps);
2839 void U_PMF_PTRSAV_SHIFT(const char **Dst, const char **Src, size_t Size);
2840 uint16_t U_PMF_HEADERFLAGS_get(const char *contents);
2841 int U_PMF_CMN_HDR_get(const char **contents, U_PMF_CMN_HDR *Header);
2842 int U_OID_To_OT(uint32_t OID);
2843 int U_OID_To_BT(uint32_t OID);
2844 int U_OID_To_CLCDT(uint32_t OID);
2845 int U_OID_To_IDT(uint32_t OID);
2846 int U_OID_To_RNDT(uint32_t OID);
2847 uint8_t *U_OID_To_GUID(uint32_t OID);
2848 int U_OA_append(U_OBJ_ACCUM *oa, const char *data, int size, int Type, int Id);
2849 int U_OA_clear(U_OBJ_ACCUM *oa);
2850 int U_OA_release(U_OBJ_ACCUM *oa);
2851 U_PSEUDO_OBJ *U_PO_create(char *Data, size_t Size, size_t Use, uint32_t Type);
2852 U_PSEUDO_OBJ *U_PO_append(U_PSEUDO_OBJ *po, const char *Data, size_t Size);
2853 U_PSEUDO_OBJ *U_PO_po_append(U_PSEUDO_OBJ *po, U_PSEUDO_OBJ *src, int StripE);
2854 int U_PO_free(U_PSEUDO_OBJ **po);
2855 U_DPSEUDO_OBJ *U_PATH_create(int Elements, const U_PMF_POINTF *Points, uint8_t First, uint8_t Others);
2856 int U_DPO_free(U_DPSEUDO_OBJ **dpo);
2857 int U_DPO_clear(U_DPSEUDO_OBJ *dpo);
2858 int U_PATH_moveto(U_DPSEUDO_OBJ *path, U_PMF_POINTF Point, uint8_t Flags);
2859 int U_PATH_lineto(U_DPSEUDO_OBJ *path, U_PMF_POINTF Point, uint8_t Flags);
2860 int U_PATH_closepath(U_DPSEUDO_OBJ *path);
2861 int U_PATH_polylineto(U_DPSEUDO_OBJ *path, uint32_t Elements, const U_PMF_POINTF *Points, uint8_t Flags, uint8_t StartSeg);
2862 int U_PATH_polybezierto(U_DPSEUDO_OBJ *path, uint32_t Elements, const U_PMF_POINTF *Points, uint8_t Flags, uint8_t StartSeg);
2863 int U_PATH_polygon(U_DPSEUDO_OBJ *Path, uint32_t Elements, const U_PMF_POINTF *Points, uint8_t Flags);
2864 int U_PATH_arcto(U_DPSEUDO_OBJ *Path, U_FLOAT Start, U_FLOAT Sweep, U_FLOAT Rot, U_PMF_RECTF *Rect, uint8_t Flags, int StartSeg);
2865 U_PMF_POINTF *pointfs_transform(U_PMF_POINTF *points, int count, U_XFORM xform);
2866 U_PMF_RECTF *rectfs_transform(U_PMF_RECTF *rects, int count, U_XFORM xform);
2868 U_PSEUDO_OBJ *U_PMR_drawfill(uint32_t PathID, uint32_t PenID, const U_PSEUDO_OBJ *BrushID);
2869 
2870 
2871 char *U_pmr_names(unsigned int idx);
2872 
2873 /* EMF+ prototypes (objects_set) */
2874 
2875 U_PSEUDO_OBJ *U_PMF_BRUSH_set(uint32_t Version, const U_PSEUDO_OBJ *po);
2876 U_PSEUDO_OBJ *U_PMF_CUSTOMLINECAP_set(uint32_t Version, const U_PSEUDO_OBJ *po);
2877 U_PSEUDO_OBJ *U_PMF_FONT_set(uint32_t Version, U_FLOAT EmSize, uint32_t SizeUnit,
2878  int32_t FSFlags, uint32_t Length, const uint16_t *Font);
2879 U_PSEUDO_OBJ *U_PMF_IMAGE_set(uint32_t Version, const U_PSEUDO_OBJ *po);
2880 U_PSEUDO_OBJ *U_PMF_IMAGEATTRIBUTES_set(uint32_t Version, uint32_t WrapMode, uint32_t ClampColor, uint32_t ObjectClamp);
2881 U_PSEUDO_OBJ *U_PMF_PATH_set(uint32_t Version, const U_PSEUDO_OBJ *Points, const U_PSEUDO_OBJ *Types);
2882 U_PSEUDO_OBJ *U_PMF_PATH_set2(uint32_t Version, const U_DPSEUDO_OBJ *Path);
2883 U_PSEUDO_OBJ *U_PMF_PATH_set3(uint32_t Version, const U_DPSEUDO_OBJ *Path);
2884 U_PSEUDO_OBJ *U_PMF_PEN_set(uint32_t Version, const U_PSEUDO_OBJ *PenData, const U_PSEUDO_OBJ *Brush);
2885 U_PSEUDO_OBJ *U_PMF_REGION_set(uint32_t Version, uint32_t Count, const U_PSEUDO_OBJ *Nodes);
2887 U_PSEUDO_OBJ *U_PMF_4NUM_set(uint32_t BrushID);
2888 U_PSEUDO_OBJ *U_PMF_ARGB_set(uint8_t Alpha, uint8_t Red, uint8_t Green, uint8_t Blue);
2889 U_PSEUDO_OBJ *U_PMF_ARGBN_set(uint32_t Count, U_PMF_ARGB *Colors);
2890 U_PMF_ARGB U_PMF_ARGBOBJ_set(uint8_t Alpha, uint8_t Red, uint8_t Green, uint8_t Blue);
2892 U_PSEUDO_OBJ *U_PMF_BITMAPDATA_set( const U_PSEUDO_OBJ *Ps, int cbBm, const char *Bm);
2893 U_PSEUDO_OBJ *U_PMF_BLENDCOLORS_set(uint32_t Elements, const U_FLOAT *Positions, const U_PSEUDO_OBJ *Colors);
2894 U_PSEUDO_OBJ *U_PMF_BLENDCOLORS_linear_set(uint32_t Elements,U_PMF_ARGB StartColor, U_PMF_ARGB EndColor);
2895 U_PSEUDO_OBJ *U_PMF_BLENDFACTORS_set(uint32_t Elements, const U_FLOAT *Positions, const U_FLOAT *Factors);
2896 U_PSEUDO_OBJ *U_PMF_BLENDFACTORS_linear_set(uint32_t Elements, U_FLOAT StartFactor, U_FLOAT EndFactor);
2898 U_PSEUDO_OBJ *U_PMF_BOUNDARYPOINTDATA_set(uint32_t Elements, const U_PMF_POINTF *Points);
2899 U_PSEUDO_OBJ *U_PMF_CHARACTERRANGE_set(int32_t First, int32_t Length);
2900 U_PSEUDO_OBJ *U_PMF_COMPOUNDLINEDATA_set(int32_t Elements, const char *Widths);
2901 U_PSEUDO_OBJ *U_PMF_COMPRESSEDIMAGE_set(int32_t cbImage, const char *Image);
2904  U_FLOAT MiddleInset, uint32_t FillState, uint32_t StartCap, uint32_t EndCap, uint32_t Join,
2905  U_FLOAT MiterLimit, U_FLOAT WidthScale);
2906 U_PSEUDO_OBJ *U_PMF_CUSTOMLINECAPDATA_set(uint32_t Flags, uint32_t Cap,
2907  U_FLOAT Inset, uint32_t StartCap, uint32_t EndCap,
2908  uint32_t Join, U_FLOAT MiterLimit, U_FLOAT WidthScale,
2909  const U_PSEUDO_OBJ *Clcod);
2912 U_PSEUDO_OBJ *U_PMF_DASHEDLINEDATA_set(int32_t Elements, const U_FLOAT *Lengths);
2916 U_PSEUDO_OBJ *U_PMF_GRAPHICSVERSION_set(int GrfVersion);
2917 U_PMF_GRAPHICSVERSION U_PMF_GRAPHICSVERSIONOBJ_set(int GrfVersion);
2918 U_PSEUDO_OBJ *U_PMF_HATCHBRUSHDATA_set(uint32_t Style, const U_PSEUDO_OBJ *Fg, const U_PSEUDO_OBJ *Bg);
2919 U_PSEUDO_OBJ *U_PMF_INTEGER7_set(int value);
2920 U_PSEUDO_OBJ *U_PMF_INTEGER15_set(int value);
2921 U_PMF_LANGUAGEIDENTIFIER U_PMF_LANGUAGEIDENTIFIEROBJ_set(int SubLId, int PriLId);
2922 U_PSEUDO_OBJ *U_PMF_LANGUAGEIDENTIFIER_set(U_PMF_LANGUAGEIDENTIFIER LId);
2924 U_PSEUDO_OBJ *U_PMF_LINEARGRADIENTBRUSHOPTIONALDATA_set(uint32_t *Flags, const U_PSEUDO_OBJ *Tm, const U_PSEUDO_OBJ *Bc, const U_PSEUDO_OBJ *BfH, const U_PSEUDO_OBJ *BfV);
2927 U_PSEUDO_OBJ *U_PMF_PALETTE_set(uint32_t Flags, uint32_t Elements, const U_PMF_ARGB *Pd);
2928 U_PSEUDO_OBJ *U_PMF_PATHGRADIENTBRUSHDATA_set(uint32_t Flags, int32_t WrapMode, U_PMF_ARGB CenterColor,
2929  U_PMF_POINTF Center, const U_PSEUDO_OBJ *Gradient, const U_PSEUDO_OBJ *Boundary, const U_PSEUDO_OBJ *Data);
2931  const U_PSEUDO_OBJ *Tm, const U_PSEUDO_OBJ *Pd, const U_PSEUDO_OBJ *Fsd);
2932 U_PSEUDO_OBJ *U_PMF_PATHPOINTTYPE_set(uint32_t Elements, const uint8_t *Ppt);
2933 U_PSEUDO_OBJ *U_PMF_PATHPOINTTYPE_set2(uint32_t Elements, uint8_t Start, uint8_t Others);
2934 U_PSEUDO_OBJ *U_PMF_PATHPOINTTYPERLE_set(uint32_t Elements, const uint8_t *Bz, const uint8_t *RL, const uint8_t *Ppte);
2935 U_PSEUDO_OBJ *U_PMF_PENDATA_set(uint32_t Unit, U_FLOAT Width, const U_PSEUDO_OBJ *Pod);
2936 U_PSEUDO_OBJ *U_PMF_PENOPTIONALDATA_set(uint32_t Flags, U_PSEUDO_OBJ *Tm, int32_t StartCap, int32_t EndCap, uint32_t Join,
2937  U_FLOAT MiterLimit, int32_t Style, int32_t DLCap, U_FLOAT DLOffset,
2938  U_PSEUDO_OBJ *DLData, int32_t PenAlignment, U_PSEUDO_OBJ *CmpndLineData, U_PSEUDO_OBJ *CSCapData,
2939  U_PSEUDO_OBJ *CECapData);
2940 U_PSEUDO_OBJ *U_PMF_POINT_set(uint32_t Elements, const U_PMF_POINT *Coords);
2941 U_PSEUDO_OBJ *U_PMF_POINTF_set(uint32_t Elements, const U_PMF_POINTF *Coords);
2942 U_PSEUDO_OBJ *U_PMF_POINTR_set(uint32_t Elements, const U_PMF_POINTF *Coords);
2943 U_PSEUDO_OBJ *U_PMF_RECT4_set(int16_t X, int16_t Y, int16_t Width, int16_t Height);
2945 U_PSEUDO_OBJ *U_PMF_RECTN_set(uint32_t Elements, U_PMF_RECT *Rects);
2948 U_PSEUDO_OBJ *U_PMF_RECTFN_set(uint32_t Elements, U_PMF_RECTF *Rects);
2949 U_PSEUDO_OBJ *U_PMF_REGIONNODE_set(int32_t Type, const U_PSEUDO_OBJ *Rnd);
2953 U_PSEUDO_OBJ *U_PMF_STRINGFORMATDATA_set(uint32_t TabStopCount, U_FLOAT *TabStops, const U_PSEUDO_OBJ *Ranges);
2954 U_PSEUDO_OBJ *U_PMF_TEXTUREBRUSHDATA_set(uint32_t Flags, uint32_t WrapMode, const U_PSEUDO_OBJ *Tbod);
2957 U_PSEUDO_OBJ *U_PMF_IE_BLUR_set(U_FLOAT Radius, uint32_t ExpandEdge);
2958 U_PSEUDO_OBJ *U_PMF_IE_BRIGHTNESSCONTRAST_set(int32_t Brightness, int32_t Contrast);
2959 U_PSEUDO_OBJ *U_PMF_IE_COLORBALANCE_set(int32_t CyanRed, int32_t MagentaGreen, int32_t YellowBlue);
2960 U_PSEUDO_OBJ *U_PMF_IE_COLORCURVE_set(uint32_t Adjust, uint32_t Channel, int32_t Intensity);
2961 U_PSEUDO_OBJ *U_PMF_IE_COLORLOOKUPTABLE_set(const uint8_t *BLUT, const uint8_t *GLUT, const uint8_t *RLUT, const uint8_t *ALUT);
2963 U_PSEUDO_OBJ *U_PMF_IE_HUESATURATIONLIGHTNESS_set(int32_t Hue, int32_t Saturation, int32_t Lightness);
2964 U_PSEUDO_OBJ *U_PMF_IE_LEVELS_set(int32_t Highlight, int32_t Midtone, int32_t Shadow);
2965 U_PSEUDO_OBJ *U_PMF_IE_REDEYECORRECTION_set(uint32_t Elements, const U_RECTL *rects);
2966 U_PSEUDO_OBJ *U_PMF_IE_SHARPEN_set(U_FLOAT Radius, int32_t Sharpen);
2967 U_PSEUDO_OBJ *U_PMF_IE_TINT_set(int32_t Hue, int32_t Amount);
2969 
2970 /* EMF+ prototypes (records_set) */
2971 
2974 U_PSEUDO_OBJ *U_PMR_SETCLIPPATH_set(uint32_t PathID, uint32_t CMenum);
2975 U_PSEUDO_OBJ *U_PMR_SETCLIPRECT_set(uint32_t CMenum, const U_PSEUDO_OBJ *Rect);
2976 U_PSEUDO_OBJ *U_PMR_SETCLIPREGION_set(uint32_t PathID, uint32_t CMenum);
2977 U_PSEUDO_OBJ *U_PMR_COMMENT_set(size_t cbData, const void *Data);
2980 U_PSEUDO_OBJ *U_PMR_HEADER_set(int IsDual, int IsVideo, const U_PSEUDO_OBJ *Version,
2981  uint32_t LogicalDpiX, uint32_t LogicalDpiY);
2983 U_PSEUDO_OBJ *U_PMR_DRAWARC_set(uint32_t PenID, U_FLOAT Start, U_FLOAT Sweep, const U_PSEUDO_OBJ *Rect);
2984 U_PSEUDO_OBJ *U_PMR_DRAWBEZIERS_set(uint32_t PenID, const U_PSEUDO_OBJ *Points);
2985 U_PSEUDO_OBJ *U_PMR_DRAWCLOSEDCURVE_set(uint32_t PenID, U_FLOAT Tension, const U_PSEUDO_OBJ *Points);
2986 U_PSEUDO_OBJ *U_PMR_DRAWCURVE_set(uint32_t PenID, U_FLOAT Tension,uint32_t Offset, uint32_t NSegs, const U_PSEUDO_OBJ *Points);
2987 U_PSEUDO_OBJ *U_PMR_DRAWDRIVERSTRING_set(uint32_t FontID, U_FLOAT Tension, const U_PSEUDO_OBJ *BrushID,
2988  uint32_t DSOFlags, uint32_t HasMatrix, uint32_t GlyphCount,
2989  const uint16_t *Glyphs, const U_PSEUDO_OBJ *Points, const U_PSEUDO_OBJ *Tm);
2990 U_PSEUDO_OBJ *U_PMR_DRAWELLIPSE_set(uint32_t PenID, const U_PSEUDO_OBJ *Rect);
2991 U_PSEUDO_OBJ *U_PMR_DRAWIMAGE_set(uint32_t ImgID, int32_t ImgAttrID, int32_t SrcUnit, const U_PSEUDO_OBJ *SrcRect, const U_PSEUDO_OBJ *DstRect);
2992 U_PSEUDO_OBJ *U_PMR_DRAWIMAGEPOINTS_set(uint32_t ImgID, int etype, int32_t ImgAttrID, int32_t SrcUnit, const U_PSEUDO_OBJ *SrcRect, const U_PSEUDO_OBJ *Points);
2993 U_PSEUDO_OBJ *U_PMR_DRAWLINES_set(uint32_t PenID, int dtype, const U_PSEUDO_OBJ *Points);
2994 U_PSEUDO_OBJ *U_PMR_DRAWPATH_set(uint32_t PathID, uint32_t PenID);
2995 U_PSEUDO_OBJ *U_PMR_DRAWPIE_set(uint32_t PenID, U_FLOAT Start, U_FLOAT Sweep, const U_PSEUDO_OBJ *Rect);
2996 U_PSEUDO_OBJ *U_PMR_DRAWRECTS_set(uint32_t PenID, const U_PSEUDO_OBJ *Rects);
2997 U_PSEUDO_OBJ *U_PMR_DRAWSTRING_set(uint32_t FontID, const U_PSEUDO_OBJ *BrushID,
2998  uint32_t FormatID, uint32_t Length, const U_PSEUDO_OBJ *Rect, const uint16_t *Text);
2999 U_PSEUDO_OBJ *U_PMR_FILLCLOSEDCURVE_set(int ftype, U_FLOAT Tension, const U_PSEUDO_OBJ * BrushID, const U_PSEUDO_OBJ *Points);
3000 U_PSEUDO_OBJ *U_PMR_FILLELLIPSE_set(const U_PSEUDO_OBJ * BrushID, const U_PSEUDO_OBJ *Rect);
3001 U_PSEUDO_OBJ *U_PMR_FILLPATH_set(uint32_t PathID, const U_PSEUDO_OBJ * BrushID);
3002 U_PSEUDO_OBJ *U_PMR_FILLPIE_set(U_FLOAT Start, U_FLOAT Sweep, const U_PSEUDO_OBJ *BrushID, const U_PSEUDO_OBJ *Rect);
3003 U_PSEUDO_OBJ *U_PMR_FILLPOLYGON_set(const U_PSEUDO_OBJ *BrushID, const U_PSEUDO_OBJ *Points);
3004 U_PSEUDO_OBJ *U_PMR_FILLRECTS_set(const U_PSEUDO_OBJ *BrushID, const U_PSEUDO_OBJ *Rects);
3005 U_PSEUDO_OBJ *U_PMR_FILLREGION_set(uint32_t RgnID, const U_PSEUDO_OBJ *BrushID);
3006 U_PSEUDO_OBJ *U_PMR_OBJECT_PO_set(uint32_t ObjID, U_PSEUDO_OBJ *Po);
3007 U_PSEUDO_OBJ *U_PMR_OBJECT_set(uint32_t ObjID, int otype, int ntype, uint32_t TSize, size_t cbData, const char *Data);
3008 U_PSEUDO_OBJ *U_PMR_SETANTIALIASMODE_set(int SMenum, int aatype);
3013 U_PSEUDO_OBJ *U_PMR_SETRENDERINGORIGIN_set(int32_t X, int32_t Y);
3016 U_PSEUDO_OBJ *U_PMR_BEGINCONTAINER_set(int UTenum, U_PSEUDO_OBJ *DstRect, U_PSEUDO_OBJ *SrcRect, uint32_t StackID);
3018 U_PSEUDO_OBJ *U_PMR_ENDCONTAINER_set(int StackID);
3019 U_PSEUDO_OBJ *U_PMR_RESTORE_set(int StackID);
3020 U_PSEUDO_OBJ *U_PMR_SAVE_set(int StackID);
3031 
3032 
3033 
3034 
3035 /* EMF+ prototypes (objects_get) */
3036 
3037 int U_PMF_BRUSH_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **Data);
3038 int U_PMF_CUSTOMLINECAP_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **Data);
3039 int U_PMF_FONT_get(const char *contents, uint32_t *Version, U_FLOAT *EmSize, uint32_t *SizeUnit, int32_t *FSFlags, uint32_t *Length, const char **Data);
3040 int U_PMF_IMAGE_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **Data);
3041 int U_PMF_IMAGEATTRIBUTES_get(const char *contents, uint32_t *Version, uint32_t *WrapMode, uint32_t *ClampColor, uint32_t *ObjectClamp);
3042 int U_PMF_PATH_get(const char *contents, uint32_t *Version, uint32_t *Count, uint16_t *Flags, const char **Points, const char **Types);
3043 int U_PMF_PEN_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **PenData, const char **Brush);
3044 int U_PMF_REGION_get(const char *contents, uint32_t *Version, uint32_t *Count, const char **Nodes);
3045 int U_PMF_STRINGFORMAT_get(const char *contents, U_PMF_STRINGFORMAT *Sfs, const char **Data);
3046 int U_PMF_ARGB_get(const char *contents, uint8_t *Blue, uint8_t *Green, uint8_t *Red, uint8_t *Alpha);
3047 int U_PMF_BITMAP_get(const char *contents, U_PMF_BITMAP *Bs, const char **Data);
3048 int U_PMF_BITMAPDATA_get(const char *contents, U_PMF_PALETTE *Ps, const char **Colors, const char **Data);
3049 int U_PMF_BLENDCOLORS_get(const char *contents, uint32_t *Elements, U_FLOAT **Positions, const char **Colors);
3050 int U_PMF_BLENDFACTORS_get(const char *contents, uint32_t *Elements, U_FLOAT **Positions, U_FLOAT **Factors);
3051 int U_PMF_BOUNDARYPATHDATA_get(const char *contents, int32_t *Size, const char **Data);
3052 int U_PMF_BOUNDARYPOINTDATA_get(const char *contents, int32_t *Elements, U_PMF_POINTF **Points);
3053 int U_PMF_CHARACTERRANGE_get(const char *contents, int32_t *First, int32_t *Length);
3054 int U_PMF_COMPOUNDLINEDATA_get(const char *contents, int32_t *Elements, U_FLOAT **Widths);
3055 int U_PMF_COMPRESSEDIMAGE_get(const char *contents, const char **Data);
3056 int U_PMF_CUSTOMENDCAPDATA_get(const char *contents, int32_t *Size, const char **Data);
3057 int U_PMF_CUSTOMLINECAPARROWDATA_get(const char *contents, U_PMF_CUSTOMLINECAPARROWDATA *Ccad);
3058 int U_PMF_CUSTOMLINECAPDATA_get(const char *contents, U_PMF_CUSTOMLINECAPDATA *Clcd, const char **Data);
3059 int U_PMF_CUSTOMLINECAPOPTIONALDATA_get(const char *contents, uint32_t Flags, const char **FillData, const char **LineData);
3060 int U_PMF_CUSTOMSTARTCAPDATA_get(const char *contents, int32_t *Size, const char **Data);
3061 int U_PMF_DASHEDLINEDATA_get(const char *contents, int32_t *Elements, U_FLOAT **Lengths);
3062 int U_PMF_FILLPATHOBJ_get(const char *contents, int32_t *Size, const char **Data);
3063 int U_PMF_FOCUSSCALEDATA_get(const char *contents, uint32_t *Count, U_FLOAT *ScaleX, U_FLOAT *ScaleY);
3064 int U_PMF_GRAPHICSVERSION_get(const char *contents, int *Signature, int *GrfVersion);
3065 int U_PMF_HATCHBRUSHDATA_get(const char *contents, uint32_t *Style, U_PMF_ARGB *Foreground, U_PMF_ARGB *Background);
3066 int U_PMF_INTEGER7_get(const char **contents, U_FLOAT *Value);
3067 int U_PMF_INTEGER15_get(const char **contents, U_FLOAT *Value);
3068 int U_PMF_LANGUAGEIDENTIFIER_get(U_PMF_LANGUAGEIDENTIFIER LId, int *SubLId, int *PriLId);
3069 int U_PMF_LINEARGRADIENTBRUSHDATA_get(const char *contents, U_PMF_LINEARGRADIENTBRUSHDATA *Lgbd, const char **Data);
3070 int U_PMF_LINEARGRADIENTBRUSHOPTIONALDATA_get(const char *contents, uint32_t Flags, U_PMF_TRANSFORMMATRIX *Tm, const char **Bc, const char **BfH, const char **BfV);
3071 int U_PMF_LINEPATH_get(const char *contents, int32_t *Size, const char **Data);
3072 int U_PMF_METAFILE_get(const char *contents, uint32_t *Type, uint32_t *Size, const char **Data);
3073 int U_PMF_PALETTE_get(const char *contents, uint32_t *Flags, uint32_t *Elements, const char **Data);
3074 int U_PMF_PATHGRADIENTBRUSHDATA_get(const char *contents, U_PMF_PATHGRADIENTBRUSHDATA *Pgbd, const char **Gradient, const char **Boundary, const char **Data);
3075 int U_PMF_PATHGRADIENTBRUSHOPTIONALDATA_get(const char *contents, uint32_t Flags, U_PMF_TRANSFORMMATRIX *Matrix, const char **Pattern, const char **Data);
3076 int U_PMF_PATHPOINTTYPE_get(const char *contents, int *Flags, int *Type);
3077 int U_PMF_PATHPOINTTYPERLE_get(const char *contents, int *Bezier, int *RL, int *Ppt);
3078 int U_PMF_PENDATA_get(const char *contents, uint32_t *Flags, uint32_t *Unit, U_FLOAT *Width, const char **Data);
3079 int U_PMF_PENOPTIONALDATA_get(const char *contents, uint32_t Flags, U_PMF_TRANSFORMMATRIX *Matrix,
3080  int32_t *StartCap, int32_t *EndCap, uint32_t *Join, U_FLOAT *MiterLimit, int32_t *Style, int32_t *DLCap, U_FLOAT *DLOffset,
3081  const char **DLData, int32_t *Alignment, const char **CmpndLineData, const char **CSCapData, const char **CECapData);
3082 int U_PMF_POINT_get(const char **contents, U_FLOAT *X, U_FLOAT *Y);
3083 int U_PMF_POINTF_get(const char **contents, U_FLOAT *X, U_FLOAT *Y);
3084 int U_PMF_POINTR_get(const char **contents, U_FLOAT *X, U_FLOAT *Y);
3085 int U_PMF_RECT_get(const char **contents, int16_t *X, int16_t *Y, int16_t *Width, int16_t *Height);
3086 int U_PMF_RECTF_get(const char **contents, U_FLOAT *X, U_FLOAT *Y, U_FLOAT *Width, U_FLOAT *Height);
3087 int U_PMF_REGIONNODE_get(const char *contents, uint32_t *Type, const char **Data);
3088 /* There is no U_PMF_REGIONNODECHILDNODES_get, see the note in upmf.c */
3089 int U_PMF_REGIONNODEPATH_get(const char *contents, int32_t *Size, const char **Data);
3090 int U_PMF_SOLIDBRUSHDATA_get(const char *contents, U_PMF_ARGB *Color);
3091 int U_PMF_STRINGFORMATDATA_get(const char *contents, uint32_t TabStopCount, uint32_t RangeCount,
3092  const U_FLOAT **TabStops, const U_PMF_CHARACTERRANGE **CharRange);
3093 int U_PMF_TEXTUREBRUSHDATA_get(const char *contents, uint32_t *Flags, int32_t *WrapMode, const char **Data);
3094 int U_PMF_TEXTUREBRUSHOPTIONALDATA_get(const char *contents, int HasImage, U_PMF_TRANSFORMMATRIX *Matrix, const char **Image);
3095 int U_PMF_TRANSFORMMATRIX_get(const char *contents, U_PMF_TRANSFORMMATRIX *Matrix);
3096 int U_PMF_IE_BLUR_get(const char *contents, U_FLOAT *Radius, uint32_t *ExpandEdge);
3097 int U_PMF_IE_BRIGHTNESSCONTRAST_get(const char *contents, int32_t *Brightness, int32_t *Contrast);
3098 int U_PMF_IE_COLORBALANCE_get(const char *contents, int32_t *CyanRed, int32_t *MagentaGreen, int32_t *YellowBlue);
3099 int U_PMF_IE_COLORCURVE_get(const char *contents, uint32_t *Adjust, uint32_t *Channel, int32_t *Intensity);
3100 int U_PMF_IE_COLORLOOKUPTABLE_get(const char *contents,
3101  const uint8_t **BLUT, const uint8_t **GLUT, const uint8_t **RLUT, const uint8_t **ALUT);
3102 int U_PMF_IE_COLORMATRIX_get(const char *contents, U_PMF_IE_COLORMATRIX *Matrix);
3103 int U_PMF_IE_HUESATURATIONLIGHTNESS_get(const char *contents, int32_t *Hue, int32_t *Saturation, int32_t *Lightness);
3104 int U_PMF_IE_LEVELS_get(const char *contents, int32_t *Highlight, int32_t *Midtone, int32_t *Shadow);
3105 int U_PMF_IE_REDEYECORRECTION_get(const char *contents, int32_t *Elements, U_RECTL **Rects);
3106 int U_PMF_IE_SHARPEN_get(const char *contents, U_FLOAT *Radius, int32_t *Sharpen);
3107 int U_PMF_IE_TINT_get(const char *contents, int32_t *Hue, int32_t *Amount);
3108 
3109 /* EMF+ prototypes (records_get) */
3110 
3111 int U_PMR_OFFSETCLIP_get(const char *contents, U_PMF_CMN_HDR *Header, U_FLOAT *dX, U_FLOAT *dY);
3112 int U_PMR_RESETCLIP_get(const char *contents, U_PMF_CMN_HDR *Header);
3113 int U_PMR_SETCLIPPATH_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PathID, int *CMenum);
3114 int U_PMR_SETCLIPRECT_get(const char *contents, U_PMF_CMN_HDR *Header, int *CMenum, U_PMF_RECTF *Rect);
3115 int U_PMR_SETCLIPREGION_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PathID, int *CMenum);
3116 int U_PMR_COMMENT_get(const char *contents, U_PMF_CMN_HDR *Header, const char **Data);
3117 int U_PMR_ENDOFFILE_get(const char *contents, U_PMF_CMN_HDR *Header);
3118 int U_PMR_GETDC_get(const char *contents, U_PMF_CMN_HDR *Header);
3119 int U_PMR_HEADER_get(const char *contents, U_PMF_CMN_HDR *Header, U_PMF_GRAPHICSVERSION *Version, int *IsDual, int *IsVideo, uint32_t *LogicalDpiX, uint32_t *LogicalDpiY);
3120 int U_PMR_CLEAR_get(const char *contents, U_PMF_CMN_HDR *Header, U_PMF_ARGB *Color);
3121 int U_PMR_DRAWARC_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PenID, int *ctype, U_FLOAT *Start, U_FLOAT *Sweep, U_PMF_RECTF *Rect);
3122 int U_PMR_DRAWBEZIERS_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PenID, int *ctype, int *RelAbs, uint32_t *Elements, U_PMF_POINTF **Points);
3123 int U_PMR_DRAWCLOSEDCURVE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PenID, int *ctype, int *RelAbs, U_FLOAT *Tension, uint32_t *Elements, U_PMF_POINTF **Points);
3124 int U_PMR_DRAWCURVE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PenID, int *ctype, U_FLOAT *Tension, uint32_t *Offset, uint32_t *NSegs, uint32_t *Elements, U_PMF_POINTF **Points);
3125 int U_PMR_DRAWDRIVERSTRING_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *FontID, int *btype, U_FLOAT *Tension, uint32_t *BrushID, uint32_t *DSOFlags, uint32_t *HasMatrix, uint32_t *Elements, uint16_t **Glyphs, U_PMF_POINTF **Points, U_PMF_TRANSFORMMATRIX **Matrix);
3126 int U_PMR_DRAWELLIPSE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PenID, int *ctype, U_PMF_RECTF *Rect);
3127 int U_PMR_DRAWIMAGE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *ImgID, int *ctype, uint32_t *ImgAttrID, int32_t *SrcUnit, U_PMF_RECTF *SrcRect, U_PMF_RECTF *DstRect);
3128 int U_PMR_DRAWIMAGEPOINTS_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *ImgID, int *ctype, int *etype, int *RelAbs, uint32_t *ImgAttrID, int32_t *SrcUnit, U_PMF_RECTF *SrcRect, uint32_t *Elements, U_PMF_POINTF **Points);
3129 int U_PMR_DRAWLINES_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PenID, int *ctype, int *dtype, int *RelAbs, uint32_t *Elements, U_PMF_POINTF **Points);
3130 int U_PMR_DRAWPATH_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PathID, uint32_t *PenID);
3131 int U_PMR_DRAWPIE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PenID, int *ctype, U_FLOAT *Start, U_FLOAT *Sweep, U_PMF_RECTF *Rect);
3132 int U_PMR_DRAWRECTS_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PenID, int *ctype, uint32_t *Elements, U_PMF_RECTF **Rects);
3133 int U_PMR_DRAWSTRING_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *FontID, int *btype, uint32_t *BrushID, uint32_t *FormatID, uint32_t *Elements, U_PMF_RECTF *Rect, uint16_t **String);
3134 int U_PMR_FILLCLOSEDCURVE_get(const char *contents, U_PMF_CMN_HDR *Header, int *btype, int *ctype, int *ftype, int *RelAbs, uint32_t *BrushID, U_FLOAT *Tension, uint32_t *Elements, U_PMF_POINTF **Points);
3135 int U_PMR_FILLELLIPSE_get(const char *contents, U_PMF_CMN_HDR *Header, int *btype, int *ctype, uint32_t *BrushID, U_PMF_RECTF *Rect);
3136 int U_PMR_FILLPATH_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PathID, int *btype, uint32_t *BrushID);
3137 int U_PMR_FILLPIE_get(const char *contents, U_PMF_CMN_HDR *Header, int *btype, int *ctype, uint32_t *BrushID, U_FLOAT *Start, U_FLOAT *Sweep, U_PMF_RECTF *Rect);
3138 int U_PMR_FILLPOLYGON_get(const char *contents, U_PMF_CMN_HDR *Header, int *btype, int *ctype, int *RelAbs, uint32_t *BrushID, uint32_t *Elements, U_PMF_POINTF **Points);
3139 int U_PMR_FILLRECTS_get(const char *contents, U_PMF_CMN_HDR *Header, int *btype, int *ctype, uint32_t *BrushID, uint32_t *Elements, U_PMF_RECTF **Rects);
3140 int U_PMR_FILLREGION_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *RgnID, int *btype, int *ctype, uint32_t *BrushID);
3141 int U_PMR_OBJECT_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *ObjID, int *otype, int *ntype, uint32_t *TSize, const char **Data);
3142 int U_PMR_SERIALIZABLEOBJECT_get(const char *contents, U_PMF_CMN_HDR *Header, uint8_t *GUID, uint32_t *Size, const char **Data);
3143 int U_PMR_SETANTIALIASMODE_get(const char *contents, U_PMF_CMN_HDR *Header, int *SMenum, int *aatype);
3144 int U_PMR_SETCOMPOSITINGMODE_get(const char *contents, U_PMF_CMN_HDR *Header, int *CMenum);
3145 int U_PMR_SETCOMPOSITINGQUALITY_get(const char *contents, U_PMF_CMN_HDR *Header, int *CQenum);
3146 int U_PMR_SETINTERPOLATIONMODE_get(const char *contents, U_PMF_CMN_HDR *Header, int *IMenum);
3147 int U_PMR_SETPIXELOFFSETMODE_get(const char *contents, U_PMF_CMN_HDR *Header, int *POMenum);
3148 int U_PMR_SETRENDERINGORIGIN_get(const char *contents, U_PMF_CMN_HDR *Header, int32_t *X, int32_t *Y);
3149 int U_PMR_SETTEXTCONTRAST_get(const char *contents, U_PMF_CMN_HDR *Header, int *TGC);
3150 int U_PMR_SETTEXTRENDERINGHINT_get(const char *contents, U_PMF_CMN_HDR *Header, int *TRHenum);
3151 int U_PMR_BEGINCONTAINER_get(const char *contents, U_PMF_CMN_HDR *Header, int *UTenum, U_PMF_RECTF *DstRect, U_PMF_RECTF *SrcRect, uint32_t *StackID);
3152 int U_PMR_BEGINCONTAINERNOPARAMS_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *StackID);
3153 int U_PMR_ENDCONTAINER_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *StackID);
3154 int U_PMR_RESTORE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *StackID);
3155 int U_PMR_SAVE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *StackID);
3156 int U_PMR_SETTSCLIP_get(const char *contents, U_PMF_CMN_HDR *Header, int *ctype, uint32_t *Elements, U_PMF_RECTF **Rects);
3157 int U_PMR_SETTSGRAPHICS_get(const char *contents, U_PMF_CMN_HDR *Header, int *vgatype, int *pptype, uint8_t *AntiAliasMode, uint8_t *TextRenderHint, uint8_t *CompositingMode, uint8_t *CompositingQuality, int16_t *RenderOriginX, int16_t *RenderOriginY, uint16_t *TextContrast, uint8_t *FilterType, uint8_t *PixelOffset, U_PMF_TRANSFORMMATRIX *WorldToDevice, const char **Data);
3158 int U_PMR_MULTIPLYWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header, int *xmtype, U_PMF_TRANSFORMMATRIX *Matrix);
3159 int U_PMR_RESETWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header);
3160 int U_PMR_ROTATEWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header, int *xmtype, U_FLOAT *Angle);
3161 int U_PMR_SCALEWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header, int *xmtype, U_FLOAT *Sx, U_FLOAT *Sy);
3162 int U_PMR_SETPAGETRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header, int *PUenum, U_FLOAT *Scale);
3163 int U_PMR_SETWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header, U_PMF_TRANSFORMMATRIX *Matrix);
3164 int U_PMR_TRANSLATEWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header, int *xmtype, U_FLOAT *Dx, U_FLOAT *Dy);
3165 int U_PMR_STROKEFILLPATH_get(const char *contents, U_PMF_CMN_HDR *Header);
3166 int U_PMR_MULTIFORMATSTART_get(const char *contents, U_PMF_CMN_HDR *Header);
3167 int U_PMR_MULTIFORMATSECTION_get(const char *contents, U_PMF_CMN_HDR *Header);
3168 int U_PMR_MULTIFORMATEND_get(const char *contents, U_PMF_CMN_HDR *Header);
3170 
3171 
3172 #ifdef __cplusplus
3173 }
3174 #endif
3175 
3176 #endif /* _UPMF_ */
int U_PMF_RECTF_get(const char **contents, U_FLOAT *X, U_FLOAT *Y, U_FLOAT *Width, U_FLOAT *Height)
Get data from a U_PMF_RECTF object.
Definition: upmf.c:6279
U_PMF_LANGUAGEIDENTIFIER U_PMF_LANGUAGEIDENTIFIEROBJ_set(int SubLId, int PriLId)
Create and set a U_PMF_LANGUAGEIDENTIFIER value in 4 byte unsigned int, in NATIVE byte order...
Definition: upmf.c:2545
int U_PMR_DRAWARC_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PenID, int *ctype, U_FLOAT *Start, U_FLOAT *Sweep, U_PMF_RECTF *Rect)
Get data from a U_PMR_DRAWARC record.
Definition: upmf.c:6842
int U_PMF_FILLPATHOBJ_get(const char *contents, int32_t *Size, const char **Data)
Get data from a U_PMF_FILLPATHOBJ object.
Definition: upmf.c:5752
int U_PMR_SERIALIZABLEOBJECT_get(const char *contents, U_PMF_CMN_HDR *Header, uint8_t *GUID, uint32_t *Size, const char **Data)
Get data from a U_PMR_SERIALIZABLEOBJECT record.
Definition: upmf.c:7486
int U_PATH_polylineto(U_DPSEUDO_OBJ *Path, uint32_t Elements, const U_PMF_POINTF *Points, uint8_t Flags, uint8_t StartSeg)
Append a &quot;polylineto&quot; set of point to a path.
Definition: upmf.c:808
uint32_t U_PMF_GRAPHICSVERSION
EMF+ manual 2.2.2.19, Microsoft name: EmfPlusGraphicsVersion Object.
Definition: upmf.h:1722
U_PSEUDO_OBJ * U_PMF_LANGUAGEIDENTIFIER_set(U_PMF_LANGUAGEIDENTIFIER LId)
Create and set a U_PMF_LANGUAGEIDENTIFIER PseudoObject.
Definition: upmf.c:2558
U_PSEUDO_OBJ * U_PMR_drawfill(uint32_t PathID, uint32_t PenID, const U_PSEUDO_OBJ *BrushID)
Create a U_PSEUDO_OBJ containing a U_PMR_FILLPATH and U_PMR_DRAWPATH records.
Definition: upmf.c:1110
int U_PMR_SETPIXELOFFSETMODE_get(const char *contents, U_PMF_CMN_HDR *Header, int *POMenum)
Get data from a U_PMR_SETPIXELOFFSETMODE record.
Definition: upmf.c:7580
U_PSEUDO_OBJ * U_PMR_GETDC_set(void)
Create and set a U_PMR_GETDC PseudoObject.
Definition: upmf.c:3770
U_PSEUDO_OBJ * U_PMF_BLENDCOLORS_linear_set(uint32_t Elements, U_PMF_ARGB StartColor, U_PMF_ARGB EndColor)
Create and set a U_PMF_BLENDCOLORS PseudoObject.
Definition: upmf.c:1980
U_PSEUDO_OBJ * U_PMR_DRAWPATH_set(uint32_t PathID, uint32_t PenID)
Create and set a U_PMR_DRAWPATH PseudoObject.
Definition: upmf.c:4214
U_PSEUDO_OBJ * U_PMF_PENOPTIONALDATA_set(uint32_t Flags, U_PSEUDO_OBJ *Tm, int32_t StartCap, int32_t EndCap, uint32_t Join, U_FLOAT MiterLimit, int32_t Style, int32_t DLCap, U_FLOAT DLOffset, U_PSEUDO_OBJ *DLData, int32_t PenAlignment, U_PSEUDO_OBJ *CmpndLineData, U_PSEUDO_OBJ *CSCapData, U_PSEUDO_OBJ *CECapData)
Create and set a U_PMF_PENOPTIONALDATA PseudoObject.
Definition: upmf.c:2869
int U_DPO_free(U_DPSEUDO_OBJ **dpo)
Free U_DPSEUDO_OBJ&#39;s.
Definition: upmf.c:708
U_PSEUDO_OBJ * U_PMR_FILLREGION_set(uint32_t RgnID, const U_PSEUDO_OBJ *BrushID)
Create and set a U_PMR_FILLREGION PseudoObject.
Definition: upmf.c:4593
int U_PMF_POINTF_get(const char **contents, U_FLOAT *X, U_FLOAT *Y)
Get data from a U_PMF_POINTF object.
Definition: upmf.c:6182
U_PSEUDO_OBJ * U_PMF_TRANSFORMMATRIX_set(U_PMF_TRANSFORMMATRIX *Tm)
Create and set a U_PMF_TRANSFORMMATRIX PseudoObject.
Definition: upmf.c:3300
U_PSEUDO_OBJ * U_PMR_STROKEFILLPATH_set(void)
Create and set a U_PMR_STROKEFILLPATH PseudoObject.
Definition: upmf.c:3583
U_PSEUDO_OBJ * U_PMR_DRAWDRIVERSTRING_set(uint32_t FontID, U_FLOAT Tension, const U_PSEUDO_OBJ *BrushID, uint32_t DSOFlags, uint32_t HasMatrix, uint32_t GlyphCount, const uint16_t *Glyphs, const U_PSEUDO_OBJ *Points, const U_PSEUDO_OBJ *Tm)
Create and set a U_PMR_DRAWDRIVERSTRING PseudoObject.
Definition: upmf.c:4015
U_PMF_POINTF * pointfs_transform(U_PMF_POINTF *points, int count, U_XFORM xform)
Allocate and construct an array of U_PMF_POINTF objects which have been subjected to a U_XFORM...
Definition: upmf.c:1008
U_PSEUDO_OBJ * U_PMR_CLEAR_set(const U_PSEUDO_OBJ *Color)
Create and set a U_PMR_CLEAR PseudoObject.
Definition: upmf.c:3825
EMF+ manual 2.3.7.5, Microsoft name: EmfPlusSave Record, Index 0x25.
Definition: upmf.h:2701
U_PSEUDO_OBJ * U_PMR_ENDOFFILE_set(void)
Create and set a U_PMR_ENDOFFILE PseudoObject.
Definition: upmf.c:3751
int U_PMR_DRAWRECTS_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PenID, int *ctype, uint32_t *Elements, U_PMF_RECTF **Rects)
Get data from a U_PMR_DRAWRECTS record.
Definition: upmf.c:7168
EMF+ manual 2.3.3.2, Microsoft name: EmfPlusGetDC Record, Index 0x04.
Definition: upmf.h:2171
EMF+ manual 2.3.9.4, Microsoft name: EmfPlusScaleWorldTransform Record, Index 0x2E Construct transfor...
Definition: upmf.h:2784
int U_PMR_STROKEFILLPATH_get(const char *contents, U_PMF_CMN_HDR *Header)
Get data from a U_PMR_STROKEFILLPATH record.
Definition: upmf.c:7957
EMF+ manual 2.2.2.26, Microsoft name: EmfPlusLinePath Object.
Definition: upmf.h:1825
EMF+ manual 2.3.4.7, Microsoft name: EmfPlusDrawEllipse Record, Index 0x0F.
Definition: upmf.h:2315
U_PSEUDO_OBJ * U_PMR_DRAWARC_set(uint32_t PenID, U_FLOAT Start, U_FLOAT Sweep, const U_PSEUDO_OBJ *Rect)
Create and set a U_PMR_DRAWARC PseudoObject.
Definition: upmf.c:3850
U_PSEUDO_OBJ * U_PMR_DRAWBEZIERS_set(uint32_t PenID, const U_PSEUDO_OBJ *Points)
Create and set a U_PMR_DRAWBEZIERS PseudoObject.
Definition: upmf.c:3883
U_PSEUDO_OBJ * U_PMR_FILLCLOSEDCURVE_set(int ftype, U_FLOAT Tension, const U_PSEUDO_OBJ *BrushID, const U_PSEUDO_OBJ *Points)
Create and set a U_PMR_FILLCLOSEDCURVE PseudoObject.
Definition: upmf.c:4358
char * U_pmr_names(unsigned int idx)
Look up the name of the EMR+ record by type. Returns U_EMR_INVALID if out of range.
Definition: upmf.c:274
U_PSEUDO_OBJ * U_PMF_LINEPATH_set(const U_PSEUDO_OBJ *Path)
Create and set a U_PMF_LINEPATH PseudoObject.
Definition: upmf.c:2640
int U_PMF_BLENDCOLORS_get(const char *contents, uint32_t *Elements, U_FLOAT **Positions, const char **Colors)
Get data from a U_PMF_BLENDCOLORS object.
Definition: upmf.c:5519
EMF+ manual 2.2.2.20, Microsoft name: EmfPlusHatchBrushData Object.
Definition: upmf.h:1726
U_PSEUDO_OBJ * U_PMF_LINEARGRADIENTBRUSHOPTIONALDATA_set(uint32_t *Flags, const U_PSEUDO_OBJ *Tm, const U_PSEUDO_OBJ *Bc, const U_PSEUDO_OBJ *BfH, const U_PSEUDO_OBJ *BfV)
Create and set a U_PMF_LINEARGRADIENTBRUSHOPTIONALDATA PseudoObject.
Definition: upmf.c:2609
U_PSEUDO_OBJ * U_PMF_FOCUSSCALEDATA_set(U_FLOAT ScaleX, U_FLOAT ScaleY)
Create and set a U_PMF_FOCUSSCALEDATA PseudoObject.
Definition: upmf.c:2435
EMF+ manual 2.3.3.3, Microsoft name: EmfPlusHeader Record, Index 0x01.
Definition: upmf.h:2180
EMF+ manual 2.3.4.12, Microsoft name: EmfPlusDrawPie Record, Index 0x0D.
Definition: upmf.h:2406
U_PSEUDO_OBJ * U_PMR_RESETCLIP_set(void)
Create and set a U_PMR_RESETCLIP PseudoObject.
Definition: upmf.c:3626
U_PSEUDO_OBJ * U_PMR_SETINTERPOLATIONMODE_set(int IMenum)
Create and set a U_PMR_SETINTERPOLATIONMODE PseudoObject.
Definition: upmf.c:4799
int U_PMF_SOLIDBRUSHDATA_get(const char *contents, U_PMF_ARGB *Color)
Get data from a U_PMF_SOLIDBRUSHDATA object.
Definition: upmf.c:6378
U_PSEUDO_OBJ * U_PMR_OBJECT_set(uint32_t ObjID, int otype, int ntype, uint32_t TSize, size_t cbData, const char *Data)
Create and set a U_PMR_OBJECT PseudoObject.
Definition: upmf.c:4652
U_PSEUDO_OBJ * U_PMF_LINEARGRADIENTBRUSHDATA_set(const U_PMF_LINEARGRADIENTBRUSHDATA *Lgbd, const U_PSEUDO_OBJ *Lgbod)
Create and set a U_PMF_LINEARGRADIENTBRUSHDATA PseudoObject.
Definition: upmf.c:2578
EMF+ manual 2.2.2.7, Microsoft name: EmfPlusBoundaryPointData Object.
Definition: upmf.h:1591
U_PSEUDO_OBJ * U_PMF_BLENDFACTORS_set(uint32_t Elements, const U_FLOAT *Positions, const U_FLOAT *Factors)
Create and set a U_PMF_BLENDFACTORS PseudoObject.
Definition: upmf.c:2034
U_PSEUDO_OBJ * U_PO_append(U_PSEUDO_OBJ *po, const char *Data, size_t Size)
Append data to a U_PSEUDO_OBJ object and return it.
Definition: upmf.c:532
int U_PMR_ROTATEWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header, int *xmtype, U_FLOAT *Angle)
Get data from a U_PMR_ROTATEWORLDTRANSFORM record.
Definition: upmf.c:7850
EMF+ manual 2.3.6.6, Microsoft name: EmfPlusSetRenderingOrigin Record, Index 0x1D.
Definition: upmf.h:2645
EMF+ manual 2.2.2.12, Microsoft name: EmfPlusCustomLineCapArrowData Object.
Definition: upmf.h:1633
U_PSEUDO_OBJ * U_PMR_SETCLIPRECT_set(uint32_t CMenum, const U_PSEUDO_OBJ *Rect)
Create and set a U_PMR_SETCLIPRECT PseudoObject.
Definition: upmf.c:3670
EMF+ manual 2.2.1.1, Microsoft name: EmfPlusBrush Object.
Definition: upmf.h:1386
uint8_t * U_OID_To_GUID(uint32_t OID)
Generate the 16 byte form from OID of the ImageEffects Identifier.
Definition: upmf.c:1344
U_PSEUDO_OBJ * U_PMF_REGIONNODE_set(int32_t Type, const U_PSEUDO_OBJ *Rnd)
Create and set a U_PMF_REGIONNODE PseudoObject.
Definition: upmf.c:3128
void U_PMR_write(U_PSEUDO_OBJ *po, U_PSEUDO_OBJ *sum, EMFTRACK *et)
Utility function for writing one or more EMF+ records in a PseudoObject to the EMF output file...
Definition: upmf.c:84
int U_PMR_FILLCLOSEDCURVE_get(const char *contents, U_PMF_CMN_HDR *Header, int *btype, int *ctype, int *ftype, int *RelAbs, uint32_t *BrushID, U_FLOAT *Tension, uint32_t *Elements, U_PMF_POINTF **Points)
Get data from a U_PMR_FILLCLOSEDCURVE record.
Definition: upmf.c:7230
U_PSEUDO_OBJ * U_PMF_IE_COLORCURVE_set(uint32_t Adjust, uint32_t Channel, int32_t Intensity)
Create and set a U_PMF_IE_COLORCURVE PseudoObject.
Definition: upmf.c:3383
EMF+ manual 2.2.2.45, Microsoft name: EmfPlusTextureBrushData Object.
Definition: upmf.h:1999
EMF+ manual 2.2.2.43, Microsoft name: EmfPlusSolidBrushData Object For U_PMF_BRUSH data field (one ty...
Definition: upmf.h:1988
int U_PMR_SAVE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *StackID)
Get data from a U_PMR_SAVE record.
Definition: upmf.c:7727
void U_PMF_REPCPY_DSTSHIFT(char **Dst, const void *Src, size_t Size, size_t Reps)
Copy the single instance at Src repeatedly to Dst.
Definition: upmf.c:1390
U_PSEUDO_OBJ * U_PMR_FILLPIE_set(U_FLOAT Start, U_FLOAT Sweep, const U_PSEUDO_OBJ *BrushID, const U_PSEUDO_OBJ *Rect)
Create and set a U_PMR_FILLPIE PseudoObject.
Definition: upmf.c:4472
U_PSEUDO_OBJ * U_PO_po_append(U_PSEUDO_OBJ *po, U_PSEUDO_OBJ *Src, int StripE)
Append data to a U_PSEUDO_OBJ object and return it.
Definition: upmf.c:559
U_PSEUDO_OBJ * U_PMF_IE_SHARPEN_set(U_FLOAT Radius, int32_t Sharpen)
Create and set a U_PMF_IE_SHARPEN PseudoObject.
Definition: upmf.c:3515
EMF+ manual 2.3.7.2, Microsoft name: EmfPlusBeginContainerNoParams Record, Index 0x28.
Definition: upmf.h:2683
int U_PMR_FILLELLIPSE_get(const char *contents, U_PMF_CMN_HDR *Header, int *btype, int *ctype, uint32_t *BrushID, U_PMF_RECTF *Rect)
Get data from a U_PMR_FILLELLIPSE record.
Definition: upmf.c:7260
U_PSEUDO_OBJ * U_PMF_PATH_set(uint32_t Version, const U_PSEUDO_OBJ *Points, const U_PSEUDO_OBJ *Types)
Create and set a U_PMF_PATH PseudoObject.
Definition: upmf.c:1652
U_PSEUDO_OBJ * U_PMR_DRAWCURVE_set(uint32_t PenID, U_FLOAT Tension, uint32_t Offset, uint32_t NSegs, const U_PSEUDO_OBJ *Points)
Create and set a U_PMR_DRAWCURVE PseudoObject.
Definition: upmf.c:3971
U_PSEUDO_OBJ * U_PMR_DRAWRECTS_set(uint32_t PenID, const U_PSEUDO_OBJ *Rects)
Create and set a U_PMR_DRAWRECTS PseudoObject.
Definition: upmf.c:4275
EMF+ manual 2.3.7.4, Microsoft name: EmfPlusRestore Record, Index 0x26.
Definition: upmf.h:2695
void U_PMF_MEMCPY_SRCSHIFT(void *Dst, const char **Src, size_t Size)
copy data and shift source pointer by the amount of data moved
Definition: upmf.c:1366
EMF+ manual 2.2.2.9, Microsoft name: EmfPlusCompoundLineData Object Compound lines are pens that draw...
Definition: upmf.h:1609
EMF+ manual 2.3.4.10, Microsoft name: EmfPlusDrawLines Record, Index 0x0D.
Definition: upmf.h:2381
U_PSEUDO_OBJ * U_PMF_REGION_set(uint32_t Version, uint32_t Count, const U_PSEUDO_OBJ *Nodes)
Create and set a U_PMF_REGION PseudoObject.
Definition: upmf.c:1776
int U_PMF_CUSTOMSTARTCAPDATA_get(const char *contents, int32_t *Size, const char **Data)
Get data from a U_PMF_CUSTOMSTARTCAPDATA object.
Definition: upmf.c:5718
int U_PMF_LINEPATH_get(const char *contents, int32_t *Size, const char **Data)
Get data from a U_PMF_LINEPATH object.
Definition: upmf.c:5943
int U_PMF_IMAGE_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **Data)
Get data from a U_PMF_IMAGE object.
Definition: upmf.c:5341
int U_PATH_polygon(U_DPSEUDO_OBJ *Path, uint32_t Elements, const U_PMF_POINTF *Points, uint8_t Flags)
Append a &quot;polygon&quot; set of points to a path.
Definition: upmf.c:878
EMF+ manual 2.2.2.38, Microsoft name: EmfPlusRect Object.
Definition: upmf.h:1959
int U_PMF_PATHGRADIENTBRUSHOPTIONALDATA_get(const char *contents, uint32_t Flags, U_PMF_TRANSFORMMATRIX *Matrix, const char **Pattern, const char **Data)
Get data from a U_PMF_PATHGRADIENTBRUSHOPTIONALDATA object.
Definition: upmf.c:6024
EMF+ manual 2.2.2.29, Microsoft name: EmfPlusPathGradientBrushData Object.
Definition: upmf.h:1857
U_PSEUDO_OBJ * U_PMF_POINTR_set(uint32_t Elements, const U_PMF_POINTF *Coords)
Create and set an ARRAY of U_PMF_POINTR objects.
Definition: upmf.c:2949
EMF+ manual 2.3.4.14, Microsoft name: EmfPlusDrawString Record, Index 0x1C.
Definition: upmf.h:2437
uint32_t U_PMF_LANGUAGEIDENTIFIER
EMF+ manual 2.2.2.23, Microsoft name: EmfPlusLanguageIdentifier Object, out of order, needed for 2.2.1.9.
Definition: upmf.h:1511
int U_PMF_CUSTOMLINECAPARROWDATA_get(const char *contents, U_PMF_CUSTOMLINECAPARROWDATA *Ccad)
Get data from a U_PMF_CUSTOMLINECAPARROWDATA object.
Definition: upmf.c:5655
U_PSEUDO_OBJ * U_PMR_FILLRECTS_set(const U_PSEUDO_OBJ *BrushID, const U_PSEUDO_OBJ *Rects)
Create and set a U_PMR_FILLRECTS PseudoObject.
Definition: upmf.c:4551
EMF+ manual 2.3.4.13, Microsoft name: EmfPlusDrawRects Record, Index 0x0B.
Definition: upmf.h:2422
EMF+ manual 2.3.5.2, Microsoft name: EmfPlusSerializableObject Record, Index 0x38.
Definition: upmf.h:2587
U_PSEUDO_OBJ * U_PMF_GRAPHICSVERSION_set(int GrfVersion)
Create and set a U_PMF_GRAPHICSVERSION object (Signature always set to 0xDBC01)
Definition: upmf.c:2454
U_PSEUDO_OBJ * U_PMR_FILLPOLYGON_set(const U_PSEUDO_OBJ *BrushID, const U_PSEUDO_OBJ *Points)
Create and set a U_PMR_FILLPOLYGON PseudoObject.
Definition: upmf.c:4512
EMF+ manual 2.2.2.6, Microsoft name: EmfPlusBoundaryPathData Object.
Definition: upmf.h:1583
int U_PMR_SETINTERPOLATIONMODE_get(const char *contents, U_PMF_CMN_HDR *Header, int *IMenum)
Get data from a U_PMR_SETINTERPOLATIONMODE record.
Definition: upmf.c:7562
int U_PMR_RESETWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header)
Get data from a U_PMR_RESETWORLDTRANSFORM record.
Definition: upmf.c:7834
int U_PMF_LEN_REL715(const char *contents, int Elements)
Calculate the length in bytes of a relative path object composed of U_PMF_INTEGER7 and U_PMF_INTER15 ...
Definition: upmf.c:1200
int U_PMR_HEADER_get(const char *contents, U_PMF_CMN_HDR *Header, U_PMF_GRAPHICSVERSION *Version, int *IsDual, int *IsVideo, uint32_t *LogicalDpiX, uint32_t *LogicalDpiY)
Get data from a U_PMR_HEADER record.
Definition: upmf.c:6797
int U_PATH_moveto(U_DPSEUDO_OBJ *Path, U_PMF_POINTF Point, uint8_t Flags)
Append a &quot;moveto&quot; point to a path.
Definition: upmf.c:740
int U_PMF_LEN_PENDATA(const char *PenData)
Return the size of a PenData object from an EMF+ record.
Definition: upmf.c:1488
EMF+ manual 2.2.1.4, Microsoft name: EmfPlusImage Object.
Definition: upmf.h:1418
EMF+ manual 2.2.2.18, Microsoft name: EmfPlusFocusScaleData Object for U_PMF_PATHGRADIENTBRUSHOPTIONA...
Definition: upmf.h:1708
int U_PMR_OFFSETCLIP_get(const char *contents, U_PMF_CMN_HDR *Header, U_FLOAT *dX, U_FLOAT *dY)
Get data from a U_PMR_OFFSETCLIP record.
Definition: upmf.c:6655
EMF+ manual 2.3.6.5, Microsoft name: EmfPlusSetPixelOffsetMode Record, Index 0x22.
Definition: upmf.h:2640
int U_PMF_DASHEDLINEDATA_get(const char *contents, int32_t *Elements, U_FLOAT **Lengths)
Get data from a U_PMF_DASHEDLINEDATA object.
Definition: upmf.c:5734
U_PSEUDO_OBJ * U_PMF_IE_COLORBALANCE_set(int32_t CyanRed, int32_t MagentaGreen, int32_t YellowBlue)
Create and set a U_PMF_IE_COLORBALANCE PseudoObject.
Definition: upmf.c:3361
U_PSEUDO_OBJ * U_PMF_REGIONNODEPATH_set(const U_PSEUDO_OBJ *Path)
Create and set a U_PMF_REGIONNODEPATH PseudoObject.
Definition: upmf.c:3190
U_PSEUDO_OBJ * U_PMF_RECT4_set(int16_t X, int16_t Y, int16_t Width, int16_t Height)
Create and set a U_PMF_RECT object.
Definition: upmf.c:3007
EMF+ manual 2.2.2.27, Microsoft name: EmfPlusMetafile Object.
Definition: upmf.h:1833
int U_PMF_RECT_get(const char **contents, int16_t *X, int16_t *Y, int16_t *Width, int16_t *Height)
Get data from a U_PMF_RECT object.
Definition: upmf.c:6259
EMF+ manual 2.3.9.5, Microsoft name: EmfPlusSetPageTransform Record, Index 0x30 flags (LITTLE endian ...
Definition: upmf.h:2794
int U_PMF_CUSTOMLINECAP_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **Data)
Get data from a U_PMF_CUSTOMLINECAP object.
Definition: upmf.c:5296
EMF+ manual 2.3.7.3, Microsoft name: EmfPlusEndContainer Record, Index 0x29.
Definition: upmf.h:2689
EMF+ manual 2.3.6.3, Microsoft name: EmfPlusSetCompositingQuality Record, Index 0x24.
Definition: upmf.h:2622
U_PSEUDO_OBJ * U_PMR_DRAWCLOSEDCURVE_set(uint32_t PenID, U_FLOAT Tension, const U_PSEUDO_OBJ *Points)
Create and set a U_PMR_DRAWCLOSEDCURVE PseudoObject.
Definition: upmf.c:3926
int U_OA_release(U_OBJ_ACCUM *oa)
Release an U_OBJ_ACCUM structure. Accumulated storage is free&#39;d.
Definition: upmf.c:480
U_PSEUDO_OBJ * U_PMF_TEXTUREBRUSHDATA_set(uint32_t Flags, uint32_t WrapMode, const U_PSEUDO_OBJ *Tbod)
Create and set a U_PMF_TEXTUREBRUSHDATA PseudoObject.
Definition: upmf.c:3255
U_PSEUDO_OBJ * U_PMF_POINT_set(uint32_t Elements, const U_PMF_POINT *Coords)
Create and set an ARRAY of U_PMF_POINT objects.
Definition: upmf.c:2911
int U_PMR_RESTORE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *StackID)
Get data from a U_PMR_RESTORE record.
Definition: upmf.c:7711
int U_PMR_SETANTIALIASMODE_get(const char *contents, U_PMF_CMN_HDR *Header, int *SMenum, int *aatype)
Get data from a U_PMR_SETANTIALIASMODE record.
Definition: upmf.c:7507
EMF+ manual 2.2.2.25, Microsoft name: EmfPlusLinearGradientBrushOptionalData Object For U_PMF_LINEARG...
Definition: upmf.h:1809
U_PSEUDO_OBJ * U_PMF_DASHEDLINEDATA_set(int32_t Elements, const U_FLOAT *Lengths)
Create and set a U_PMF_DASHEDLINEDATA PseudoObject.
Definition: upmf.c:2325
EMF+ manual 2.3.4.15, Microsoft name: EmfPlusFillClosedCurve Record, Index 0x16.
Definition: upmf.h:2462
int U_PMF_IE_LEVELS_get(const char *contents, int32_t *Highlight, int32_t *Midtone, int32_t *Shadow)
Get data from a U_PMF_IE_LEVELS object.
Definition: upmf.c:6587
EMF+ manual 2.3.5.1, Microsoft name: EmfPlusObject Record, Index 0x13.
Definition: upmf.h:2573
EMF+ manual 2.2.3.1, Microsoft name: BlurEffect Object.
Definition: upmf.h:2030
U_PSEUDO_OBJ * U_PMF_STRINGFORMAT_set(U_PMF_STRINGFORMAT *Sfs, const U_PSEUDO_OBJ *Sfd)
Create and set a U_PMF_STRINGFORMAT PseudoObject.
Definition: upmf.c:1796
int U_PMR_DRAWCURVE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PenID, int *ctype, U_FLOAT *Tension, uint32_t *Offset, uint32_t *NSegs, uint32_t *Elements, U_PMF_POINTF **Points)
Get data from a U_PMR_DRAWCURVE record.
Definition: upmf.c:6930
U_PSEUDO_OBJ * U_PMF_PATHGRADIENTBRUSHOPTIONALDATA_set(uint32_t Flags, const U_PSEUDO_OBJ *Tm, const U_PSEUDO_OBJ *Pd, const U_PSEUDO_OBJ *Fsd)
Create and set a U_PMF_PATHGRADIENTBRUSHOPTIONALDATA PseudoObject.
Definition: upmf.c:2731
U_PSEUDO_OBJ * U_PMR_SETCLIPPATH_set(uint32_t PathID, uint32_t CMenum)
Create and set a U_PMR_SETCLIPPATH PseudoObject.
Definition: upmf.c:3647
EMF+ manual 2.3.4.9, Microsoft name: EmfPlusDrawImagePoints Record, Index 0x1B.
Definition: upmf.h:2356
void U_PMF_MEMCPY_DSTSHIFT(char **Dst, const void *Src, size_t Size)
copy data and shift destination pointer by the amount of data moved
Definition: upmf.c:1377
int U_PMF_PATH_get(const char *contents, uint32_t *Version, uint32_t *Count, uint16_t *Flags, const char **Points, const char **Types)
Get data from a U_PMF_PATH object.
Definition: upmf.c:5383
U_PSEUDO_OBJ * U_PMF_METAFILE_set(void)
Create and set a U_PMF_METAFILE object (NOT SUPPORTED!)
Definition: upmf.c:2657
EMF+ manual 2.3.4.1, Microsoft name: EmfPlusClear Record, Index 0x09.
Definition: upmf.h:2189
U_PSEUDO_OBJ * U_PMR_FILLELLIPSE_set(const U_PSEUDO_OBJ *BrushID, const U_PSEUDO_OBJ *Rect)
Create and set a U_PMR_FILLELLIPSE PseudoObject.
Definition: upmf.c:4399
U_PSEUDO_OBJ * U_PMF_IMAGEATTRIBUTES_set(uint32_t Version, uint32_t WrapMode, uint32_t ClampColor, uint32_t ObjectClamp)
Create and set a U_PMF_IMAGEATTRIBUTES PseudoObject.
Definition: upmf.c:1628
EMF+ manual 2.2.2.24, Microsoft name: EmfPlusLinearGradientBrushData Object Manual says that Reserved...
Definition: upmf.h:1774
EMF+ manual 2.2.1.6, Microsoft name: EmfPlusPath Object.
Definition: upmf.h:1451
U_PSEUDO_OBJ * U_PMF_4NUM_set(uint32_t BrushID)
Create and set a PMF_4NUM PseudoObject (used for BrushID&#39;s)
Definition: upmf.c:1832
uint16_t U_PMF_HEADERFLAGS_get(const char *contents)
Get the 16 bit unsigned Flags field from a header.
Definition: upmf.c:1436
U_PSEUDO_OBJ * U_PMF_IE_COLORLOOKUPTABLE_set(const uint8_t *BLUT, const uint8_t *GLUT, const uint8_t *RLUT, const uint8_t *ALUT)
Create and set a U_PMF_IE_COLORLOOKUPTABLE PseudoObject.
Definition: upmf.c:3408
U_PSEUDO_OBJ * U_PMR_OFFSETCLIP_set(U_FLOAT dX, U_FLOAT dY)
Create and set a U_PMR_OFFSETCLIP PseudoObject.
Definition: upmf.c:3605
EMF+ manual 2.3.2.1, Microsoft name: EmfPlusComment Record, Index 0x03.
Definition: upmf.h:2161
int U_PMF_IE_COLORMATRIX_get(const char *contents, U_PMF_IE_COLORMATRIX *Matrix)
Get data from a U_PMF_IE_COLORMATRIX object.
Definition: upmf.c:6553
int U_PMR_SETRENDERINGORIGIN_get(const char *contents, U_PMF_CMN_HDR *Header, int32_t *X, int32_t *Y)
Get data from a U_PMR_SETRENDERINGORIGIN record.
Definition: upmf.c:7599
int U_PMF_STRINGFORMATDATA_get(const char *contents, uint32_t TabStopCount, uint32_t RangeCount, const U_FLOAT **TabStops, const U_PMF_CHARACTERRANGE **CharRange)
Get data from a U_PMF_STRINGFORMATDATA object.
Definition: upmf.c:6395
EMF+ manual 2.3.6.2, Microsoft name: EmfPlusSetCompositingMode Record, Index 0x23.
Definition: upmf.h:2613
U_PSEUDO_OBJ * U_PMF_IE_TINT_set(const int32_t Hue, const int32_t Amount)
Create and set a U_PMF_IE_TINT PseudoObject.
Definition: upmf.c:3535
int U_PMR_DRAWDRIVERSTRING_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *FontID, int *btype, U_FLOAT *Tension, uint32_t *BrushID, uint32_t *DSOFlags, uint32_t *HasMatrix, uint32_t *Elements, uint16_t **Glyphs, U_PMF_POINTF **Points, U_PMF_TRANSFORMMATRIX **Matrix)
Get data from a U_PMR_DRAWDRIVERSTRING record.
Definition: upmf.c:6965
U_PSEUDO_OBJ * U_PMF_IE_HUESATURATIONLIGHTNESS_set(int32_t Hue, int32_t Saturation, int32_t Lightness)
Create and set a U_PMF_IE_HUESATURATIONLIGHTNESS PseudoObject.
Definition: upmf.c:3451
EMF+ manual 2.2.1.7, Microsoft name: EmfPlusPen Object.
Definition: upmf.h:1473
int U_PMF_BOUNDARYPATHDATA_get(const char *contents, int32_t *Size, const char **Data)
Get data from a U_PMF_BOUNDARYPATHDATA object.
Definition: upmf.c:5557
int U_PMR_CLEAR_get(const char *contents, U_PMF_CMN_HDR *Header, U_PMF_ARGB *Color)
Get data from a U_PMR_CLEAR record.
Definition: upmf.c:6821
Coordinates of the upper left, lower right corner.
Definition: uemf.h:554
U_PSEUDO_OBJ * U_PMR_DRAWPIE_set(uint32_t PenID, U_FLOAT Start, U_FLOAT Sweep, const U_PSEUDO_OBJ *Rect)
Create and set a U_PMR_DRAWPIE PseudoObject.
Definition: upmf.c:4241
int U_PMR_FILLRECTS_get(const char *contents, U_PMF_CMN_HDR *Header, int *btype, int *ctype, uint32_t *BrushID, uint32_t *Elements, U_PMF_RECTF **Rects)
Get data from a U_PMR_FILLRECTS record.
Definition: upmf.c:7379
Holds EMF+ objects and records in EMF+ file format byte order.
Definition: upmf.h:1331
int U_PMR_FILLPATH_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PathID, int *btype, uint32_t *BrushID)
Get data from a U_PMR_FILLPATH record.
Definition: upmf.c:7287
U_PSEUDO_OBJ * U_PMF_CUSTOMLINECAPARROWDATA_set(U_FLOAT Width, U_FLOAT Height, U_FLOAT MiddleInset, uint32_t FillState, uint32_t StartCap, uint32_t EndCap, uint32_t Join, U_FLOAT MiterLimit, U_FLOAT WidthScale)
Create and set a U_PMF_CUSTOMLINECAPARROWDATA PseudoObject.
Definition: upmf.c:2220
EMF+ manual 2.2.3.8, Microsoft name: LevelsEffect Object.
Definition: upmf.h:2086
U_PMF_TRANSFORMMATRIX tm_for_gradrect(U_FLOAT Angle, U_FLOAT w, U_FLOAT h, U_FLOAT x, U_FLOAT y, U_FLOAT Periods)
Utility function calculate the transformation matrix needed to make a gradient run precisely corner t...
Definition: upmf.c:1057
int U_PMF_BITMAP_get(const char *contents, U_PMF_BITMAP *Bs, const char **Data)
Get data from a U_PMF_BITMAP object.
Definition: upmf.c:5484
int U_PMF_IE_SHARPEN_get(const char *contents, U_FLOAT *Radius, int32_t *Sharpen)
Get data from a U_PMF_IE_SHARPEN object.
Definition: upmf.c:6622
U_PSEUDO_OBJ * U_PMR_BEGINCONTAINERNOPARAMS_set(int StackID)
Create and set a U_PMR_BEGINCONTAINERNOPARAMS PseudoObject.
Definition: upmf.c:4937
EMF+ manual 2.2.2.1, Microsoft name: EmfPlusARGB Object, out of order, needed for 2...
Definition: upmf.h:1429
int U_PMR_MULTIFORMATSECTION_get(const char *contents, U_PMF_CMN_HDR *Header)
Get data from a U_PMR_MULTIFORMATSECTION record.
Definition: upmf.c:7985
int U_PMR_SCALEWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header, int *xmtype, U_FLOAT *Sx, U_FLOAT *Sy)
Get data from a U_PMR_SCALEWORLDTRANSFORM record.
Definition: upmf.c:7872
U_PSEUDO_OBJ * U_PMR_COMMENT_set(size_t cbData, const void *Data)
Create and set a U_PMR_COMMENT PseudoObject.
Definition: upmf.c:3729
EMF+ manual 2.3.1.5, Microsoft name: EmfPlusSetClipRegion Record, Index 0x34.
Definition: upmf.h:2152
int U_PMF_PATHGRADIENTBRUSHDATA_get(const char *contents, U_PMF_PATHGRADIENTBRUSHDATA *Pgbd, const char **Gradient, const char **Boundary, const char **Data)
Get data from a U_PMF_PATHGRADIENTBRUSHDATA object.
Definition: upmf.c:5998
U_PSEUDO_OBJ * U_PMR_SETCOMPOSITINGMODE_set(int CMenum)
Create and set a U_PMR_SETCOMPOSITINGMODE PseudoObject.
Definition: upmf.c:4757
U_PSEUDO_OBJ * U_PMF_HATCHBRUSHDATA_set(uint32_t Style, const U_PSEUDO_OBJ *Fg, const U_PSEUDO_OBJ *Bg)
Create and set a U_PMF_HATCHBRUSHDATA PseudoObject.
Definition: upmf.c:2490
EMF+ manual 2.3.8.1, Microsoft name: EmfPlusSetTSClip Record, Index 0x3A.
Definition: upmf.h:2712
int U_PMF_CUSTOMLINECAPDATA_get(const char *contents, U_PMF_CUSTOMLINECAPDATA *Clcd, const char **Data)
Get data from a U_PMF_CUSTOMLINECAPDATA object.
Definition: upmf.c:5670
int U_PMF_BLENDFACTORS_get(const char *contents, uint32_t *Elements, U_FLOAT **Positions, U_FLOAT **Factors)
Get data from a U_PMF_BLENDFACTORS object.
Definition: upmf.c:5537
int U_PMF_TEXTUREBRUSHOPTIONALDATA_get(const char *contents, int HasImage, U_PMF_TRANSFORMMATRIX *Matrix, const char **Image)
Get data from a U_PMF_TEXTUREBRUSHOPTIONALDATA object.
Definition: upmf.c:6434
U_PSEUDO_OBJ * U_PMF_CUSTOMLINECAP_set(uint32_t Version, const U_PSEUDO_OBJ *Ld)
Create and set a U_PMF_CUSTOMLINECAP PseudoObject.
Definition: upmf.c:1551
int U_PMR_ENDCONTAINER_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *StackID)
Get data from a U_PMR_ENDCONTAINER record.
Definition: upmf.c:7694
int U_PMF_LINEARGRADIENTBRUSHDATA_get(const char *contents, U_PMF_LINEARGRADIENTBRUSHDATA *Lgbd, const char **Data)
Get data from a U_PMF_LINEARGRADIENTBRUSHDATA object.
Definition: upmf.c:5891
int U_PMR_DRAWLINES_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PenID, int *ctype, int *dtype, int *RelAbs, uint32_t *Elements, U_PMF_POINTF **Points)
Get data from a U_PMR_DRAWLINES record.
Definition: upmf.c:7089
int U_PMR_SETTSCLIP_get(const char *contents, U_PMF_CMN_HDR *Header, int *ctype, uint32_t *Elements, U_PMF_RECTF **Rects)
Get data from a U_PMR_SETTSCLIP record.
Definition: upmf.c:7745
U_PSEUDO_OBJ * U_PMF_COMPOUNDLINEDATA_set(int32_t Elements, const char *Widths)
Create and set a U_PMF_COMPOUNDLINEDATA PseudoObject.
Definition: upmf.c:2156
EMF+ manual 2.3.4.17, Microsoft name: EmfPlusFillPath Record, Index 0x14 Note: U_PMF_FILLPATHOBJ is t...
Definition: upmf.h:2495
int U_PMF_PATHPOINTTYPE_get(const char *contents, int *Flags, int *Type)
Get data from a U_PMF_PATHPOINTTYPE object.
Definition: upmf.c:6045
U_PSEUDO_OBJ * U_PMR_SETCLIPREGION_set(uint32_t PathID, uint32_t CMenum)
Create and set a U_PMR_SETCLIPREGION PseudoObject.
Definition: upmf.c:3705
U_PSEUDO_OBJ * U_PMF_PATH_set3(uint32_t Version, const U_DPSEUDO_OBJ *Path)
Create and set a U_PMF_PATH PseudoObject that uses U_PMF_POINT (int 16) coordinates.
Definition: upmf.c:1721
EMF+ manual 2.2.2.2, Microsoft name: EmfPlusBitmap Object.
Definition: upmf.h:1543
U_PSEUDO_OBJ * U_PMF_IMAGE_set(uint32_t Version, const U_PSEUDO_OBJ *Id)
Create and set a U_PMF_IMAGE PseudoObject.
Definition: upmf.c:1604
int U_PMR_COMMENT_get(const char *contents, U_PMF_CMN_HDR *Header, const char **Data)
Get data from a U_PMR_COMMENT record.
Definition: upmf.c:6748
EMF+ manual 2.2.3.5, Microsoft name: ColorLookupTableEffect Object.
Definition: upmf.h:2066
int U_PMF_TEXTUREBRUSHDATA_get(const char *contents, uint32_t *Flags, int32_t *WrapMode, const char **Data)
Get data from a U_PMF_TEXTUREBRUSHDATA object.
Definition: upmf.c:6415
U_PSEUDO_OBJ * U_PMF_CUSTOMLINECAPOPTIONALDATA_set(const U_PSEUDO_OBJ *Fill, const U_PSEUDO_OBJ *Line)
Create and set a U_PMF_CUSTOMLINECAPOPTIONALDATA PseudoObject.
Definition: upmf.c:2288
Serializer description records.
Definition: upmf.h:1353
int U_PMR_SETCLIPPATH_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PathID, int *CMenum)
Get data from a U_PMR_SETCLIPPATH record.
Definition: upmf.c:6688
int U_PMF_COMPOUNDLINEDATA_get(const char *contents, int32_t *Elements, U_FLOAT **Widths)
Get data from a U_PMF_COMPOUNDLINEDATA object.
Definition: upmf.c:5605
EMF+ manual 2.2.1.2, Microsoft name: EmfPlusCustomLineCap Object.
Definition: upmf.h:1392
int U_PMF_IE_TINT_get(const char *contents, int32_t *Hue, int32_t *Amount)
Get data from a U_PMF_IE_TINT object.
Definition: upmf.c:6638
Definition: upmf.h:1799
Structures, definitions, and function prototypes for EMF files.
int U_OID_To_BT(uint32_t OID)
Convert from PseudoObject OID to BrushType enumeration.
Definition: upmf.c:371
EMF+ manual 2.3.6.7, Microsoft name: EmfPlusSetTextContrast Record, Index 0x20.
Definition: upmf.h:2656
U_PSEUDO_OBJ * U_PMR_ROTATEWORLDTRANSFORM_set(int xmtype, U_FLOAT Angle)
Create and set a U_PMR_ROTATEWORLDTRANSFORM PseudoObject.
Definition: upmf.c:5135
EMF+ manual 2.2.2.28, Microsoft name: EmfPlusPalette Object.
Definition: upmf.h:1842
EMF+ manual 2.2.1.9, Microsoft name: EmfPlusStringFormat Object.
Definition: upmf.h:1514
EMF+ manual 2.2.3.11, Microsoft name: TintEffect Object.
Definition: upmf.h:2107
U_PSEUDO_OBJ * U_PMR_SETANTIALIASMODE_set(int SMenum, int aatype)
Create and set a U_PMR_SETANTIALIASMODE PseudoObject.
Definition: upmf.c:4736
U_PSEUDO_OBJ * U_PMR_SETCOMPOSITINGQUALITY_set(int CQenum)
Create and set a U_PMR_SETCOMPOSITINGQUALITY PseudoObject.
Definition: upmf.c:4778
EMF+ manual 2.3.4.5, Microsoft name: EmfPlusDrawCurve Record, Index 0x18 flags (LITTLE endian here...
Definition: upmf.h:2272
U_PSEUDO_OBJ * U_PMF_PALETTE_set(uint32_t Flags, uint32_t Elements, const U_PMF_ARGB *Pd)
Create and set a U_PMF_PALETTE PseudoObject.
Definition: upmf.c:2670
EMF+ manual 2.3.9.6, Microsoft name: EmfPlusSetWorldTransform Record, Index 0x2A. ...
Definition: upmf.h:2801
EMF+ manual 2.2.2.13, Microsoft name: EmfPlusCustomLineCapData Object.
Definition: upmf.h:1648
EMF+ manual 2.2.1.8, Microsoft name: EmfPlusRegion Object.
Definition: upmf.h:1494
int U_PMR_DRAWIMAGE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *ImgID, int *ctype, uint32_t *ImgAttrID, int32_t *SrcUnit, U_PMF_RECTF *SrcRect, U_PMF_RECTF *DstRect)
Get data from a U_PMR_DRAWIMAGE record.
Definition: upmf.c:7023
int U_PMR_MULTIPLYWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header, int *xmtype, U_PMF_TRANSFORMMATRIX *Matrix)
Get data from a U_PMR_MULTIPLYWORLDTRANSFORM record.
Definition: upmf.c:7815
EMF+ manual 2.3.6.4, Microsoft name: EmfPlusSetInterpolationMode Record, Index 0x21.
Definition: upmf.h:2631
int U_PMF_BOUNDARYPOINTDATA_get(const char *contents, int32_t *Elements, U_PMF_POINTF **Points)
Get data from a U_PMF_BOUNDARYPOINTDATA object.
Definition: upmf.c:5573
int U_PMR_ENDOFFILE_get(const char *contents, U_PMF_CMN_HDR *Header)
Get data from a U_PMR_ENDOFFILE record.
Definition: upmf.c:6764
EMF+ manual 2.3.4.19, Microsoft name: EmfPlusFillPolygon Record, Index 0x0C.
Definition: upmf.h:2529
int U_PMR_SETTEXTRENDERINGHINT_get(const char *contents, U_PMF_CMN_HDR *Header, int *TRHenum)
Get data from a U_PMR_SETTEXTRENDERINGHINT record.
Definition: upmf.c:7635
EMF+ manual 2.3.4.6, Microsoft name: EmfPlusDrawDriverString Record, Index 0x36.
Definition: upmf.h:2290
U_PSEUDO_OBJ * U_PMR_DRAWIMAGEPOINTS_set(uint32_t ImgID, int etype, int32_t ImgAttrID, int32_t SrcUnit, const U_PSEUDO_OBJ *SrcRect, const U_PSEUDO_OBJ *Points)
Create and set a U_PMR_DRAWIMAGEPOINTS PseudoObject.
Definition: upmf.c:4143
int U_PMF_INTEGER7_get(const char **contents, U_FLOAT *Value)
Get data from a U_PMF_INTEGER7 object.
Definition: upmf.c:5822
U_PSEUDO_OBJ * U_PMF_RECTF_set(U_PMF_RECTF *Rect)
Create and set a U_PMF_RECTF object in a PseudoObject.
Definition: upmf.c:3086
int U_PMF_PATHPOINTTYPERLE_get(const char *contents, int *Bezier, int *RL, int *Ppt)
Get data from a U_PMF_PATHPOINTTYPERLE object.
Definition: upmf.c:6064
int U_PMF_CUSTOMENDCAPDATA_get(const char *contents, int32_t *Size, const char **Data)
Get data from a U_PMF_CUSTOMENDCAPDATA object.
Definition: upmf.c:5640
int U_PMF_KNOWNCURLYGUID_set(const char *string)
Identify a known curly GUID.
Definition: upmf.c:1273
U_PSEUDO_OBJ * U_PMR_HEADER_set(int IsDual, int IsVideo, const U_PSEUDO_OBJ *Version, uint32_t LogicalDpiX, uint32_t LogicalDpiY)
Create and set a U_PMR_HEADER PseudoObject.
Definition: upmf.c:3794
int U_PMR_DRAWPATH_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PathID, uint32_t *PenID)
Get data from a U_PMR_DRAWPATH record.
Definition: upmf.c:7115
EMF+ manual 2.2.2.40, Microsoft name: EmfPlusRegionNode Object, out of order, needed for 2...
Definition: upmf.h:1483
int U_OID_To_CLCDT(uint32_t OID)
Convert from PseudoObject OID to CustomLineCapDataType Enumeration.
Definition: upmf.c:390
int U_PMF_CHARACTERRANGE_get(const char *contents, int32_t *First, int32_t *Length)
Get data from a U_PMF_CHARACTERRANGE object.
Definition: upmf.c:5589
U_PSEUDO_OBJ * U_PMR_SCALEWORLDTRANSFORM_set(int xmtype, U_FLOAT X, U_FLOAT Y)
Create and set a U_PMR_SCALEWORLDTRANSFORM PseudoObject.
Definition: upmf.c:5158
U_PSEUDO_OBJ * U_PMR_SETRENDERINGORIGIN_set(int32_t X, int32_t Y)
Create and set a U_PMR_SETRENDERINGORIGIN PseudoObject.
Definition: upmf.c:4842
int U_PMR_SETCLIPRECT_get(const char *contents, U_PMF_CMN_HDR *Header, int *CMenum, U_PMF_RECTF *Rect)
Get data from a U_PMR_SETCLIPRECT record.
Definition: upmf.c:6708
int U_PMF_METAFILE_get(const char *contents, uint32_t *Type, uint32_t *Size, const char **Data)
Get data from a U_PMF_METAFILE object.
Definition: upmf.c:5960
int U_PMF_FOCUSSCALEDATA_get(const char *contents, uint32_t *Count, U_FLOAT *ScaleX, U_FLOAT *ScaleY)
Get data from a U_PMF_FOCUSSCALEDATA object.
Definition: upmf.c:5769
U_PMF_ARGB U_PMF_ARGBOBJ_set(uint8_t Alpha, uint8_t Red, uint8_t Green, uint8_t Blue)
Set a U_PMF_ARGB object.
Definition: upmf.c:1892
U_PSEUDO_OBJ * U_PMF_CUSTOMSTARTCAPDATA_set(const U_PSEUDO_OBJ *Clc)
Create and set a U_PMF_CUSTOMSTARTCAPDATA PseudoObject.
Definition: upmf.c:2307
EMF+ manual 2.3.9.7, Microsoft name: EmfPlusTranslateWorldTransform Record, Index 0x2D Construct tran...
Definition: upmf.h:2815
int U_PMR_FILLPIE_get(const char *contents, U_PMF_CMN_HDR *Header, int *btype, int *ctype, uint32_t *BrushID, U_FLOAT *Start, U_FLOAT *Sweep, U_PMF_RECTF *Rect)
Get data from a U_PMR_FILLPIE record.
Definition: upmf.c:7313
U_PSEUDO_OBJ * U_PMF_PENDATA_set(uint32_t Unit, U_FLOAT Width, const U_PSEUDO_OBJ *Pod)
Create and set a U_PMF_PENDATA PseudoObject.
Definition: upmf.c:2834
int U_PMR_FILLREGION_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *RgnID, int *btype, int *ctype, uint32_t *BrushID)
Get data from a U_PMR_FILLREGION record.
Definition: upmf.c:7409
U_PSEUDO_OBJ * U_PMF_IE_BLUR_set(U_FLOAT Radius, uint32_t ExpandEdge)
Create and set a U_PMF_IE_BLUR PseudoObject.
Definition: upmf.c:3320
U_PSEUDO_OBJ * U_PMF_PATH_set2(uint32_t Version, const U_DPSEUDO_OBJ *Path)
Create and set a U_PMF_PATH PseudoObject that uses U_PMF_POINTF coordinates.
Definition: upmf.c:1694
EMF+ manual 2.2.2.4, Microsoft name: EmfPlusBlendColors Object For Pattern field of U_PMF_LINEARGRADI...
Definition: upmf.h:1565
EMF+ manual 2.2.2.33, Microsoft name: EmfPlusPenData Object.
Definition: upmf.h:1914
U_PSEUDO_OBJ * U_PMR_ENDCONTAINER_set(int StackID)
Create and set a U_PMR_ENDCONTAINER PseudoObject.
Definition: upmf.c:4959
EMF+ manual 2.3.4.18, Microsoft name: EmfPlusFillPie Record, Index 0x10.
Definition: upmf.h:2506
int U_PMR_GETDC_get(const char *contents, U_PMF_CMN_HDR *Header)
Get data from a U_PMR_GETDC record.
Definition: upmf.c:6778
U_PSEUDO_OBJ * U_PMF_RECTFN_set(uint32_t Elements, U_PMF_RECTF *Rects)
Create and set an array of U_PMF_RECTF objects in a PseudoObject.
Definition: upmf.c:3103
int U_PATH_lineto(U_DPSEUDO_OBJ *Path, U_PMF_POINTF Point, uint8_t Flags)
Append a &quot;lineto&quot; point to a path.
Definition: upmf.c:766
EMF+ manual 2.2.2.34, Microsoft name: EmfPlusPenOptionalData Object.
Definition: upmf.h:1941
EMF+ manual 2.3.4.3, Microsoft name: EmfPlusDrawBeziers Record, Index 0x19 flags (LITTLE endian here...
Definition: upmf.h:2220
EMF+ manual 2.2.3.10, Microsoft name: SharpenEffect Object.
Definition: upmf.h:2101
void U_PMF_PTRSAV_SHIFT(const char **Dst, const char **Src, size_t Size)
save pointer to data and shift source pointer by the amount of data moved
Definition: upmf.c:1404
EMF+ manual 2.2.3.7, Microsoft name: HueSaturationLightnessEffect Object.
Definition: upmf.h:2079
U_PSEUDO_OBJ * U_PMR_RESETWORLDTRANSFORM_set(void)
Create and set a U_PMR_RESETWORLDTRANSFORM PseudoObject.
Definition: upmf.c:5113
U_PSEUDO_OBJ * U_PMF_BOUNDARYPATHDATA_set(const U_PSEUDO_OBJ *Path)
Create and set a U_PMF_BOUNDARYPATHDATA PseudoObject.
Definition: upmf.c:2097
U_PSEUDO_OBJ * U_PMF_BLENDFACTORS_linear_set(uint32_t Elements, U_FLOAT StartFactor, U_FLOAT EndFactor)
Create and set a U_PMF_BLENDFACTORS PseudoObject.
Definition: upmf.c:2059
int U_OA_clear(U_OBJ_ACCUM *oa)
Clear an U_OBJ_ACCUM structure. Accumulated storage is retained.
Definition: upmf.c:468
U_PSEUDO_OBJ * U_PMF_TEXTUREBRUSHOPTIONALDATA_set(const U_PSEUDO_OBJ *Tm, const U_PSEUDO_OBJ *Image)
Create and set a U_PMF_TEXTUREBRUSHOPTIONALDATA PseudoObject.
Definition: upmf.c:3279
int U_PMF_STRINGFORMAT_get(const char *contents, U_PMF_STRINGFORMAT *Sfs, const char **Data)
Get data from a U_PMF_STRINGFORMAT object.
Definition: upmf.c:5448
int U_PMF_IE_REDEYECORRECTION_get(const char *contents, int32_t *Elements, U_RECTL **Rects)
Get data from a U_PMF_IE_REDEYECORRECTION object.
Definition: upmf.c:6604
int U_DPO_clear(U_DPSEUDO_OBJ *dpo)
Clear U_DPSEUDO_OBJ&#39;s. Memory is retained, Elements and Used values are set to 0. ...
Definition: upmf.c:725
int U_PMR_DRAWELLIPSE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PenID, int *ctype, U_PMF_RECTF *Rect)
Get data from a U_PMR_DRAWELLIPSE record.
Definition: upmf.c:6997
int U_PMR_DRAWSTRING_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *FontID, int *btype, uint32_t *BrushID, uint32_t *FormatID, uint32_t *Elements, U_PMF_RECTF *Rect, uint16_t **String)
Get data from a U_PMR_DRAWSTRING record.
Definition: upmf.c:7197
U_PSEUDO_OBJ * U_PMR_SERIALIZABLEOBJECT_set(const U_PSEUDO_OBJ *Siepb)
Create and set a U_PMR_SERIALIZABLEOBJECT PseudoObject.
Definition: upmf.c:4706
U_PSEUDO_OBJ * U_PMR_DRAWSTRING_set(uint32_t FontID, const U_PSEUDO_OBJ *BrushID, uint32_t FormatID, uint32_t Length, const U_PSEUDO_OBJ *Rect, const uint16_t *Text)
Create and set a U_PMR_DRAWSTRING PseudoObject.
Definition: upmf.c:4314
U_PSEUDO_OBJ * U_PMR_SETTEXTRENDERINGHINT_set(int TRHenum)
Create and set a U_PMR_SETTEXTRENDERINGHINT PseudoObject.
Definition: upmf.c:4886
int U_PMR_TRANSLATEWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header, int *xmtype, U_FLOAT *Dx, U_FLOAT *Dy)
Get data from a U_PMR_TRANSLATEWORLDTRANSFORM record.
Definition: upmf.c:7933
EMF+ manual 2.2.2.10, Microsoft name: EmfPlusCompressedImage Object Holds an EXIF, GIF, JFIF, PNG, or TIFF image. For U_PMF_BITMAP BitmapData field.
Definition: upmf.h:1625
EMF+ manual 2.2.2.15, Microsoft name: EmfPlusCustomStartCapData Object.
Definition: upmf.h:1673
U_PMF_POINT * POINTF_To_POINT16_LE(U_PMF_POINTF *points, int count)
Allocate and construct an array of U_POINT16 objects from a set of U_PMF_POINTF objects, endianness in and out is LE.
Definition: upmf.c:251
int U_PMF_PENDATA_get(const char *contents, uint32_t *Flags, uint32_t *Unit, U_FLOAT *Width, const char **Data)
Get data from a U_PMF_PENDATA object.
Definition: upmf.c:6085
int U_PMF_LANGUAGEIDENTIFIER_get(U_PMF_LANGUAGEIDENTIFIER LId, int *SubLId, int *PriLId)
Get data from a U_PMF_LANGUAGEIDENTIFIER object.
Definition: upmf.c:5874
EMF+ manual 2.2.3.2, Microsoft name: BrightnessContrastEffect Object.
Definition: upmf.h:2037
EMF+ manual 2.2.2.17, Microsoft name: EmfPlusFillPath Object Note: U_PMF_FILLPATHOBJ is the object...
Definition: upmf.h:1692
U_PMF_GRAPHICSVERSION U_PMF_GRAPHICSVERSIONOBJ_set(int GrfVersion)
Create and set a U_PMF_GRAPHICSVERSION object Structure (Signature always set to 0xDBC01) ...
Definition: upmf.c:2473
U_PSEUDO_OBJ * U_PMR_SETTSCLIP_set(U_PSEUDO_OBJ *Rects)
Create and set a U_PMR_SETTSCLIP PseudoObject.
Definition: upmf.c:5025
int U_PMR_drawstring(const char *string, int Vpos, uint32_t FontID, const U_PSEUDO_OBJ *BrushID, uint32_t FormatID, U_PMF_STRINGFORMAT Sfs, const char *FontName, U_FLOAT Height, U_FontInfoParams *fip, uint32_t FontFlags, U_FLOAT x, U_FLOAT y, U_PSEUDO_OBJ *sum, EMFTRACK *et)
Utility function for drawing strings onto the baseline in one call.
Definition: upmf.c:159
int U_PMF_POINTR_get(const char **contents, U_FLOAT *X, U_FLOAT *Y)
Get data from a U_PMF_POINTR object.
Definition: upmf.c:6198
EMF+ manual 2.2.2.47, Microsoft name: EmfPlusTransformMatrix Object, out of order, needed for 2.2.2.25.
Definition: upmf.h:1788
EMF+ manual 2.3.6.1, Microsoft name: EmfPlusSetAntiAliasMode Record, Index 0x1E.
Definition: upmf.h:2604
EMF+ manual 2.3.9.2, Microsoft name: EmfPlusResetWorldTransform Record, Index 0x2B Sets transformatio...
Definition: upmf.h:2757
U_PSEUDO_OBJ * U_PMF_CUSTOMLINECAPDATA_set(uint32_t Flags, uint32_t Cap, U_FLOAT Inset, uint32_t StartCap, uint32_t EndCap, uint32_t Join, U_FLOAT MiterLimit, U_FLOAT WidthScale, const U_PSEUDO_OBJ *Clcod)
Create and set a U_PMF_CUSTOMLINECAPDATA PseudoObject.
Definition: upmf.c:2257
EMF+ manual 2.2.2.36, Microsoft name: EmfPlusPointF Object, out of order, needed for 2...
Definition: upmf.h:1851
int U_PMR_MULTIFORMATEND_get(const char *contents, U_PMF_CMN_HDR *Header)
Get data from a U_PMR_MULTIFORMATEND record.
Definition: upmf.c:7999
EMF+ manual 2.3.3.1, Microsoft name: EmfPlusEndOfFile Record, Index 0x02.
Definition: upmf.h:2166
int U_PMF_TRANSFORMMATRIX_get(const char *contents, U_PMF_TRANSFORMMATRIX *Matrix)
Get data from a U_PMF_TRANSFORMMATRIX object.
Definition: upmf.c:6449
int U_PMR_SETTEXTCONTRAST_get(const char *contents, U_PMF_CMN_HDR *Header, int *TGC)
Get data from a U_PMR_SETTEXTCONTRAST record.
Definition: upmf.c:7617
EMF+ manual 2.2.2.39, Microsoft name: EmfPlusRectF Object, out of order, needed for 2...
Definition: upmf.h:1763
int U_PMF_REGIONNODEPATH_get(const char *contents, int32_t *Size, const char **Data)
Get data from a U_PMF_REGIONNODEPATH object.
Definition: upmf.c:6363
U_PSEUDO_OBJ * U_PMR_OBJECT_PO_set(uint32_t ObjID, U_PSEUDO_OBJ *Po)
Create and set a U_PMR_OBJECT PseudoObject from another PseudoObject.
Definition: upmf.c:4621
EMF+ manual 2.3.4.2, Microsoft name: EmfPlusDrawArc Record, Index 0x12.
Definition: upmf.h:2200
U_PSEUDO_OBJ * U_PMF_RECT_set(U_PMF_RECT *Rect)
Create and set a U_PMF_RECT object.
Definition: upmf.c:3026
FontInfoParams hold font information that is needed by U_PMR_drawstring so that it can place text on ...
Definition: upmf.h:1367
EMF+ manual 2.3.1.4, Microsoft name: EmfPlusSetClipRect Record, Index 0x32.
Definition: upmf.h:2141
char * U_PMF_CURLYGUID_set(uint8_t *GUID)
Create a string containing the curly bracket form of the 16 byte GUID value.
Definition: upmf.c:1252
U_PSEUDO_OBJ * U_PMR_SETWORLDTRANSFORM_set(U_PSEUDO_OBJ *Tm)
Create and set a U_PMR_SETWORLDTRANSFORM PseudoObject.
Definition: upmf.c:5210
Definition: upmf.h:2020
U_PSEUDO_OBJ * U_PMF_IE_BRIGHTNESSCONTRAST_set(int32_t Brightness, int32_t Contrast)
Create and set a U_PMF_IE_BRIGHTNESSCONTRAST PseudoObject.
Definition: upmf.c:3340
int U_PATH_polybezierto(U_DPSEUDO_OBJ *Path, uint32_t Elements, const U_PMF_POINTF *Points, uint8_t Flags, uint8_t StartSeg)
Append a &quot;polybezierto&quot; set of point to a path.
Definition: upmf.c:843
U_PSEUDO_OBJ * U_PMF_STRINGFORMATDATA_set(uint32_t TabStopCount, U_FLOAT *TabStops, const U_PSEUDO_OBJ *Ranges)
Create and set a U_PMF_STRINGFORMATDATA PseudoObject.
Definition: upmf.c:3233
EMF+ manual 2.3.1.3, Microsoft name: EmfPlusSetClipPath Record, Index 0x33.
Definition: upmf.h:2132
EMF+ manual 2.3.4.16, Microsoft name: EmfPlusFillEllipse Record, Index 0x0E.
Definition: upmf.h:2479
int U_PMR_DRAWCLOSEDCURVE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PenID, int *ctype, int *RelAbs, U_FLOAT *Tension, uint32_t *Elements, U_PMF_POINTF **Points)
Get data from a U_PMR_DRAWCLOSEDCURVE record.
Definition: upmf.c:6899
EMF+ manual 2.2.1.3, Microsoft name: EmfPlusFont Object.
Definition: upmf.h:1403
U_PSEUDO_OBJ * U_PMR_MULTIPLYWORLDTRANSFORM_set(int xmtype, U_PSEUDO_OBJ *Tm)
Create and set a U_PMR_MULTIPLYWORLDTRANSFORM PseudoObject.
Definition: upmf.c:5091
U_PSEUDO_OBJ * U_PMF_BOUNDARYPOINTDATA_set(uint32_t Elements, const U_PMF_POINTF *Points)
Create and set a U_PMF_BOUNDARYPOINTDATA PseudoObject.
Definition: upmf.c:2119
int U_PO_free(U_PSEUDO_OBJ **po)
Free an U_PSEUDO_OBJ structure. All associated memory is released.
Definition: upmf.c:595
EMF+ manual 2.3.4.4, Microsoft name: EmfPlusDrawClosedCurve Record, Index 0x17.
Definition: upmf.h:2248
U_PSEUDO_OBJ * U_PMF_FONT_set(uint32_t Version, U_FLOAT EmSize, uint32_t SizeUnit, int32_t FSFlags, uint32_t Length, const uint16_t *Font)
Create and set a U_PMF_FONT PseudoObject.
Definition: upmf.c:1577
int U_PMR_SETWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header, U_PMF_TRANSFORMMATRIX *Matrix)
Get data from a U_PMR_SETWORLDTRANSFORM record.
Definition: upmf.c:7914
EMF+ manual 2.2.3.9, Microsoft name: RedEyeCorrectionEffect Object.
Definition: upmf.h:2093
int U_PMF_LINEARGRADIENTBRUSHOPTIONALDATA_get(const char *contents, uint32_t Flags, U_PMF_TRANSFORMMATRIX *Tm, const char **Bc, const char **BfH, const char **BfV)
Get data from a U_PMF_LINEARGRADIENTBRUSHOPTIONALDATA object.
Definition: upmf.c:5911
U_PSEUDO_OBJ * U_PMF_FILLPATHOBJ_set(const U_PSEUDO_OBJ *Path)
Create and set a U_PMF_FILLPATHOBJ PseudoObject.
Definition: upmf.c:2417
EMF+ manual 2.3.4.8, Microsoft name: EmfPlusDrawImage Record, Index 0x1A.
Definition: upmf.h:2329
U_PSEUDO_OBJ * U_PMR_RESTORE_set(int StackID)
Create and set a U_PMR_RESTORE PseudoObject.
Definition: upmf.c:4981
int U_PMR_RESETCLIP_get(const char *contents, U_PMF_CMN_HDR *Header)
Get data from a U_PMR_RESETCLIP record.
Definition: upmf.c:6672
int U_OID_To_OT(uint32_t OID)
Convert from PseudoObject OID to ObjectType enumeration.
Definition: upmf.c:348
int U_PMR_DRAWIMAGEPOINTS_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *ImgID, int *ctype, int *etype, int *RelAbs, uint32_t *ImgAttrID, int32_t *SrcUnit, U_PMF_RECTF *SrcRect, uint32_t *Elements, U_PMF_POINTF **Points)
Get data from a U_PMR_DRAWIMAGEPOINTS record.
Definition: upmf.c:7056
U_PSEUDO_OBJ * U_PMF_INTEGER15_set(int Value)
Create and set a U_PMF_INTEGER15 PseudoObject.
Definition: upmf.c:2525
int U_PMR_BEGINCONTAINERNOPARAMS_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *StackID)
Get data from a U_PMR_BEGINCONTAINERNOPARAMS record.
Definition: upmf.c:7678
int U_PMF_ARGB_get(const char *contents, uint8_t *Blue, uint8_t *Green, uint8_t *Red, uint8_t *Alpha)
Get data from a U_PMF_ARGB object.
Definition: upmf.c:5466
int U_PMF_PEN_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **PenData, const char **Brush)
Get data from a U_PMF_PEN object.
Definition: upmf.c:5412
U_PSEUDO_OBJ * U_PMF_IE_LEVELS_set(int32_t Highlight, int32_t Midtone, int32_t Shadow)
Create and set a U_PMF_IE_LEVELS PseudoObject.
Definition: upmf.c:3473
U_PSEUDO_OBJ * U_PMF_SOLIDBRUSHDATA_set(const U_PSEUDO_OBJ *Color)
Create and set a U_PMF_SOLIDBRUSHDATA PseudoObject.
Definition: upmf.c:3212
int U_PATH_closepath(U_DPSEUDO_OBJ *Path)
Set the closepath bit in the last point.
Definition: upmf.c:790
int U_PMR_SETCLIPREGION_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PathID, int *CMenum)
Get data from a U_PMR_SETCLIPREGION record.
Definition: upmf.c:6729
U_PSEUDO_OBJ * U_PMF_CHARACTERRANGE_set(int32_t First, int32_t Length)
Create and set a U_PMF_CHARACTERRANGE PseudoObject.
Definition: upmf.c:2138
Used to accumulate data for objects continued over multiple records. see EMF+ manual 2...
Definition: upmf.h:1321
int U_PMF_FONT_get(const char *contents, uint32_t *Version, U_FLOAT *EmSize, uint32_t *SizeUnit, int32_t *FSFlags, uint32_t *Length, const char **Data)
Get data from a U_PMF_FONT object.
Definition: upmf.c:5317
int U_PMF_CMN_HDR_get(const char **contents, U_PMF_CMN_HDR *Header)
Get the entire EMF+ record header.
Definition: upmf.c:1469
int U_PMF_PENOPTIONALDATA_get(const char *contents, uint32_t Flags, U_PMF_TRANSFORMMATRIX *Matrix, int32_t *StartCap, int32_t *EndCap, uint32_t *Join, U_FLOAT *MiterLimit, int32_t *Style, int32_t *DLCap, U_FLOAT *DLOffset, const char **DLData, int32_t *Alignment, const char **CmpndLineData, const char **CSCapData, const char **CECapData)
Get data from a U_PMF_PENOPTIONALDATA object.
Definition: upmf.c:6118
EMF+ manual 2.2.2.42, Microsoft name: EmfPlusRegionNodePath Object.
Definition: upmf.h:1978
U_PSEUDO_OBJ * U_PMR_DRAWLINES_set(uint32_t PenID, int dtype, const U_PSEUDO_OBJ *Points)
Create and set a U_PMR_DRAWLINES PseudoObject.
Definition: upmf.c:4182
U_PSEUDO_OBJ * U_PMF_BITMAPDATA_set(const U_PSEUDO_OBJ *Ps, int cbBm, const char *Bm)
Create and set a U_PMF_BITMAPDATA PseudoObject.
Definition: upmf.c:1933
int U_PMF_PALETTE_get(const char *contents, uint32_t *Flags, uint32_t *Elements, const char **Colors)
Get data from a U_PMF_PALETTE object.
Definition: upmf.c:5978
DoublePseudoObject holds pairs of PseudoObjects. Used for constructing paths along with their types...
Definition: upmf.h:1342
EMF+ manual 2.3.1.1, Microsoft name: EmfPlusOffsetClip Record, Index 0x35.
Definition: upmf.h:2115
EMF+ manual 2.3.9.3, Microsoft name: EmfPlusRotateWorldTransform Record, Index 0x2F Construct transfo...
Definition: upmf.h:2770
int U_PMF_REGION_get(const char *contents, uint32_t *Version, uint32_t *Count, const char **Nodes)
Get data from a U_PMF_REGION object.
Definition: upmf.c:5431
U_PSEUDO_OBJ * U_PMF_BITMAP_set(const U_PMF_BITMAP *Bs, const U_PSEUDO_OBJ *Bm)
Create and set a U_PMF_BITMAP PseudoObject.
Definition: upmf.c:1910
U_PSEUDO_OBJ * U_PMF_IE_REDEYECORRECTION_set(uint32_t Elements, const U_RECTL *Rects)
Create and set a U_PMF_IE_REDEYECORRECTION PseudoObject.
Definition: upmf.c:3494
int U_PMF_COMPRESSEDIMAGE_get(const char *contents, const char **Data)
Get data from a U_PMF_COMPRESSEDIMAGE object.
Definition: upmf.c:5625
U_PSEUDO_OBJ * U_PMF_ARGBN_set(uint32_t Count, U_PMF_ARGB *Colors)
Create and set an Array of U_PMF_ARGB valus in a PseudoObject.
Definition: upmf.c:1872
float U_FLOAT
32 bit float
Definition: uemf.h:171
U_PSEUDO_OBJ * U_PMR_DRAWIMAGE_set(uint32_t ImgID, int32_t ImgAttrID, int32_t SrcUnit, const U_PSEUDO_OBJ *SrcRect, const U_PSEUDO_OBJ *DstRect)
Create and set a U_PMR_DRAWIMAGE PseudoObject.
Definition: upmf.c:4099
U_PSEUDO_OBJ * U_PMF_PATHPOINTTYPE_set2(uint32_t Elements, uint8_t First, uint8_t Others)
Create and set an ARRAY of U_PMF_PATHPOINTTYPE objects, with a preceding Elements count...
Definition: upmf.c:2777
int U_PMF_BITMAPDATA_get(const char *contents, U_PMF_PALETTE *Ps, const char **Colors, const char **Data)
Get data from a U_PMF_BITMAPDATA object.
Definition: upmf.c:5501
int U_PMF_CUSTOMLINECAPOPTIONALDATA_get(const char *contents, uint32_t Flags, const char **FillData, const char **LineData)
Get data from a U_PMF_CUSTOMLINECAPOPTIONALDATA object.
Definition: upmf.c:5687
U_PSEUDO_OBJ * U_PO_create(char *Data, size_t Size, size_t Use, uint32_t Type)
Create and set an U_PSEUDO_OBJ.
Definition: upmf.c:504
U_PSEUDO_OBJ * U_PMF_DASHEDLINEDATA_set2(U_FLOAT Unit, int StdPat)
Utility function to create and set a U_PMF_DASHEDLINEDATA PseudoObject from one of a predefined set o...
Definition: upmf.c:2344
U_PSEUDO_OBJ * U_PMR_SETTEXTCONTRAST_set(int TGC)
Create and set a U_PMR_SETTEXTCONTRAST PseudoObject.
Definition: upmf.c:4865
U_PSEUDO_OBJ * U_PMF_ARGB_set(uint8_t Alpha, uint8_t Red, uint8_t Green, uint8_t Blue)
Create and set a U_PMF_ARGB PseudoObject.
Definition: upmf.c:1852
U_PSEUDO_OBJ * U_PMF_RECTF4_set(U_FLOAT X, U_FLOAT Y, U_FLOAT Width, U_FLOAT Height)
Create and set a U_PMF_RECTF object in a PseudoObject.
Definition: upmf.c:3067
int U_PMF_IE_COLORCURVE_get(const char *contents, uint32_t *Adjust, uint32_t *Channel, int32_t *Intensity)
Get data from a U_PMF_IE_COLORCURVE object.
Definition: upmf.c:6516
int U_PMR_OBJECT_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *ObjID, int *otype, int *ntype, uint32_t *TSize, const char **Data)
Get data from a U_PMR_OBJECT record.
Definition: upmf.c:7460
int U_PMF_LEN_FLOATDATA(const char *contents)
Calculate the length in bytes of objects which are a 4 byte Count followed by Count * float bytes...
Definition: upmf.c:1218
int U_PMR_BEGINCONTAINER_get(const char *contents, U_PMF_CMN_HDR *Header, int *UTenum, U_PMF_RECTF *DstRect, U_PMF_RECTF *SrcRect, uint32_t *StackID)
Get data from a U_PMR_BEGINCONTAINER record.
Definition: upmf.c:7656
int U_PMF_HATCHBRUSHDATA_get(const char *contents, uint32_t *Style, U_PMF_ARGB *Foreground, U_PMF_ARGB *Background)
Get data from a U_PMF_HATCHBRUSHDATA object.
Definition: upmf.c:5806
U_PMF_RESETCLIP EMF+ manual 2.3.1.2, Microsoft name: EmfPlusResetClip Record, Index 0x31...
Definition: upmf.h:2122
U_PSEUDO_OBJ * U_PMF_CUSTOMENDCAPDATA_set(const U_PSEUDO_OBJ *Clc)
Create and set a U_PMF_CUSTOMENDCAPDATA PseudoObject.
Definition: upmf.c:2192
U_PSEUDO_OBJ * U_PMF_POINTF_set(uint32_t Elements, const U_PMF_POINTF *Coords)
Create and set an ARRAY of U_PMF_POINTF objects, with a leading Elements value.
Definition: upmf.c:2930
U_PMF_RECTF * rectfs_transform(U_PMF_RECTF *Rects, int Count, U_XFORM Xform)
Allocate and construct an array of U_PMF_RECTF objects which have been subjected to a U_XFORM...
Definition: upmf.c:1032
U_PSEUDO_OBJ * U_PMF_INTEGER7_set(int Value)
Create and set a U_PMF_INTEGER7 PseudoObject.
Definition: upmf.c:2510
int U_PMF_LEN_OPTPENDATA(const char *PenData, uint32_t Flags)
Return the size of an OptPenData object from an EMF+ record.
Definition: upmf.c:1503
U_PSEUDO_OBJ * U_PMF_RECTN_set(uint32_t Elements, U_PMF_RECT *Rects)
Create and set an array of U_PMF_RECT objects in a PseudoObject.
Definition: upmf.c:3043
int U_OID_To_IDT(uint32_t OID)
Convert from PseudoObject OID to ImageDataType Enumeration.
Definition: upmf.c:406
U_PSEUDO_OBJ * U_PMR_SETPIXELOFFSETMODE_set(int POMenum)
Create and set a U_PMR_SETPIXELOFFSETMODE PseudoObject.
Definition: upmf.c:4820
int U_PMF_LEN_BYTEDATA(const char *contents)
Calculate the length in bytes of objects which are a 4 byte count followed by count bytes...
Definition: upmf.c:1236
int U_PMF_IE_HUESATURATIONLIGHTNESS_get(const char *contents, int32_t *Hue, int32_t *Saturation, int32_t *Lightness)
Get data from a U_PMF_IE_HUESATURATIONLIGHTNESS object.
Definition: upmf.c:6569
U_PSEUDO_OBJ * U_PMR_SAVE_set(int StackID)
Create and set a U_PMR_SAVE PseudoObject.
Definition: upmf.c:5003
EMF+ manual 2.2.3.3, Microsoft name: ColorBalanceEffect Object.
Definition: upmf.h:2043
EMF+ manual 2.2.2.16, Microsoft name: EmfPlusDashedLineData Object.
Definition: upmf.h:1681
int U_PMF_POINT_get(const char **contents, U_FLOAT *X, U_FLOAT *Y)
Get data from a U_PMF_POINT object.
Definition: upmf.c:6165
U_PSEUDO_OBJ * U_PMR_BEGINCONTAINER_set(int UTenum, U_PSEUDO_OBJ *DstRect, U_PSEUDO_OBJ *SrcRect, uint32_t StackID)
Create and set a U_PMR_BEGINCONTAINER PseudoObject.
Definition: upmf.c:4910
int U_PMR_SETPAGETRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header, int *PUenum, U_FLOAT *Scale)
Get data from a U_PMR_SETPAGETRANSFORM record.
Definition: upmf.c:7894
int U_PMF_GRAPHICSVERSION_get(const char *contents, int *Signature, int *GrfVersion)
Get data from a U_PMF_GRAPHICSVERSION object.
Definition: upmf.c:5787
EMF+ manual 2.3.4.21, Microsoft name: EmfPlusFillRegion Record, Index 0x13.
Definition: upmf.h:2561
EMF+ manual 2.3.7.1, Microsoft name: EmfPlusBeginContainer Record, Index 0x27.
Definition: upmf.h:2675
int U_PMF_BRUSH_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **Data)
Get data from a U_PMF_BRUSH object.
Definition: upmf.c:5278
U_PSEUDO_OBJ * U_PMR_FILLPATH_set(uint32_t PathID, const U_PSEUDO_OBJ *BrushID)
Create and set a U_PMR_FILLPATH PseudoObject.
Definition: upmf.c:4437
U_PSEUDO_OBJ * U_PMF_COMPRESSEDIMAGE_set(int32_t cbImage, const char *Image)
Create and set a U_PMF_COMPRESSEDIMAGE PseudoObject.
Definition: upmf.c:2175
EMF+ manual 2.2.1.5, Microsoft name: EmfPlusImageAttributes Object.
Definition: upmf.h:1439
EMF+ manual 2.3.8.2, Microsoft name: EmfPlusSetTSGraphics Record, Index 0x39.
Definition: upmf.h:2726
int U_PMR_MULTIFORMATSTART_get(const char *contents, U_PMF_CMN_HDR *Header)
Get data from a U_PMR_MULTIFORMATSTART record.
Definition: upmf.c:7971
U_PSEUDO_OBJ * U_PMF_IE_COLORMATRIX_set(const U_FLOAT *Matrix)
Create and set a U_PMF_IE_COLORMATRIX PseudoObject.
Definition: upmf.c:3430
U_DPSEUDO_OBJ * U_PATH_create(int Elements, const U_PMF_POINTF *Points, uint8_t First, uint8_t Others)
Create U_DPSEUDO_OBJ&#39;s for the Points and Types of a path.
Definition: upmf.c:675
U_PSEUDO_OBJ * U_PMF_BLENDCOLORS_set(uint32_t Elements, const U_FLOAT *Positions, const U_PSEUDO_OBJ *Colors)
Create and set a U_PMF_BLENDCOLORS PseudoObject.
Definition: upmf.c:1953
int U_PMR_DRAWPIE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PenID, int *ctype, U_FLOAT *Start, U_FLOAT *Sweep, U_PMF_RECTF *Rect)
Get data from a U_PMR_DRAWPIE record.
Definition: upmf.c:7138
U_PSEUDO_OBJ * U_PMF_PATHPOINTTYPERLE_set(uint32_t Elements, const uint8_t *Bz, const uint8_t *RL, const uint8_t *Ppte)
Create and set an ARRAY of U_PMF_PATHPOINTTYPERLE objects.
Definition: upmf.c:2799
Definition: uemf.h:3146
U_PSEUDO_OBJ * U_PMF_BRUSH_set(uint32_t Version, const U_PSEUDO_OBJ *Bd)
Create and set a U_PMF_BRUSH PseudoObject.
Definition: upmf.c:1529
EMF+ manual 2.2.2.5, Microsoft name: EmfPlusBlendFactors Object.
Definition: upmf.h:1574
U_PSEUDO_OBJ * U_PMF_PATHGRADIENTBRUSHDATA_set(uint32_t Flags, int32_t WrapMode, U_PMF_ARGB CenterColor, U_PMF_POINTF Center, const U_PSEUDO_OBJ *Gradient, const U_PSEUDO_OBJ *Boundary, const U_PSEUDO_OBJ *Data)
Create and set a U_PMF_PATHGRADIENTBRUSHDATA PseudoObject.
Definition: upmf.c:2695
EMF+ manual 2.2.3.4, Microsoft name: ColorCurveEffect Object Adjust Range Exposure -255 to 255...
Definition: upmf.h:2059
U_PSEUDO_OBJ * U_PMR_DRAWELLIPSE_set(uint32_t PenID, const U_PSEUDO_OBJ *Rect)
Create and set a U_PMR_DRAWELLIPSE PseudoObject.
Definition: upmf.c:4065
EMF+ manual 2.3.4.11, Microsoft name: EmfPlusDrawPath Record, Index 0x15.
Definition: upmf.h:2395
EMF+ manual 2.3.4.20, Microsoft name: EmfPlusFillRects Record, Index 0x0A.
Definition: upmf.h:2545
int U_PMF_INTEGER15_get(const char **contents, U_FLOAT *Value)
Get data from a U_PMF_INTEGER15 object.
Definition: upmf.c:5845
EMF+ manual 2.3.6.8, Microsoft name: EmfPlusSetTextRenderingHint Record, Index 0x1F.
Definition: upmf.h:2665
U_PSEUDO_OBJ * U_PMR_SETTSGRAPHICS_set(int vgatype, U_PMF_SETTSGRAPHICS *Tsg, U_PSEUDO_OBJ *Palette)
Create and set a U_PMR_SETTSGRAPHICS PseudoObject.
Definition: upmf.c:5057
int U_PMR_DRAWBEZIERS_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PenID, int *ctype, int *RelAbs, uint32_t *Elements, U_PMF_POINTF **Points)
Get data from a U_PMR_DRAWBEZIERS record.
Definition: upmf.c:6870
int U_PMR_FILLPOLYGON_get(const char *contents, U_PMF_CMN_HDR *Header, int *btype, int *ctype, int *RelAbs, uint32_t *BrushID, uint32_t *Elements, U_PMF_POINTF **Points)
Get data from a U_PMR_FILLPOLYGON record.
Definition: upmf.c:7343
U_PSEUDO_OBJ * U_PMF_PATHPOINTTYPE_set(uint32_t Elements, const uint8_t *Ppt)
Create and set an ARRAY of U_PMF_PATHPOINTTYPE objects.
Definition: upmf.c:2757
int U_PMF_REGIONNODE_get(const char *contents, uint32_t *Type, const char **Data)
Get data from a U_PMF_REGIONNODE object.
Definition: upmf.c:6334
int U_PMF_IE_BRIGHTNESSCONTRAST_get(const char *contents, int32_t *Brightness, int32_t *Contrast)
Get data from a U_PMF_IE_BRIGHTNESSCONTRAST object.
Definition: upmf.c:6480
EMF+ manual 2.3.9.1, Microsoft name: EmfPlusMultiplyWorldTransform Record, Index 0x2C.
Definition: upmf.h:2749
int U_PMF_IE_COLORBALANCE_get(const char *contents, int32_t *CyanRed, int32_t *MagentaGreen, int32_t *YellowBlue)
Get data from a U_PMF_IE_COLORBALANCE object.
Definition: upmf.c:6497
int U_PMR_SETCOMPOSITINGQUALITY_get(const char *contents, U_PMF_CMN_HDR *Header, int *CQenum)
Get data from a U_PMR_SETCOMPOSITINGQUALITY record.
Definition: upmf.c:7544
int U_PMR_SETTSGRAPHICS_get(const char *contents, U_PMF_CMN_HDR *Header, int *vgatype, int *pptype, uint8_t *AntiAliasMode, uint8_t *TextRenderHint, uint8_t *CompositingMode, uint8_t *CompositingQuality, int16_t *RenderOriginX, int16_t *RenderOriginY, uint16_t *TextContrast, uint8_t *FilterType, uint8_t *PixelOffset, U_PMF_TRANSFORMMATRIX *WorldToDevice, const char **Data)
Get data from a U_PMR_SETTSGRAPHICS record.
Definition: upmf.c:7778
uint16_t U_PMF_PATHPOINTTYPERLE
EMF+ manual 2.2.2.32, Microsoft name: EmfPlusPathPointTypeRLE Object.
Definition: upmf.h:1906
int U_PMR_SETCOMPOSITINGMODE_get(const char *contents, U_PMF_CMN_HDR *Header, int *CMenum)
Get data from a U_PMR_SETCOMPOSITINGMODE record.
Definition: upmf.c:7526
int U_PMF_IMAGEATTRIBUTES_get(const char *contents, uint32_t *Version, uint32_t *WrapMode, uint32_t *ClampColor, uint32_t *ObjectClamp)
Get data from a U_PMF_IMAGEATTRIBUTES object.
Definition: upmf.c:5360
U_PSEUDO_OBJ * U_PMF_REGIONNODECHILDNODES_set(const U_PSEUDO_OBJ *Left, const U_PSEUDO_OBJ *Right)
Create and set a U_PMF_REGIONNODECHILDNODES PseudoObject.
Definition: upmf.c:3169
int U_PMR_drawline(uint32_t PenID, uint32_t PathID, U_PMF_POINTF Start, U_PMF_POINTF End, int Dashed, U_PSEUDO_OBJ *sum, EMFTRACK *et)
Utility function to draw a line.
Definition: upmf.c:106
int U_PMF_IE_BLUR_get(const char *contents, U_FLOAT *Radius, uint32_t *ExpandEdge)
Get data from a U_PMF_IE_BLUR object.
Definition: upmf.c:6464
int U_OID_To_RNDT(uint32_t OID)
Convert from PseudoObject OID to RegionNodeDataType Enumeration.
Definition: upmf.c:422
int U_PATH_arcto(U_DPSEUDO_OBJ *Path, U_FLOAT Start, U_FLOAT Sweep, U_FLOAT Rot, U_PMF_RECTF *Rect, uint8_t Flags, int StartSeg)
Append an &quot;arcto&quot; set of points to a path (Bezier points are calculated, and these are appended...
Definition: upmf.c:942
U_PSEUDO_OBJ * U_PMR_TRANSLATEWORLDTRANSFORM_set(int xmtype, U_FLOAT Dx, U_FLOAT Dy)
Create and set a U_PMR_TRANSLATEWORLDTRANSFORM PseudoObject.
Definition: upmf.c:5235
U_PSEUDO_OBJ * U_PMR_SETPAGETRANSFORM_set(int PUenum, U_FLOAT Scale)
Create and set a U_PMR_SETPAGETRANSFORM PseudoObject.
Definition: upmf.c:5185
EMF+ manual 2.2.2.8, Microsoft name: EmfPlusCharacterRange Object.
Definition: upmf.h:1599
U_PSEUDO_OBJ * U_PMF_PEN_set(uint32_t Version, const U_PSEUDO_OBJ *PenData, const U_PSEUDO_OBJ *Brush)
Create and set a U_PMF_PEN PseudoObject.
Definition: upmf.c:1752
EMF+ manual 2.2.3.6, Microsoft name: ColorMatrixEffect Object.
Definition: upmf.h:2074
int U_OA_append(U_OBJ_ACCUM *oa, const char *data, int size, int Type, int Id)
Append data to an U_OBJ_ACCUM structure.
Definition: upmf.c:442
For U_EMR[FILLRGN|STRETCHBLT|MASKBLT|PLGBLT] xformSrc field.
Definition: uemf.h:1987
int U_PMF_IE_COLORLOOKUPTABLE_get(const char *contents, const uint8_t **BLUT, const uint8_t **GLUT, const uint8_t **RLUT, const uint8_t **ALUT)
Get data from a U_PMF_IE_COLORLOOKUPTABLE object.
Definition: upmf.c:6535