gdiplus: Implement GdipGetMetafileHeaderFromMetafile.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Dmitry Timoshkov 2016-09-09 13:42:44 -05:00 committed by Alexandre Julliard
parent 3769778917
commit 259837a199
2 changed files with 28 additions and 16 deletions

View File

@ -1667,17 +1667,29 @@ GpStatus WINGDIPAPI GdipEnumerateMetafileDestPointI(GpGraphics *graphics,
GpStatus WINGDIPAPI GdipGetMetafileHeaderFromMetafile(GpMetafile * metafile,
MetafileHeader * header)
{
static int calls;
GpStatus status;
TRACE("(%p, %p)\n", metafile, header);
if(!metafile || !header)
return InvalidParameter;
if(!(calls++))
FIXME("not implemented\n");
if (metafile->hemf)
{
status = GdipGetMetafileHeaderFromEmf(metafile->hemf, header);
if (status != Ok) return status;
}
else
{
memset(header, 0, sizeof(*header));
header->Version = 0xdbc01002;
}
memset(header, 0, sizeof(MetafileHeader));
header->Type = metafile->metafile_type;
header->DpiX = metafile->image.xres;
header->DpiY = metafile->image.yres;
header->Width = gdip_round(metafile->bounds.Width);
header->Height = gdip_round(metafile->bounds.Height);
return Ok;
}

View File

@ -1465,17 +1465,17 @@ static void test_loadwmf(void)
expect(Ok, stat);
if (stat == Ok)
{
todo_wine expect(MetafileTypeWmfPlaceable, header.Type);
expect(MetafileTypeWmfPlaceable, header.Type);
todo_wine expect(sizeof(wmfimage)-sizeof(WmfPlaceableFileHeader), header.Size);
todo_wine expect(0x300, header.Version);
expect(0, header.EmfPlusFlags);
todo_wine expectf(1440.0, header.DpiX);
todo_wine expectf(1440.0, header.DpiY);
expectf(1440.0, header.DpiX);
expectf(1440.0, header.DpiY);
expect(0, header.X);
expect(0, header.Y);
todo_wine expect(320, header.Width);
todo_wine expect(320, header.Height);
todo_wine expect(1, U(header).WmfHeader.mtType);
expect(320, header.Width);
expect(320, header.Height);
expect(1, U(header).WmfHeader.mtType);
expect(0, header.EmfPlusHeaderSize);
expect(0, header.LogicalDpiX);
expect(0, header.LogicalDpiY);
@ -1523,17 +1523,17 @@ static void test_createfromwmf(void)
expect(Ok, stat);
if (stat == Ok)
{
todo_wine expect(MetafileTypeWmfPlaceable, header.Type);
expect(MetafileTypeWmfPlaceable, header.Type);
todo_wine expect(sizeof(wmfimage)-sizeof(WmfPlaceableFileHeader), header.Size);
todo_wine expect(0x300, header.Version);
expect(0, header.EmfPlusFlags);
todo_wine expectf(1440.0, header.DpiX);
todo_wine expectf(1440.0, header.DpiY);
expectf(1440.0, header.DpiX);
expectf(1440.0, header.DpiY);
expect(0, header.X);
expect(0, header.Y);
todo_wine expect(320, header.Width);
todo_wine expect(320, header.Height);
todo_wine expect(1, U(header).WmfHeader.mtType);
expect(320, header.Width);
expect(320, header.Height);
expect(1, U(header).WmfHeader.mtType);
expect(0, header.EmfPlusHeaderSize);
expect(0, header.LogicalDpiX);
expect(0, header.LogicalDpiY);