mirror of
https://github.com/reactos/wine.git
synced 2025-02-25 07:22:28 +00:00
gdiplus: Placeable is optional in GdipCreateMetafileFromWmf.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
c7bdc88812
commit
2dc5685897
@ -1076,7 +1076,7 @@ GpStatus WINGDIPAPI GdipCreateMetafileFromWmf(HMETAFILE hwmf, BOOL delete,
|
|||||||
|
|
||||||
TRACE("(%p, %d, %p, %p)\n", hwmf, delete, placeable, metafile);
|
TRACE("(%p, %d, %p, %p)\n", hwmf, delete, placeable, metafile);
|
||||||
|
|
||||||
if(!hwmf || !metafile || !placeable)
|
if(!hwmf || !metafile)
|
||||||
return InvalidParameter;
|
return InvalidParameter;
|
||||||
|
|
||||||
*metafile = NULL;
|
*metafile = NULL;
|
||||||
@ -1094,15 +1094,20 @@ GpStatus WINGDIPAPI GdipCreateMetafileFromWmf(HMETAFILE hwmf, BOOL delete,
|
|||||||
|
|
||||||
if (retval == Ok)
|
if (retval == Ok)
|
||||||
{
|
{
|
||||||
(*metafile)->image.xres = (REAL)placeable->Inch;
|
if (placeable)
|
||||||
(*metafile)->image.yres = (REAL)placeable->Inch;
|
{
|
||||||
(*metafile)->bounds.X = ((REAL)placeable->BoundingBox.Left) / ((REAL)placeable->Inch);
|
(*metafile)->image.xres = (REAL)placeable->Inch;
|
||||||
(*metafile)->bounds.Y = ((REAL)placeable->BoundingBox.Top) / ((REAL)placeable->Inch);
|
(*metafile)->image.yres = (REAL)placeable->Inch;
|
||||||
(*metafile)->bounds.Width = (REAL)(placeable->BoundingBox.Right -
|
(*metafile)->bounds.X = ((REAL)placeable->BoundingBox.Left) / ((REAL)placeable->Inch);
|
||||||
placeable->BoundingBox.Left);
|
(*metafile)->bounds.Y = ((REAL)placeable->BoundingBox.Top) / ((REAL)placeable->Inch);
|
||||||
(*metafile)->bounds.Height = (REAL)(placeable->BoundingBox.Bottom -
|
(*metafile)->bounds.Width = (REAL)(placeable->BoundingBox.Right -
|
||||||
placeable->BoundingBox.Top);
|
placeable->BoundingBox.Left);
|
||||||
(*metafile)->metafile_type = MetafileTypeWmfPlaceable;
|
(*metafile)->bounds.Height = (REAL)(placeable->BoundingBox.Bottom -
|
||||||
|
placeable->BoundingBox.Top);
|
||||||
|
(*metafile)->metafile_type = MetafileTypeWmfPlaceable;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
(*metafile)->metafile_type = MetafileTypeWmf;
|
||||||
(*metafile)->image.format = ImageFormatWMF;
|
(*metafile)->image.format = ImageFormatWMF;
|
||||||
|
|
||||||
if (delete) DeleteMetaFile(hwmf);
|
if (delete) DeleteMetaFile(hwmf);
|
||||||
|
@ -1544,6 +1544,22 @@ static void test_createfromwmf(void)
|
|||||||
GdipDisposeImage(img);
|
GdipDisposeImage(img);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_createfromwmf_noplaceable(void)
|
||||||
|
{
|
||||||
|
HMETAFILE hwmf;
|
||||||
|
GpImage *img;
|
||||||
|
GpStatus stat;
|
||||||
|
|
||||||
|
hwmf = SetMetaFileBitsEx(sizeof(wmfimage)-sizeof(WmfPlaceableFileHeader),
|
||||||
|
wmfimage+sizeof(WmfPlaceableFileHeader));
|
||||||
|
ok(hwmf != 0, "SetMetaFileBitsEx failed\n");
|
||||||
|
|
||||||
|
stat = GdipCreateMetafileFromWmf(hwmf, TRUE, NULL, (GpMetafile**)&img);
|
||||||
|
expect(Ok, stat);
|
||||||
|
|
||||||
|
GdipDisposeImage(img);
|
||||||
|
}
|
||||||
|
|
||||||
static void test_resolution(void)
|
static void test_resolution(void)
|
||||||
{
|
{
|
||||||
GpStatus stat;
|
GpStatus stat;
|
||||||
@ -4758,6 +4774,7 @@ START_TEST(image)
|
|||||||
test_getrawformat();
|
test_getrawformat();
|
||||||
test_loadwmf();
|
test_loadwmf();
|
||||||
test_createfromwmf();
|
test_createfromwmf();
|
||||||
|
test_createfromwmf_noplaceable();
|
||||||
test_resolution();
|
test_resolution();
|
||||||
test_createhbitmap();
|
test_createhbitmap();
|
||||||
test_getthumbnail();
|
test_getthumbnail();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user