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.