1 /* 2 * PROJECT: ReactOS api tests 3 * LICENSE: GPL - See COPYING in the top level directory 4 * PURPOSE: Test for CreateCompatibleDC 5 * PROGRAMMERS: Timo Kreuzer 6 */ 7 8 #include "precomp.h" 9 10 void Test_CreateCompatibleDC() 11 { 12 HDC hdcScreen, hOldDC, hdc, hdc2; 13 HPEN hOldPen; 14 COLORREF color; 15 16 /* Get screen DC */ 17 hdcScreen = GetDC(NULL); 18 19 /* Test NULL DC handle */ 20 SetLastError(ERROR_SUCCESS); 21 hdc = CreateCompatibleDC(NULL); 22 ok(hdc != NULL, "CreateCompatibleDC(NULL) failed\n"); 23 ok(GetLastError() == ERROR_SUCCESS, "GetLastError() == %ld\n", GetLastError()); 24 if(hdc) DeleteDC(hdc); 25 26 /* Test invalid DC handle */ 27 SetLastError(ERROR_SUCCESS); 28 hdc = CreateCompatibleDC((HDC)0x123456); 29 ok(hdc == NULL, "Expected NULL, got %p\n", hdc); 30 ok(GetLastError() == ERROR_SUCCESS, "GetLastError() == %ld\n", GetLastError()); 31 if(hdc) DeleteDC(hdc); 32 33 hdc = CreateCompatibleDC(hdcScreen); 34 ok(hdc != NULL, "CreateCompatibleDC failed\n"); 35 36 // Test if first selected pen is BLACK_PEN (? or same as screen DC's pen?) 37 hOldPen = SelectObject(hdc, GetStockObject(DC_PEN)); 38 ok (hOldPen == GetStockObject(BLACK_PEN), "hOldPen == %p\n", hOldPen); 39 hOldPen = SelectObject(hdc, GetStockObject(BLACK_PEN)); 40 ok (hOldPen == GetStockObject(DC_PEN), "hOldPen == %p\n", hOldPen); 41 42 /* Test for the starting Color == RGB(0,0,0) */ 43 color = SetDCPenColor(hdc, RGB(1,2,3)); 44 ok(color == RGB(0,0,0), "color == %lx\n", color); 45 46 /* Check for reuse counter */ 47 hOldDC = hdc; 48 DeleteDC(hdc); 49 hdc = CreateCompatibleDC(hdcScreen); 50 hdc2 = CreateCompatibleDC(hOldDC); 51 ok(hdc2 == NULL, "Expected NULL, got %p\n", hdc); 52 if (hdc2 != NULL) DeleteDC(hdc2); 53 54 /* Check map mode */ 55 hdc = CreateCompatibleDC(hdcScreen); 56 SetMapMode(hdc, MM_ISOTROPIC); 57 hdc2 = CreateCompatibleDC(hdc); 58 ok(GetMapMode(hdc2) == MM_TEXT, "GetMapMode(hdc2)==%d\n", GetMapMode(hdc2)); 59 60 /* cleanup */ 61 DeleteDC(hdc); 62 63 ReleaseDC(NULL, hdcScreen); 64 } 65 66 START_TEST(CreateCompatibleDC) 67 { 68 Test_CreateCompatibleDC(); 69 } 70 71