gdiplus: Implement GdipGetMetafileHeaderFromMetafile.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
3769778917
commit
259837a199
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue