Esme Povirk (@madewokherd) commented about dlls/gdiplus/metafile.c:
if (data->PathPointFlags & 0x4000) /* C */ { EmfPlusPoint *points = (EmfPlusPoint *)data->data; + GpPointF *temp = malloc(sizeof(GpPointF) * data->PathPointCount); + for (i = 0; i < data->PathPointCount; i++) { - (*path)->pathdata.Points[i].X = points[i].X; - (*path)->pathdata.Points[i].Y = points[i].Y; + temp[i].X = points[i].X; + temp[i].Y = points[i].Y; } + types = (BYTE *)(points + i); + GdipCreatePath2(temp, types, data->PathPointCount, FillModeAlternate, path); + free(temp);
We can use GdipCreatePath2I in this case. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4803#note_59203