Esme Povirk (@madewokherd) commented about dlls/gdiplus/metafile.c:
+ return InvalidParameter; + + offset += FIELD_OFFSET(EmfPlusCustomLineCapDataLinePath, LinePath); + path = (EmfPlusPath *)(record_data + offset); + } + + if (path->PathPointFlags & 0x800) /* R */ + { + FIXME("RLE encoded path data is not supported.\n"); + return NotImplemented; + } + + if (path->PathPointFlags & 0x4000) /* C */ + point_size = sizeof(EmfPlusPoint); + else + point_size = sizeof(EmfPlusPointF); I think this has reached the level of complexity where we need to share code. Maybe metafile_deseralize_path should output GpPathData instead of a path? Either that or you could construct the path and move the path data.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/2870#note_33734