Lines Matching defs:record

7   These functions check the record types and report if there are any issues
10 declared size of the record.
42 \param blimit one byte past the end of the record
54 \brief Test a U_EMRTEXT record
55 \param pemt Pointer to a U_EMRTEXT record
56 \param record Pointer to the start of the record which contains this U_EMRTEXT
57 \param blimit one byte past the end of the record.
61 const char *record,
75 if(IS_MEM_UNSAFE(record, offDx + count*4, blimit))return(0);
99 \param blimit one byte past the end of the record.
113 \brief Check that the bitmap in the specified DIB is compatible with the record size
116 \param record EMF record that contains a DIB pixel array
118 \param offBmi offset from the start of the record to the start of the bitmapinfo structure
119 \param cbBmi declared space for the bitmapinfo structure in the record
120 \param offBits offset from the start of the record to the start of the bitmap
121 \param cbBits declared space for the bitmap in the record (amount used may be less than this)
122 \param blimit one byte past the end of the record.
128 const char *record,
142 if(!cbBmi)return(1); // No DIB in a record where it is optional
143 if(IS_MEM_UNSAFE(record, offBmi + cbBmi, blimit))return(0);
144 if(!bitmapinfo_safe(record + offBmi, blimit))return(0); // checks the number of colors
145 if(cbBits && IS_MEM_UNSAFE(record, offBits + cbBits, blimit))return(0);
149 dibparams = get_DIB_params(record, offBits, offBmi, &px, (const U_RGBQUAD **) &ct,
165 if(IS_MEM_UNSAFE(record+offBits, usedbytes, blimit))return(0);
179 void core1_safe(const char *record){
189 // sizeof(U_ENHMETARECORD) bytes in the record
190 int core5_safe(const char *record, int minSize){
191 PU_EMR pEmr = (PU_EMR)(record);
197 int core1_safe(const char *record){
198 if(!core5_safe(record, U_SIZE_EMRPOLYLINETO))return(0);
199 PU_EMRPOLYLINETO pEmr = (PU_EMRPOLYLINETO) (record);
201 const char *blimit = record + pEmr->emr.nSize;
207 int core2_safe(const char *record){
208 if(!core5_safe(record, U_SIZE_EMRPOLYPOLYLINE))return(0);
209 PU_EMRPOLYPOLYLINE pEmr = (PU_EMRPOLYPOLYLINE) (record);
212 const char * blimit = record + pEmr->emr.nSize;
214 record += sizeof(U_EMRPOLYPOLYLINE) - 4 + sizeof(uint32_t)* nPolys;
215 if(IS_MEM_UNSAFE(record, count*sizeof(U_POINTL), blimit))return(0);
221 int core3_safe(const char *record){
222 if(!core5_safe(record, U_SIZE_EMRSETMAPMODE))return(0);
227 int core4_safe(const char *record){
228 if(!core5_safe(record, U_SIZE_EMRELLIPSE))return(0);
233 int core6_safe(const char *record){
234 if(!core5_safe(record, U_SIZE_EMRPOLYBEZIER16))return(0);
235 PU_EMRPOLYBEZIER16 pEmr = (PU_EMRPOLYBEZIER16) (record);
237 const char *blimit = record + pEmr->emr.nSize;
244 int core7_safe(const char *record){
245 if(!core5_safe(record, U_SIZE_EMRSETWINDOWEXTEX))return(0);
250 int core8_safe(const char *record){
251 if(!core5_safe(record, U_SIZE_EMREXTTEXTOUTA))return(0);
252 PU_EMREXTTEXTOUTA pEmr = (PU_EMREXTTEXTOUTA) (record);
253 const char *blimit = record + pEmr->emr.nSize;
254 if(!emrtext_safe(&(pEmr->emrtext),record,blimit))return(0);
259 int core9_safe(const char *record){
260 if(!core5_safe(record, U_SIZE_EMRARC))return(0);
265 int core10_safe(const char *record){
266 if(!core5_safe(record, U_SIZE_EMRPOLYPOLYLINE16))return(0);
267 PU_EMRPOLYPOLYLINE16 pEmr = (PU_EMRPOLYPOLYLINE16) (record);
270 const char *blimit = record + pEmr->emr.nSize;
272 record += sizeof(U_EMRPOLYPOLYLINE16) - 4 + sizeof(uint32_t)* nPolys;
273 if(IS_MEM_UNSAFE(record, count*sizeof(U_POINT16), blimit))return(0);
278 int core11_safe(const char *record){
279 if(!core5_safe(record, U_SIZE_EMRINVERTRGN))return(0);
280 PU_EMRINVERTRGN pEmr = (PU_EMRINVERTRGN)(record);
282 const char *blimit = record + pEmr->emr.nSize;
289 int core12_safe(const char *record){
290 if(!core5_safe(record, U_SIZE_EMRCREATEMONOBRUSH))return(0);
291 PU_EMRCREATEMONOBRUSH pEmr = (PU_EMRCREATEMONOBRUSH) (record);
292 const char *blimit = record + pEmr->emr.nSize;
298 return(DIB_safe(record, iUsage, offBmi, cbBmi, offBits, cbBits, blimit));
302 int core13_safe(const char *record){
303 if(!core5_safe(record, U_SIZE_EMRALPHABLEND))return(0);
304 PU_EMRALPHABLEND pEmr = (PU_EMRALPHABLEND) (record);
305 const char *blimit = record + pEmr->emr.nSize;
311 return(DIB_safe(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit));
315 These are the core EMR_safe functions, each converts a particular type of record.
316 All operate in place on the chunk of memory holding that record.
318 the record. These cases return a status value of 0 if that happens, 1 on success. Other
324 All of the record level (hidden) functions have this form:
325 \brief Convert a pointer to a U_EMR_whatever record which has not been implemented.
326 \param record pointer to a buffer holding the EMR record
329 int U_EMRNOTIMPLEMENTED_safe(const char *record){
330 fprintf(stderr,"EMF WARNING: could not safety check record because that type has not been implemented!\n");
331 return(core5_safe(record, sizeof(U_EMR)));
335 int U_EMRHEADER_safe(const char *record){
337 return(core5_safe(record, U_SIZE_EMRHEADER_MIN));
341 int U_EMRPOLYBEZIER_safe(const char *record){
342 return(core1_safe(record));
346 int U_EMRPOLYGON_safe(const char *record){
347 return(core1_safe(record));
351 int U_EMRPOLYLINE_safe(const char *record){
352 return(core1_safe(record));
356 int U_EMRPOLYBEZIERTO_safe(const char *record){
357 return(core1_safe(record));
361 int U_EMRPOLYLINETO_safe(const char *record){
362 return(core1_safe(record));
366 int U_EMRPOLYPOLYLINE_safe(const char *record){
367 return(core2_safe(record));
371 int U_EMRPOLYPOLYGON_safe(const char *record){
372 return(core2_safe(record));
376 int U_EMRSETWINDOWEXTEX_safe(const char *record){
377 return(core7_safe(record));
381 int U_EMRSETWINDOWORGEX_safe(const char *record){
382 return(core7_safe(record));
386 int U_EMRSETVIEWPORTEXTEX_safe(const char *record){
387 return(core7_safe(record));
391 int U_EMRSETVIEWPORTORGEX_safe(const char *record){
392 return(core7_safe(record));
396 int U_EMRSETBRUSHORGEX_safe(const char *record){
397 return(core7_safe(record));
401 int U_EMREOF_safe(const char *record){
402 if(!core5_safe(record, U_SIZE_EMREOF))return(0);
403 PU_EMREOF pEmr = (PU_EMREOF)(record);
404 const char *blimit = record + pEmr->emr.nSize;
407 if(IS_MEM_UNSAFE(record, pEmr->offPalEntries + 2*2, blimit))return(0);// 2 16 bit values in U_LOGPALLETE
410 if(IS_MEM_UNSAFE(record, off + 4, blimit))return(0);
416 int U_EMRSETPIXELV_safe(const char *record){
417 return(core5_safe(record, U_SIZE_EMRSETPIXELV));
423 int U_EMRSETMAPPERFLAGS_safe(const char *record){
424 return(core5_safe(record, U_SIZE_EMRSETMAPPERFLAGS));
429 int U_EMRSETMAPMODE_safe(const char *record){
430 return(core3_safe(record));
434 int U_EMRSETBKMODE_safe(const char *record){
435 return(core3_safe(record));
439 int U_EMRSETPOLYFILLMODE_safe(const char *record){
440 return(core3_safe(record));
444 int U_EMRSETROP2_safe(const char *record){
445 return(core3_safe(record));
449 int U_EMRSETSTRETCHBLTMODE_safe(const char *record){
450 return(core3_safe(record));
454 int U_EMRSETTEXTALIGN_safe(const char *record){
455 return(core3_safe(record));
459 int U_EMRSETCOLORADJUSTMENT_safe(const char *record){
460 return(core5_safe(record, U_SIZE_EMRSETCOLORADJUSTMENT));
464 int U_EMRSETTEXTCOLOR_safe(const char *record){
465 return(core5_safe(record, U_SIZE_EMRSETTEXTCOLOR));
469 int U_EMRSETBKCOLOR_safe(const char *record){
470 return(core5_safe(record, U_SIZE_EMRSETBKCOLOR));
474 int U_EMROFFSETCLIPRGN_safe(const char *record){
475 return(core7_safe(record));
479 int U_EMRMOVETOEX_safe(const char *record){
480 return(core7_safe(record));
484 int U_EMRSETMETARGN_safe(const char *record){
485 return(core5_safe(record, U_SIZE_EMRSETMETARGN));
489 int U_EMREXCLUDECLIPRECT_safe(const char *record){
490 return(core4_safe(record));
494 int U_EMRINTERSECTCLIPRECT_safe(const char *record){
495 return(core4_safe(record));
499 int U_EMRSCALEVIEWPORTEXTEX_safe(const char *record){
500 return(core4_safe(record));
504 int U_EMRSCALEWINDOWEXTEX_safe(const char *record){
505 return(core4_safe(record));
509 int U_EMRSAVEDC_safe(const char *record){
510 return(core5_safe(record, U_SIZE_EMRSAVEDC));
514 int U_EMRRESTOREDC_safe(const char *record){
515 return(core3_safe(record));
519 int U_EMRSETWORLDTRANSFORM_safe(const char *record){
520 return(core5_safe(record, U_SIZE_EMRSETWORLDTRANSFORM));
524 int U_EMRMODIFYWORLDTRANSFORM_safe(const char *record){
525 return(core5_safe(record, U_SIZE_EMRMODIFYWORLDTRANSFORM));
529 int U_EMRSELECTOBJECT_safe(const char *record){
530 return(core5_safe(record, U_SIZE_EMRSELECTOBJECT));
534 int U_EMRCREATEPEN_safe(const char *record){
535 return(core5_safe(record, U_SIZE_EMRCREATEPEN));
539 int U_EMRCREATEBRUSHINDIRECT_safe(const char *record){
540 return(core5_safe(record, U_SIZE_EMRCREATEBRUSHINDIRECT));
544 int U_EMRDELETEOBJECT_safe(const char *record){
545 return(core5_safe(record, U_SIZE_EMRDELETEOBJECT));
550 int U_EMRANGLEARC_safe(const char *record){
551 return(core5_safe(record, U_SIZE_EMRANGLEARC));
555 int U_EMRELLIPSE_safe(const char *record){
556 return(core4_safe(record));
560 int U_EMRRECTANGLE_safe(const char *record){
561 return(core4_safe(record));
565 int U_EMRROUNDRECT_safe(const char *record){
566 return(core5_safe(record, U_SIZE_EMRROUNDRECT));
570 int U_EMRARC_safe(const char *record){
571 return(core9_safe(record));
575 int U_EMRCHORD_safe(const char *record){
576 return(core9_safe(record));
580 int U_EMRPIE_safe(const char *record){
581 return(core9_safe(record));
585 int U_EMRSELECTPALETTE_safe(const char *record){
586 return(core3_safe(record));
590 int U_EMRCREATEPALETTE_safe(const char *record){
591 return(core5_safe(record, U_SIZE_EMRCREATEPALETTE));
595 int U_EMRSETPALETTEENTRIES_safe(const char *record){
596 return(core5_safe(record, U_SIZE_EMRSETPALETTEENTRIES));
600 int U_EMRRESIZEPALETTE_safe(const char *record){
601 return(core7_safe(record));
605 int U_EMRREALIZEPALETTE_safe(const char *record){
606 return(core5_safe(record, U_SIZE_EMRREALIZEPALETTE));
610 int U_EMREXTFLOODFILL_safe(const char *record){
611 return(core5_safe(record, U_SIZE_EMREXTFLOODFILL));
615 int U_EMRLINETO_safe(const char *record){
616 return(core7_safe(record));
620 int U_EMRARCTO_safe(const char *record){
621 return(core9_safe(record));
625 int U_EMRPOLYDRAW_safe(const char *record){
626 if(!core5_safe(record, U_SIZE_EMRPOLYDRAW))return(0);
627 PU_EMRPOLYDRAW pEmr = (PU_EMRPOLYDRAW)(record);
629 const char *blimit = record + pEmr->emr.nSize;
635 int U_EMRSETARCDIRECTION_safe(const char *record){
636 return(core3_safe(record));
640 int U_EMRSETMITERLIMIT_safe(const char *record){
641 return(core3_safe(record));
646 int U_EMRBEGINPATH_safe(const char *record){
647 return(core5_safe(record, U_SIZE_EMRBEGINPATH));
651 int U_EMRENDPATH_safe(const char *record){
652 return(core5_safe(record, U_SIZE_EMRENDPATH));
656 int U_EMRCLOSEFIGURE_safe(const char *record){
657 return(core5_safe(record, U_SIZE_EMRCLOSEFIGURE));
661 int U_EMRFILLPATH_safe(const char *record){
662 return(core4_safe(record));
666 int U_EMRSTROKEANDFILLPATH_safe(const char *record){
667 return(core4_safe(record));
671 int U_EMRSTROKEPATH_safe(const char *record){
672 return(core4_safe(record));
676 int U_EMRFLATTENPATH_safe(const char *record){
677 return(core5_safe(record, U_SIZE_EMRFLATTENPATH));
681 int U_EMRWIDENPATH_safe(const char *record){
682 return(core5_safe(record, U_SIZE_EMRWIDENPATH));
686 int U_EMRSELECTCLIPPATH_safe(const char *record){
687 return(core3_safe(record));
691 int U_EMRABORTPATH_safe(const char *record){
692 return(core5_safe(record, U_SIZE_EMRABORTPATH));
699 int U_EMRCOMMENT_safe(const char *record){
700 if(!core5_safe(record, U_SIZE_EMRCOMMENT))return(0);
701 PU_EMRCOMMENT pEmr = (PU_EMRCOMMENT)(record);
703 const char *blimit =record + pEmr->emr.nSize;
704 if(IS_MEM_UNSAFE(record, cbData + sizeof(U_SIZE_EMRCOMMENT), blimit))return(0);
709 int U_EMRFILLRGN_safe(const char *record){
710 if(!core5_safe(record, U_SIZE_EMRFILLRGN))return(0);
711 PU_EMRFILLRGN pEmr = (PU_EMRFILLRGN)(record);
713 const char *blimit = record + pEmr->emr.nSize;
719 int U_EMRFRAMERGN_safe(const char *record){
720 if(!core5_safe(record, U_SIZE_EMRFRAMERGN))return(0);
721 PU_EMRFRAMERGN pEmr = (PU_EMRFRAMERGN)(record);
723 const char *blimit = record + pEmr->emr.nSize;
729 int U_EMRINVERTRGN_safe(const char *record){
730 return(core11_safe(record));
734 int U_EMRPAINTRGN_safe(const char *record){
735 return(core11_safe(record));
739 int U_EMREXTSELECTCLIPRGN_safe(const char *record){
740 if(!core5_safe(record, U_SIZE_EMREXTSELECTCLIPRGN))return(0);
741 PU_EMREXTSELECTCLIPRGN pEmr = (PU_EMREXTSELECTCLIPRGN)(record);
745 const char *blimit = record + pEmr->emr.nSize;
751 int U_EMRBITBLT_safe(const char *record){
752 if(!core5_safe(record, U_SIZE_EMRBITBLT))return(0);
753 PU_EMRBITBLT pEmr = (PU_EMRBITBLT) (record);
754 const char *blimit = record + pEmr->emr.nSize;
760 return(DIB_safe(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit));
764 int U_EMRSTRETCHBLT_safe(const char *record){
765 if(!core5_safe(record, U_SIZE_EMRSTRETCHBLT))return(0);
766 PU_EMRBITBLT pEmr = (PU_EMRBITBLT) (record);
767 const char *blimit = record + pEmr->emr.nSize;
773 return(DIB_safe(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit));
777 int U_EMRMASKBLT_safe(const char *record){
778 if(!core5_safe(record, U_SIZE_EMRMASKBLT))return(0);
779 PU_EMRMASKBLT pEmr = (PU_EMRMASKBLT) (record);
780 const char *blimit = record + pEmr->emr.nSize;
791 if(!DIB_safe(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit))return(0);
792 return(DIB_safe(record, iUsageMask, offBmiMask, cbBmiMask, offBitsMask, cbBitsMask, blimit));
796 int U_EMRPLGBLT_safe(const char *record){
797 if(!core5_safe(record, U_SIZE_EMRPLGBLT))return(0);
798 PU_EMRPLGBLT pEmr = (PU_EMRPLGBLT) (record);
799 const char *blimit = record + pEmr->emr.nSize;
810 if(!DIB_safe(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit))return(0);
811 return(DIB_safe(record, iUsageMask, offBmiMask, cbBmiMask, offBitsMask, cbBitsMask, blimit));
815 int U_EMRSETDIBITSTODEVICE_safe(const char *record){
816 if(!core5_safe(record, U_SIZE_EMRSETDIBITSTODEVICE))return(0);
817 PU_EMRSETDIBITSTODEVICE pEmr = (PU_EMRSETDIBITSTODEVICE) (record);
818 const char *blimit = record + pEmr->emr.nSize;
824 return(DIB_safe(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit));
828 int U_EMRSTRETCHDIBITS_safe(const char *record){
829 if(!core5_safe(record, U_SIZE_EMRSTRETCHDIBITS))return(0);
830 PU_EMRSTRETCHDIBITS pEmr = (PU_EMRSTRETCHDIBITS) (record);
831 const char *blimit = record + pEmr->emr.nSize;
837 return(DIB_safe(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit));
841 int U_EMREXTCREATEFONTINDIRECTW_safe(const char *record){
843 if(core5_safe(record, U_SIZE_EMREXTCREATEFONTINDIRECTW_LOGFONT))return(1);
844 return(core5_safe(record, U_SIZE_EMREXTCREATEFONTINDIRECTW_LOGFONT_PANOSE));
848 int U_EMREXTTEXTOUTA_safe(const char *record){
849 return(core8_safe(record));
853 int U_EMREXTTEXTOUTW_safe(const char *record){
854 return(core8_safe(record));
859 \brief Convert a pointer to a U_EMR_POLYBEZIER16 record.
860 \param record pointer to a buffer holding the EMR record
862 int U_EMRPOLYBEZIER16_safe(const char *record){
863 return(core6_safe(record));
867 int U_EMRPOLYGON16_safe(const char *record){
868 return(core6_safe(record));
872 int U_EMRPOLYLINE16_safe(const char *record){
873 return(core6_safe(record));
877 int U_EMRPOLYBEZIERTO16_safe(const char *record){
878 return(core6_safe(record));
883 \brief Convert a pointer to a U_EMR_POLYLINETO16 record.
884 \param record pointer to a buffer holding the EMR record
886 int U_EMRPOLYLINETO16_safe(const char *record){
887 return(core6_safe(record));
891 int U_EMRPOLYPOLYLINE16_safe(const char *record){
892 return(core10_safe(record));
896 int U_EMRPOLYPOLYGON16_safe(const char *record){
897 return(core10_safe(record));
902 int U_EMRPOLYDRAW16_safe(const char *record){
903 if(!core5_safe(record, U_SIZE_EMRPOLYDRAW16))return(0);
904 PU_EMRPOLYDRAW16 pEmr = (PU_EMRPOLYDRAW16)(record);
906 const char *blimit = record + pEmr->emr.nSize;
912 int U_EMRCREATEMONOBRUSH_safe(const char *record){
913 return(core12_safe(record));
917 int U_EMRCREATEDIBPATTERNBRUSHPT_safe(const char *record){
918 return(core12_safe(record));
923 int U_EMREXTCREATEPEN_safe(const char *record){
924 if(!core5_safe(record, U_SIZE_EMREXTCREATEPEN))return(0);
925 PU_EMREXTCREATEPEN pEmr = (PU_EMREXTCREATEPEN)(record);
926 const char *blimit = record + pEmr->emr.nSize;
931 if(!DIB_safe(record, U_DIB_RGB_COLORS, offBmi, cbBmi, offBits, cbBits, blimit))return(0);
941 int U_EMRSETICMMODE_safe(const char *record){
942 return(core3_safe(record));
946 int U_EMRCREATECOLORSPACE_safe(const char *record){
947 return(core5_safe(record, U_SIZE_EMRCREATECOLORSPACE));
951 int U_EMRSETCOLORSPACE_safe(const char *record){
952 return(core3_safe(record));
956 int U_EMRDELETECOLORSPACE_safe(const char *record){
957 return(core3_safe(record));
966 int U_EMRPIXELFORMAT_safe(const char *record){
967 return(core5_safe(record, U_SIZE_EMRPIXELFORMAT));
978 int U_EMRSMALLTEXTOUT_safe(const char *record){
979 if(!core5_safe(record, U_SIZE_EMRSMALLTEXTOUT))return(0);
980 PU_EMRSMALLTEXTOUT pEmr = (PU_EMRSMALLTEXTOUT)(record);
984 const char *blimit = record + pEmr->emr.nSize;
986 if(IS_MEM_UNSAFE(record, roff + sizeof(U_RECTL), blimit))return(0);
988 if(IS_MEM_UNSAFE(record, roff + sizeof(U_RECTL) + cChars, blimit))return(0);
1004 int U_EMRALPHABLEND_safe(const char *record){
1005 return(core13_safe(record));
1009 int U_EMRSETLAYOUT_safe(const char *record){
1010 return(core3_safe(record));
1014 int U_EMRTRANSPARENTBLT_safe(const char *record){
1015 return(core13_safe(record));
1022 int U_EMRGRADIENTFILL_safe(const char *record){
1023 if(!core5_safe(record, U_SIZE_EMRGRADIENTFILL))return(0);
1024 PU_EMRGRADIENTFILL pEmr = (PU_EMRGRADIENTFILL)(record);
1028 const char *blimit = record + pEmr->emr.nSize;
1029 if(IS_MEM_UNSAFE(record, nTriVert*sizeof(U_TRIVERTEX), blimit))return(0);
1030 record += nTriVert * sizeof(U_TRIVERTEX);
1033 if(IS_MEM_UNSAFE(record, nGradObj*sizeof(U_GRADIENT3), blimit))return(0);
1036 if(IS_MEM_UNSAFE(record, nGradObj*sizeof(U_GRADIENT4), blimit))return(0);
1050 int U_EMRCREATECOLORSPACEW_safe(const char *record){
1051 return(core5_safe(record, U_SIZE_EMRCREATECOLORSPACEW));
1057 \brief Test an EMF record in memory from Big Endian to Little Endian.
1059 \param record pointer to the EMF record in memory
1061 Normally this would be called immediately after reading a record from a file
1067 int U_emf_record_safe(const char *record){
1070 if(!record)return(0); // programming error
1072 switch (U_EMRTYPE(record))
1074 case U_EMR_HEADER: rstatus=U_EMRHEADER_safe(record); break;
1075 case U_EMR_POLYBEZIER: rstatus=U_EMRPOLYBEZIER_safe(record); break;
1076 case U_EMR_POLYGON: rstatus=U_EMRPOLYGON_safe(record); break;
1077 case U_EMR_POLYLINE: rstatus=U_EMRPOLYLINE_safe(record); break;
1078 case U_EMR_POLYBEZIERTO: rstatus=U_EMRPOLYBEZIERTO_safe(record); break;
1079 case U_EMR_POLYLINETO: rstatus=U_EMRPOLYLINETO_safe(record); break;
1080 case U_EMR_POLYPOLYLINE: rstatus=U_EMRPOLYPOLYLINE_safe(record); break;
1081 case U_EMR_POLYPOLYGON: rstatus=U_EMRPOLYPOLYGON_safe(record); break;
1082 case U_EMR_SETWINDOWEXTEX: rstatus=U_EMRSETWINDOWEXTEX_safe(record); break;
1083 case U_EMR_SETWINDOWORGEX: rstatus=U_EMRSETWINDOWORGEX_safe(record); break;
1084 case U_EMR_SETVIEWPORTEXTEX: rstatus=U_EMRSETVIEWPORTEXTEX_safe(record); break;
1085 case U_EMR_SETVIEWPORTORGEX: rstatus=U_EMRSETVIEWPORTORGEX_safe(record); break;
1086 case U_EMR_SETBRUSHORGEX: rstatus=U_EMRSETBRUSHORGEX_safe(record); break;
1087 case U_EMR_EOF: rstatus=U_EMREOF_safe(record); break;
1088 case U_EMR_SETPIXELV: rstatus=U_EMRSETPIXELV_safe(record); break;
1089 case U_EMR_SETMAPPERFLAGS: rstatus=U_EMRSETMAPPERFLAGS_safe(record); break;
1090 case U_EMR_SETMAPMODE: rstatus=U_EMRSETMAPMODE_safe(record); break;
1091 case U_EMR_SETBKMODE: rstatus=U_EMRSETBKMODE_safe(record); break;
1092 case U_EMR_SETPOLYFILLMODE: rstatus=U_EMRSETPOLYFILLMODE_safe(record); break;
1093 case U_EMR_SETROP2: rstatus=U_EMRSETROP2_safe(record); break;
1094 case U_EMR_SETSTRETCHBLTMODE: rstatus=U_EMRSETSTRETCHBLTMODE_safe(record); break;
1095 case U_EMR_SETTEXTALIGN: rstatus=U_EMRSETTEXTALIGN_safe(record); break;
1096 case U_EMR_SETCOLORADJUSTMENT: rstatus=U_EMRSETCOLORADJUSTMENT_safe(record); break;
1097 case U_EMR_SETTEXTCOLOR: rstatus=U_EMRSETTEXTCOLOR_safe(record); break;
1098 case U_EMR_SETBKCOLOR: rstatus=U_EMRSETBKCOLOR_safe(record); break;
1099 case U_EMR_OFFSETCLIPRGN: rstatus=U_EMROFFSETCLIPRGN_safe(record); break;
1100 case U_EMR_MOVETOEX: rstatus=U_EMRMOVETOEX_safe(record); break;
1101 case U_EMR_SETMETARGN: rstatus=U_EMRSETMETARGN_safe(record); break;
1102 case U_EMR_EXCLUDECLIPRECT: rstatus=U_EMREXCLUDECLIPRECT_safe(record); break;
1103 case U_EMR_INTERSECTCLIPRECT: rstatus=U_EMRINTERSECTCLIPRECT_safe(record); break;
1104 case U_EMR_SCALEVIEWPORTEXTEX: rstatus=U_EMRSCALEVIEWPORTEXTEX_safe(record); break;
1105 case U_EMR_SCALEWINDOWEXTEX: rstatus=U_EMRSCALEWINDOWEXTEX_safe(record); break;
1106 case U_EMR_SAVEDC: rstatus=U_EMRSAVEDC_safe(record); break;
1107 case U_EMR_RESTOREDC: rstatus=U_EMRRESTOREDC_safe(record); break;
1108 case U_EMR_SETWORLDTRANSFORM: rstatus=U_EMRSETWORLDTRANSFORM_safe(record); break;
1109 case U_EMR_MODIFYWORLDTRANSFORM: rstatus=U_EMRMODIFYWORLDTRANSFORM_safe(record); break;
1110 case U_EMR_SELECTOBJECT: rstatus=U_EMRSELECTOBJECT_safe(record); break;
1111 case U_EMR_CREATEPEN: rstatus=U_EMRCREATEPEN_safe(record); break;
1112 case U_EMR_CREATEBRUSHINDIRECT: rstatus=U_EMRCREATEBRUSHINDIRECT_safe(record); break;
1113 case U_EMR_DELETEOBJECT: rstatus=U_EMRDELETEOBJECT_safe(record); break;
1114 case U_EMR_ANGLEARC: rstatus=U_EMRANGLEARC_safe(record); break;
1115 case U_EMR_ELLIPSE: rstatus=U_EMRELLIPSE_safe(record); break;
1116 case U_EMR_RECTANGLE: rstatus=U_EMRRECTANGLE_safe(record); break;
1117 case U_EMR_ROUNDRECT: rstatus=U_EMRROUNDRECT_safe(record); break;
1118 case U_EMR_ARC: rstatus=U_EMRARC_safe(record); break;
1119 case U_EMR_CHORD: rstatus=U_EMRCHORD_safe(record); break;
1120 case U_EMR_PIE: rstatus=U_EMRPIE_safe(record); break;
1121 case U_EMR_SELECTPALETTE: rstatus=U_EMRSELECTPALETTE_safe(record); break;
1122 case U_EMR_CREATEPALETTE: rstatus=U_EMRCREATEPALETTE_safe(record); break;
1123 case U_EMR_SETPALETTEENTRIES: rstatus=U_EMRSETPALETTEENTRIES_safe(record); break;
1124 case U_EMR_RESIZEPALETTE: rstatus=U_EMRRESIZEPALETTE_safe(record); break;
1125 case U_EMR_REALIZEPALETTE: rstatus=U_EMRREALIZEPALETTE_safe(record); break;
1126 case U_EMR_EXTFLOODFILL: rstatus=U_EMREXTFLOODFILL_safe(record); break;
1127 case U_EMR_LINETO: rstatus=U_EMRLINETO_safe(record); break;
1128 case U_EMR_ARCTO: rstatus=U_EMRARCTO_safe(record); break;
1129 case U_EMR_POLYDRAW: rstatus=U_EMRPOLYDRAW_safe(record); break;
1130 case U_EMR_SETARCDIRECTION: rstatus=U_EMRSETARCDIRECTION_safe(record); break;
1131 case U_EMR_SETMITERLIMIT: rstatus=U_EMRSETMITERLIMIT_safe(record); break;
1132 case U_EMR_BEGINPATH: rstatus=U_EMRBEGINPATH_safe(record); break;
1133 case U_EMR_ENDPATH: rstatus=U_EMRENDPATH_safe(record); break;
1134 case U_EMR_CLOSEFIGURE: rstatus=U_EMRCLOSEFIGURE_safe(record); break;
1135 case U_EMR_FILLPATH: rstatus=U_EMRFILLPATH_safe(record); break;
1136 case U_EMR_STROKEANDFILLPATH: rstatus=U_EMRSTROKEANDFILLPATH_safe(record); break;
1137 case U_EMR_STROKEPATH: rstatus=U_EMRSTROKEPATH_safe(record); break;
1138 case U_EMR_FLATTENPATH: rstatus=U_EMRFLATTENPATH_safe(record); break;
1139 case U_EMR_WIDENPATH: rstatus=U_EMRWIDENPATH_safe(record); break;
1140 case U_EMR_SELECTCLIPPATH: rstatus=U_EMRSELECTCLIPPATH_safe(record); break;
1141 case U_EMR_ABORTPATH: rstatus=U_EMRABORTPATH_safe(record); break;
1142 case U_EMR_UNDEF69: rstatus=U_EMRUNDEF69_safe(record); break;
1143 case U_EMR_COMMENT: rstatus=U_EMRCOMMENT_safe(record); break;
1144 case U_EMR_FILLRGN: rstatus=U_EMRFILLRGN_safe(record); break;
1145 case U_EMR_FRAMERGN: rstatus=U_EMRFRAMERGN_safe(record); break;
1146 case U_EMR_INVERTRGN: rstatus=U_EMRINVERTRGN_safe(record); break;
1147 case U_EMR_PAINTRGN: rstatus=U_EMRPAINTRGN_safe(record); break;
1148 case U_EMR_EXTSELECTCLIPRGN: rstatus=U_EMREXTSELECTCLIPRGN_safe(record); break;
1149 case U_EMR_BITBLT: rstatus=U_EMRBITBLT_safe(record); break;
1150 case U_EMR_STRETCHBLT: rstatus=U_EMRSTRETCHBLT_safe(record); break;
1151 case U_EMR_MASKBLT: rstatus=U_EMRMASKBLT_safe(record); break;
1152 case U_EMR_PLGBLT: rstatus=U_EMRPLGBLT_safe(record); break;
1153 case U_EMR_SETDIBITSTODEVICE: rstatus=U_EMRSETDIBITSTODEVICE_safe(record); break;
1154 case U_EMR_STRETCHDIBITS: rstatus=U_EMRSTRETCHDIBITS_safe(record); break;
1155 case U_EMR_EXTCREATEFONTINDIRECTW: rstatus=U_EMREXTCREATEFONTINDIRECTW_safe(record); break;
1156 case U_EMR_EXTTEXTOUTA: rstatus=U_EMREXTTEXTOUTA_safe(record); break;
1157 case U_EMR_EXTTEXTOUTW: rstatus=U_EMREXTTEXTOUTW_safe(record); break;
1158 case U_EMR_POLYBEZIER16: rstatus=U_EMRPOLYBEZIER16_safe(record); break;
1159 case U_EMR_POLYGON16: rstatus=U_EMRPOLYGON16_safe(record); break;
1160 case U_EMR_POLYLINE16: rstatus=U_EMRPOLYLINE16_safe(record); break;
1161 case U_EMR_POLYBEZIERTO16: rstatus=U_EMRPOLYBEZIERTO16_safe(record); break;
1162 case U_EMR_POLYLINETO16: rstatus=U_EMRPOLYLINETO16_safe(record); break;
1163 case U_EMR_POLYPOLYLINE16: rstatus=U_EMRPOLYPOLYLINE16_safe(record); break;
1164 case U_EMR_POLYPOLYGON16: rstatus=U_EMRPOLYPOLYGON16_safe(record); break;
1165 case U_EMR_POLYDRAW16: rstatus=U_EMRPOLYDRAW16_safe(record); break;
1166 case U_EMR_CREATEMONOBRUSH: rstatus=U_EMRCREATEMONOBRUSH_safe(record); break;
1167 case U_EMR_CREATEDIBPATTERNBRUSHPT: rstatus=U_EMRCREATEDIBPATTERNBRUSHPT_safe(record); break;
1168 case U_EMR_EXTCREATEPEN: rstatus=U_EMREXTCREATEPEN_safe(record); break;
1169 case U_EMR_POLYTEXTOUTA: rstatus=U_EMRPOLYTEXTOUTA_safe(record); break;
1170 case U_EMR_POLYTEXTOUTW: rstatus=U_EMRPOLYTEXTOUTW_safe(record); break;
1171 case U_EMR_SETICMMODE: rstatus=U_EMRSETICMMODE_safe(record); break;
1172 case U_EMR_CREATECOLORSPACE: rstatus=U_EMRCREATECOLORSPACE_safe(record); break;
1173 case U_EMR_SETCOLORSPACE: rstatus=U_EMRSETCOLORSPACE_safe(record); break;
1174 case U_EMR_DELETECOLORSPACE: rstatus=U_EMRDELETECOLORSPACE_safe(record); break;
1175 case U_EMR_GLSRECORD: rstatus=U_EMRGLSRECORD_safe(record); break;
1176 case U_EMR_GLSBOUNDEDRECORD: rstatus=U_EMRGLSBOUNDEDRECORD_safe(record); break;
1177 case U_EMR_PIXELFORMAT: rstatus=U_EMRPIXELFORMAT_safe(record); break;
1178 case U_EMR_DRAWESCAPE: rstatus=U_EMRDRAWESCAPE_safe(record); break;
1179 case U_EMR_EXTESCAPE: rstatus=U_EMREXTESCAPE_safe(record); break;
1180 case U_EMR_UNDEF107: rstatus=U_EMRUNDEF107_safe(record); break;
1181 case U_EMR_SMALLTEXTOUT: rstatus=U_EMRSMALLTEXTOUT_safe(record); break;
1182 case U_EMR_FORCEUFIMAPPING: rstatus=U_EMRFORCEUFIMAPPING_safe(record); break;
1183 case U_EMR_NAMEDESCAPE: rstatus=U_EMRNAMEDESCAPE_safe(record); break;
1184 case U_EMR_COLORCORRECTPALETTE: rstatus=U_EMRCOLORCORRECTPALETTE_safe(record); break;
1185 case U_EMR_SETICMPROFILEA: rstatus=U_EMRSETICMPROFILEA_safe(record); break;
1186 case U_EMR_SETICMPROFILEW: rstatus=U_EMRSETICMPROFILEW_safe(record); break;
1187 case U_EMR_ALPHABLEND: rstatus=U_EMRALPHABLEND_safe(record); break;
1188 case U_EMR_SETLAYOUT: rstatus=U_EMRSETLAYOUT_safe(record); break;
1189 case U_EMR_TRANSPARENTBLT: rstatus=U_EMRTRANSPARENTBLT_safe(record); break;
1190 case U_EMR_UNDEF117: rstatus=U_EMRUNDEF117_safe(record); break;
1191 case U_EMR_GRADIENTFILL: rstatus=U_EMRGRADIENTFILL_safe(record); break;
1192 case U_EMR_SETLINKEDUFIS: rstatus=U_EMRSETLINKEDUFIS_safe(record); break;
1193 case U_EMR_SETTEXTJUSTIFICATION: rstatus=U_EMRSETTEXTJUSTIFICATION_safe(record); break;
1194 case U_EMR_COLORMATCHTOTARGETW: rstatus=U_EMRCOLORMATCHTOTARGETW_safe(record); break;
1195 case U_EMR_CREATECOLORSPACEW: rstatus=U_EMRCREATECOLORSPACEW_safe(record); break;
1196 default: rstatus=U_EMRNOTIMPLEMENTED_safe(record); break;