mirror of
https://github.com/reactos/reactos.git
synced 2024-08-28 14:18:41 +00:00
![Hermès Bélusca-Maïto](/assets/img/avatar_default.png)
Introduce a "apitest.h" header gathering special things for apitests (SEH macros, wine/test.h inclusion, and so on...). svn path=/trunk/; revision=60313
73 lines
1.9 KiB
C
73 lines
1.9 KiB
C
/*
|
|
* PROJECT: ReactOS api tests
|
|
* LICENSE: GPL - See COPYING in the top level directory
|
|
* PURPOSE: Test for SetDCPenColor
|
|
* PROGRAMMERS: Timo Kreuzer
|
|
*/
|
|
|
|
#include <apitest.h>
|
|
|
|
#include <wingdi.h>
|
|
#include <winuser.h>
|
|
|
|
void Test_SetDCPenColor()
|
|
{
|
|
HDC hScreenDC, hDC;
|
|
HBITMAP hbmp, hbmpOld;
|
|
|
|
// Test an incorrect DC
|
|
SetLastError(ERROR_SUCCESS);
|
|
ok(SetDCPenColor(0, RGB(0,0,0)) == CLR_INVALID, "\n");
|
|
ok(GetLastError() == ERROR_INVALID_PARAMETER, "\n");
|
|
|
|
// Get the Screen DC
|
|
hScreenDC = GetDC(NULL);
|
|
ok(hScreenDC != 0, "GetDC failed, skipping tests\n");
|
|
if (hScreenDC == NULL) return;
|
|
|
|
// Test the screen DC
|
|
SetDCPenColor(hScreenDC, RGB(1,2,3));
|
|
ok(SetDCPenColor(hScreenDC, RGB(4,5,6)) == RGB(1,2,3), "\n");
|
|
|
|
// Create a new DC
|
|
hDC = CreateCompatibleDC(hScreenDC);
|
|
ReleaseDC(0, hScreenDC);
|
|
ok(hDC != 0, "CreateCompatibleDC failed, skipping tests\n");
|
|
if (!hDC) return;
|
|
|
|
// Select the DC_PEN and check if the pen returned by a new call is DC_PEN
|
|
SelectObject(hDC, GetStockObject(DC_PEN));
|
|
ok(SelectObject(hDC, GetStockObject(BLACK_PEN)) == GetStockObject(DC_PEN), "\n");
|
|
|
|
// Test an incorrect color, yes windows sets the color!
|
|
SetDCPenColor(hDC, 0x21123456);
|
|
ok(SetDCPenColor(hDC, RGB(0,0,0)) == 0x21123456, "\n");
|
|
|
|
// Test CLR_INVALID, it sets CLR_INVALID!
|
|
SetDCPenColor(hDC, CLR_INVALID);
|
|
ok(SetDCPenColor(hDC, RGB(0,0,0)) == CLR_INVALID, "\n");
|
|
|
|
hbmp = CreateBitmap(10, 10, 1, 32, NULL);
|
|
ok(hbmp != 0, "CreateBitmap failed, skipping tests\n");
|
|
if (!hbmp) return;
|
|
hbmpOld = SelectObject(hDC, hbmp);
|
|
#if 0 // this only works on 32 bpp screen resolution
|
|
ok(hbmpOld != NULL, "\n");
|
|
SelectObject(hDC, GetStockObject(DC_PEN));
|
|
SetDCPenColor(hDC, 0x123456);
|
|
MoveToEx(hDC, 0, 0, NULL);
|
|
LineTo(hDC, 10, 0);
|
|
ok(GetPixel(hDC, 5, 0) == 0x123456, "\n");
|
|
#endif
|
|
|
|
// Delete the DC
|
|
SelectObject(hDC, hbmpOld);
|
|
DeleteDC(hDC);
|
|
}
|
|
|
|
START_TEST(SetDCPenColor)
|
|
{
|
|
Test_SetDCPenColor();
|
|
}
|
|
|