/* * PROJECT: ReactOS api tests * LICENSE: LGPL-2.0-or-later (https://spdx.org/licenses/LGPL-2.0-or-later) * PURPOSE: Test for NtGdiTransformPoints * COPYRIGHT: Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com) */ #include START_TEST(NtGdiTransformPoints) { HDC hDC; POINT apt1[3], apt2[3]; BOOL ret; SIZE siz; /* NULL HDC */ SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints(NULL, NULL, NULL, 0, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints(NULL, NULL, NULL, 1, GdiDpToLp); ok_int(ret, FALSE); ok_err(0xDEADBEEF); SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints(NULL, apt1, NULL, 1, GdiDpToLp); ok_int(ret, FALSE); ok_err(0xDEADBEEF); SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints(NULL, NULL, apt2, 1, GdiDpToLp); ok_int(ret, FALSE); ok_err(0xDEADBEEF); SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints(NULL, apt1, apt1, 0, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints(NULL, apt1, apt2, 0, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints(NULL, apt1, apt2, 1, GdiDpToLp); ok_int(ret, FALSE); ok_err(0xDEADBEEF); /* (HDC)1 */ SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints((HDC)1, NULL, NULL, 0, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints((HDC)1, NULL, NULL, 1, GdiDpToLp); ok_int(ret, FALSE); ok_err(0xDEADBEEF); SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints((HDC)1, apt1, NULL, 1, GdiDpToLp); ok_int(ret, FALSE); ok_err(0xDEADBEEF); SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints((HDC)1, NULL, apt2, 1, GdiDpToLp); ok_int(ret, FALSE); ok_err(0xDEADBEEF); SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints((HDC)1, apt1, apt1, 0, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints((HDC)1, apt1, apt2, 0, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints((HDC)1, apt1, apt2, 1, GdiDpToLp); ok_int(ret, FALSE); ok_err(0xDEADBEEF); /* hDC */ hDC = CreateCompatibleDC(NULL); ok(hDC != NULL, "hDC was NULL\n"); SetMapMode(hDC, MM_TEXT); SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints(hDC, NULL, NULL, 0, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints(hDC, NULL, NULL, 1, GdiDpToLp); ok_int(ret, FALSE); ok_err(0xDEADBEEF); SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints(hDC, apt1, NULL, 1, GdiDpToLp); ok_int(ret, FALSE); ok_err(0xDEADBEEF); SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints(hDC, NULL, apt2, 1, GdiDpToLp); ok_int(ret, FALSE); ok_err(0xDEADBEEF); SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints(hDC, apt1, apt1, 0, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); SetLastError(0xDEADBEEF); ret = NtGdiTransformPoints(hDC, apt1, apt2, 0, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); SetLastError(0xDEADBEEF); apt1[0].x = apt1[0].y = 256; ret = NtGdiTransformPoints(hDC, apt1, apt1, 1, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); ok_long(apt1[0].x, 256); ok_long(apt1[0].y, 256); SetLastError(0xDEADBEEF); apt1[0].x = apt1[0].y = 256; apt2[0].x = apt2[0].y = 0xBEEFDEAD; ret = NtGdiTransformPoints(hDC, apt1, apt2, 0, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); ok_long(apt1[0].x, 256); ok_long(apt1[0].y, 256); ok_long(apt2[0].x, 0xBEEFDEAD); ok_long(apt2[0].x, 0xBEEFDEAD); SetLastError(0xDEADBEEF); apt1[0].x = apt1[0].y = 256; apt2[0].x = apt2[0].y = 0xBEEFDEAD; ret = NtGdiTransformPoints(hDC, apt1, apt2, 1, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); ok_long(apt1[0].x, 256); ok_long(apt1[0].y, 256); ok_long(apt2[0].x, 256); ok_long(apt2[0].x, 256); /* MM_ISOTROPIC */ SetMapMode(hDC, MM_ISOTROPIC); ok_int(SetWindowExtEx(hDC, 10, 10, NULL), TRUE); ok_int(GetWindowExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 10); ok_long(siz.cy, 10); ok_int(SetViewportExtEx(hDC, 100, 100, NULL), TRUE); ok_int(GetViewportExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 100); ok_long(siz.cy, 100); SetLastError(0xDEADBEEF); apt1[0].x = apt1[0].y = 256; apt2[0].x = apt2[0].y = 0xBEEFDEAD; ret = NtGdiTransformPoints(hDC, apt1, apt2, 1, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); ok_long(apt1[0].x, 256); ok_long(apt1[0].y, 256); ok_long(apt2[0].x, 26); ok_long(apt2[0].x, 26); SetMapMode(hDC, MM_ISOTROPIC); ok_int(SetWindowExtEx(hDC, 10, 10, NULL), TRUE); ok_int(GetWindowExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 10); ok_long(siz.cy, 10); ok_int(SetViewportExtEx(hDC, 20, 100, NULL), TRUE); ok_int(GetViewportExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 20); ok_long(siz.cy, 20); SetLastError(0xDEADBEEF); apt1[0].x = apt1[0].y = 256; apt2[0].x = apt2[0].y = 0xBEEFDEAD; ret = NtGdiTransformPoints(hDC, apt1, apt2, 1, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); ok_long(apt1[0].x, 256); ok_long(apt1[0].y, 256); ok_long(apt2[0].x, 128); ok_long(apt2[0].x, 128); SetMapMode(hDC, MM_ISOTROPIC); ok_int(SetWindowExtEx(hDC, 10, 10, NULL), TRUE); ok_int(GetWindowExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 10); ok_long(siz.cy, 10); ok_int(SetViewportExtEx(hDC, 100, 0, NULL), TRUE); ok_int(GetViewportExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 20); ok_long(siz.cy, 20); SetLastError(0xDEADBEEF); apt1[0].x = apt1[0].y = 256; apt2[0].x = apt2[0].y = 0xBEEFDEAD; ret = NtGdiTransformPoints(hDC, apt1, apt2, 1, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); ok_long(apt1[0].x, 256); ok_long(apt1[0].y, 256); ok_long(apt2[0].x, 128); ok_long(apt2[0].x, 128); SetMapMode(hDC, MM_ISOTROPIC); ok_int(SetWindowExtEx(hDC, 10, 10, NULL), TRUE); ok_int(GetWindowExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 10); ok_long(siz.cy, 10); ok_int(SetViewportExtEx(hDC, 0, 100, NULL), TRUE); ok_int(GetViewportExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 20); ok_long(siz.cy, 20); SetLastError(0xDEADBEEF); apt1[0].x = apt1[0].y = 256; apt2[0].x = apt2[0].y = 0xBEEFDEAD; ret = NtGdiTransformPoints(hDC, apt1, apt2, 1, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); ok_long(apt1[0].x, 256); ok_long(apt1[0].y, 256); ok_long(apt2[0].x, 128); ok_long(apt2[0].x, 128); SetMapMode(hDC, MM_ISOTROPIC); ok_int(SetWindowExtEx(hDC, 10, 10, NULL), TRUE); ok_int(GetWindowExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 10); ok_long(siz.cy, 10); ok_int(SetViewportExtEx(hDC, 0, 0, NULL), TRUE); ok_int(GetViewportExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 20); ok_long(siz.cy, 20); SetLastError(0xDEADBEEF); apt1[0].x = apt1[0].y = 256; apt2[0].x = apt2[0].y = 0xBEEFDEAD; ret = NtGdiTransformPoints(hDC, apt1, apt2, 1, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); ok_long(apt1[0].x, 256); ok_long(apt1[0].y, 256); ok_long(apt2[0].x, 128); ok_long(apt2[0].x, 128); /* MM_ANISOTROPIC */ SetMapMode(hDC, MM_ANISOTROPIC); ok_int(SetWindowExtEx(hDC, 10, 10, NULL), TRUE); ok_int(GetWindowExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 10); ok_long(siz.cy, 10); ok_int(SetViewportExtEx(hDC, 100, 100, NULL), TRUE); ok_int(GetViewportExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 100); ok_long(siz.cy, 100); SetLastError(0xDEADBEEF); apt1[0].x = apt1[0].y = 256; apt2[0].x = apt2[0].y = 0xBEEFDEAD; ret = NtGdiTransformPoints(hDC, apt1, apt2, 1, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); ok_long(apt1[0].x, 256); ok_long(apt1[0].y, 256); ok_long(apt2[0].x, 26); ok_long(apt2[0].x, 26); SetMapMode(hDC, MM_ANISOTROPIC); ok_int(SetWindowExtEx(hDC, 10, 10, NULL), TRUE); ok_int(GetWindowExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 10); ok_long(siz.cy, 10); ok_int(SetViewportExtEx(hDC, 20, 100, NULL), TRUE); ok_int(GetViewportExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 20); ok_long(siz.cy, 100); SetLastError(0xDEADBEEF); apt1[0].x = apt1[0].y = 256; apt2[0].x = apt2[0].y = 0xBEEFDEAD; ret = NtGdiTransformPoints(hDC, apt1, apt2, 1, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); ok_long(apt1[0].x, 256); ok_long(apt1[0].y, 256); ok_long(apt2[0].x, 128); ok_long(apt2[0].x, 128); SetMapMode(hDC, MM_ANISOTROPIC); ok_int(SetWindowExtEx(hDC, 10, 10, NULL), TRUE); ok_int(GetWindowExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 10); ok_long(siz.cy, 10); ok_int(SetViewportExtEx(hDC, 100, 0, NULL), TRUE); ok_int(GetViewportExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 20); ok_long(siz.cy, 100); SetLastError(0xDEADBEEF); apt1[0].x = apt1[0].y = 256; apt2[0].x = apt2[0].y = 0xBEEFDEAD; ret = NtGdiTransformPoints(hDC, apt1, apt2, 1, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); ok_long(apt1[0].x, 256); ok_long(apt1[0].y, 256); ok_long(apt2[0].x, 128); ok_long(apt2[0].x, 128); SetMapMode(hDC, MM_ANISOTROPIC); ok_int(SetWindowExtEx(hDC, 10, 10, NULL), TRUE); ok_int(GetWindowExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 10); ok_long(siz.cy, 10); ok_int(SetViewportExtEx(hDC, 0, 100, NULL), TRUE); ok_int(GetViewportExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 20); ok_long(siz.cy, 100); SetLastError(0xDEADBEEF); apt1[0].x = apt1[0].y = 256; apt2[0].x = apt2[0].y = 0xBEEFDEAD; ret = NtGdiTransformPoints(hDC, apt1, apt2, 1, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); ok_long(apt1[0].x, 256); ok_long(apt1[0].y, 256); ok_long(apt2[0].x, 128); ok_long(apt2[0].x, 128); SetMapMode(hDC, MM_ANISOTROPIC); ok_int(SetWindowExtEx(hDC, 10, 10, NULL), TRUE); ok_int(GetWindowExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 10); ok_long(siz.cy, 10); ok_int(SetViewportExtEx(hDC, 0, 0, NULL), TRUE); ok_int(GetViewportExtEx(hDC, &siz), TRUE); ok_long(siz.cx, 20); ok_long(siz.cy, 100); SetLastError(0xDEADBEEF); apt1[0].x = apt1[0].y = 256; apt2[0].x = apt2[0].y = 0xBEEFDEAD; ret = NtGdiTransformPoints(hDC, apt1, apt2, 1, GdiDpToLp); ok_int(ret, TRUE); ok_err(0xDEADBEEF); ok_long(apt1[0].x, 256); ok_long(apt1[0].y, 256); ok_long(apt2[0].x, 128); ok_long(apt2[0].x, 128); ret = DeleteDC(hDC); ok_int(ret, TRUE); }