-- v2: gdiplus: Add support for EmfPlusRecordTypeSetRenderingOrigin record playback.
From: Dmitry Timoshkov dmitry@baikal.ru
Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru --- dlls/gdiplus/metafile.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/dlls/gdiplus/metafile.c b/dlls/gdiplus/metafile.c index c70aa333428..a786297a40b 100644 --- a/dlls/gdiplus/metafile.c +++ b/dlls/gdiplus/metafile.c @@ -3748,8 +3748,20 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile,
return stat; } + case EmfPlusRecordTypeSetRenderingOrigin: + { + const EmfPlusSetRenderingOrigin *origin = (const EmfPlusSetRenderingOrigin *)header; + + if (dataSize + sizeof(EmfPlusRecordHeader) < sizeof(EmfPlusSetRenderingOrigin)) + return InvalidParameter; + + return GdipSetRenderingOrigin(real_metafile->playback_graphics, origin->x, origin->y); + } default: - FIXME("Not implemented for record type %x\n", recordType); + if (recordType >= GDIP_EMFPLUS_RECORD_BASE) + FIXME("Not implemented for EMF+ record type %u\n", recordType - GDIP_EMFPLUS_RECORD_BASE); + else + FIXME("Not implemented for record type %x\n", recordType); return NotImplemented; } }
On Mon Oct 7 22:27:42 2024 +0000, Esme Povirk wrote:
Please validate the record size before dereferencing these.
Thanks for pointing that out, updated the patch.
This merge request was approved by Esme Povirk.