2007-08-05 03:32:24 +00:00
|
|
|
INT
|
|
|
|
Test_CreateCompatibleDC(PTESTINFO pti)
|
|
|
|
{
|
|
|
|
HDC hDCScreen, hOldDC, hDC, hDC2;
|
|
|
|
|
2008-03-22 03:21:52 +00:00
|
|
|
/* Get screen DC */
|
2007-08-05 03:32:24 +00:00
|
|
|
hDCScreen = GetDC(NULL);
|
2008-03-22 03:21:52 +00:00
|
|
|
ASSERT(hDCScreen != NULL);
|
|
|
|
|
|
|
|
/* Test NULL DC handle */
|
|
|
|
SetLastError(ERROR_SUCCESS);
|
|
|
|
hDC = CreateCompatibleDC(NULL);
|
|
|
|
TEST(hDC != NULL);
|
|
|
|
TEST(GetLastError() == ERROR_SUCCESS);
|
|
|
|
if(hDC) DeleteDC(hDC);
|
|
|
|
|
|
|
|
/* Test invalid DC handle */
|
|
|
|
SetLastError(ERROR_SUCCESS);
|
|
|
|
hDC = CreateCompatibleDC((HDC)0x123456);
|
|
|
|
TEST(hDC == NULL);
|
|
|
|
TEST(GetLastError() == ERROR_SUCCESS);
|
|
|
|
if(hDC) DeleteDC(hDC);
|
2007-08-05 03:32:24 +00:00
|
|
|
|
|
|
|
hDC = CreateCompatibleDC(hDCScreen);
|
2007-08-05 23:05:02 +00:00
|
|
|
RTEST(hDC != NULL);
|
2007-08-05 03:32:24 +00:00
|
|
|
|
|
|
|
// Test if first selected pen is BLACK_PEN (? or same as screen DC's pen?)
|
|
|
|
TEST(SelectObject(hDC, GetStockObject(DC_PEN)) == GetStockObject(BLACK_PEN));
|
|
|
|
TEST(SelectObject(hDC, GetStockObject(BLACK_PEN)) == GetStockObject(DC_PEN));
|
|
|
|
|
|
|
|
// Test for the starting Color == RGB(0,0,0)
|
|
|
|
TEST(SetDCPenColor(hDC, RGB(1,2,3)) == RGB(0,0,0));
|
|
|
|
|
|
|
|
// Check for reuse counter
|
|
|
|
hOldDC = hDC;
|
|
|
|
DeleteDC(hDC);
|
|
|
|
hDC = CreateCompatibleDC(hDCScreen);
|
|
|
|
hDC2 = CreateCompatibleDC(hOldDC);
|
2007-08-05 23:05:02 +00:00
|
|
|
RTEST(hDC2 == NULL);
|
2007-08-05 03:32:24 +00:00
|
|
|
if (hDC2 != NULL) DeleteDC(hDC2);
|
|
|
|
|
|
|
|
// cleanup
|
|
|
|
DeleteDC(hDC);
|
|
|
|
|
|
|
|
ReleaseDC(NULL, hDCScreen);
|
|
|
|
return APISTATUS_NORMAL;
|
|
|
|
}
|