gdiplus: Implement GdipGetRegionDataSize.

This commit is contained in:
Adam Petaccia 2008-07-24 19:01:45 -04:00 committed by Alexandre Julliard
parent 2e0869984f
commit 430ce86ae9
2 changed files with 20 additions and 6 deletions

View File

@ -267,9 +267,15 @@ GpStatus WINGDIPAPI GdipGetRegionData(GpRegion *region, BYTE *buffer, UINT size,
GpStatus WINGDIPAPI GdipGetRegionDataSize(GpRegion *region, UINT *needed) GpStatus WINGDIPAPI GdipGetRegionDataSize(GpRegion *region, UINT *needed)
{ {
FIXME("(%p, %p): stub\n", region, needed); if (!(region && needed))
return InvalidParameter;
return NotImplemented; TRACE("%p, %p\n", region, needed);
/* header.size doesn't count header.size and header.checksum */
*needed = region->header.size + sizeof(DWORD) * 2;
return Ok;
} }
GpStatus WINGDIPAPI GdipGetRegionHRgn(GpRegion *region, GpGraphics *graphics, HRGN *hrgn) GpStatus WINGDIPAPI GdipGetRegionHRgn(GpRegion *region, GpGraphics *graphics, HRGN *hrgn)

View File

@ -67,14 +67,17 @@ static void test_getregiondata(void)
status = GdipCreateRegion(&region); status = GdipCreateRegion(&region);
ok(status == Ok, "status %08x\n", status); ok(status == Ok, "status %08x\n", status);
todo_wine
{
status = GdipGetRegionDataSize(region, &needed); status = GdipGetRegionDataSize(region, &needed);
ok(status == Ok, "status %08x\n", status); ok(status == Ok, "status %08x\n", status);
expect(20, needed); expect(20, needed);
todo_wine
{
status = GdipGetRegionData(region, (BYTE*)buf, sizeof(buf), &needed); status = GdipGetRegionData(region, (BYTE*)buf, sizeof(buf), &needed);
ok(status == Ok, "status %08x\n", status); ok(status == Ok, "status %08x\n", status);
}
expect(20, needed); expect(20, needed);
todo_wine
{
expect_dword(buf, 12); expect_dword(buf, 12);
trace("buf[1] = %08x\n", buf[1]); trace("buf[1] = %08x\n", buf[1]);
expect_magic((DWORD*)(buf + 2)); expect_magic((DWORD*)(buf + 2));
@ -87,11 +90,15 @@ todo_wine
todo_wine todo_wine
{ {
status = GdipGetRegionDataSize(region, &needed); status = GdipGetRegionDataSize(region, &needed);
}
ok(status == Ok, "status %08x\n", status); ok(status == Ok, "status %08x\n", status);
expect(20, needed); expect(20, needed);
status = GdipGetRegionData(region, (BYTE*)buf, sizeof(buf), &needed); status = GdipGetRegionData(region, (BYTE*)buf, sizeof(buf), &needed);
todo_wine
ok(status == Ok, "status %08x\n", status); ok(status == Ok, "status %08x\n", status);
expect(20, needed); expect(20, needed);
todo_wine
{
expect_dword(buf, 12); expect_dword(buf, 12);
trace("buf[1] = %08x\n", buf[1]); trace("buf[1] = %08x\n", buf[1]);
expect_magic((DWORD*)(buf + 2)); expect_magic((DWORD*)(buf + 2));
@ -102,13 +109,14 @@ todo_wine
status = GdipSetInfinite(region); status = GdipSetInfinite(region);
ok(status == Ok, "status %08x\n", status); ok(status == Ok, "status %08x\n", status);
status = GdipGetRegionDataSize(region, &needed); status = GdipGetRegionDataSize(region, &needed);
todo_wine
{
ok(status == Ok, "status %08x\n", status); ok(status == Ok, "status %08x\n", status);
expect(20, needed); expect(20, needed);
status = GdipGetRegionData(region, (BYTE*)buf, sizeof(buf), &needed); status = GdipGetRegionData(region, (BYTE*)buf, sizeof(buf), &needed);
todo_wine
ok(status == Ok, "status %08x\n", status); ok(status == Ok, "status %08x\n", status);
expect(20, needed); expect(20, needed);
todo_wine
{
expect_dword(buf, 12); expect_dword(buf, 12);
trace("buf[1] = %08x\n", buf[1]); trace("buf[1] = %08x\n", buf[1]);
expect_magic((DWORD*)(buf + 2)); expect_magic((DWORD*)(buf + 2));