1 /*
2  * PROJECT:         ReactOS api tests
3  * LICENSE:         GPL - See COPYING in the top level directory
4  * PURPOSE:         Test for SetBrushOrgEx
5  * PROGRAMMERS:     Timo Kreuzer
6  */
7 
8 #include "precomp.h"
9 
10 void Test_Set(ULONG ulLine, HDC hdc, INT x, INT y, LPPOINT ppt, BOOL bExp, DWORD dwErrExp)
11 {
12     BOOL bResult;
13 
14     SetLastError(0);
15 
16     _SEH2_TRY
17     {
18         bResult = SetBrushOrgEx(hdc, x, y, ppt);
19     }
20     _SEH2_EXCEPT(1)
21     {
22         bResult = -1;
23     }
24     _SEH2_END;
25 
26     ok(bResult == bExp, "line %ld: Wrong result, expected %d, got %d\n",
27        ulLine, bExp, bResult);
28     ok(GetLastError() == dwErrExp,"line %ld: Wrong error, expected %lx, got %lx\n",
29        ulLine, dwErrExp, GetLastError());
30 }
31 
32 #define TEST_SET(hdc, x, y, ppt, bExp, dwErrExp) \
33     Test_Set(__LINE__, hdc, x, y, ppt, bExp, dwErrExp)
34 
35 void Test_SetBrushOrgEx()
36 {
37     HDC hdc;
38     POINT ptOldOrg;
39 
40     hdc = CreateCompatibleDC(0);
41     ok(hdc != 0, "could not ceate DC\n");
42 
43     TEST_SET(0, 0, 0, NULL, 0, ERROR_INVALID_HANDLE);
44     TEST_SET(0, 0, 0, (LPPOINT)-1, 0, ERROR_INVALID_HANDLE);
45     TEST_SET(0, 0, 0, &ptOldOrg, 0, ERROR_INVALID_HANDLE);
46     TEST_SET(hdc, 1, 2, &ptOldOrg, 1, 0);
47     ok_long(ptOldOrg.x, 0);
48     ok_long(ptOldOrg.y, 0);
49     SetBrushOrgEx(hdc, 0, 0, &ptOldOrg);
50     ok_long(ptOldOrg.x, 1);
51     ok_long(ptOldOrg.y, 2);
52 
53     ptOldOrg.x = 0; ptOldOrg.y = 0;
54     TEST_SET(hdc, 1, 2, (LPPOINT)-1, -1, 0);
55     SetBrushOrgEx(hdc, 0, 0, &ptOldOrg);
56     ok_long(ptOldOrg.x, 0);
57     ok_long(ptOldOrg.y, 0);
58 
59 
60     TEST_SET(hdc, -10000, -20000000, &ptOldOrg, 1, 0);
61     ok_long(ptOldOrg.x, 0);
62     ok_long(ptOldOrg.y, 0);
63     SetBrushOrgEx(hdc, 0, 0, &ptOldOrg);
64     ok_long(ptOldOrg.x, -10000);
65     ok_long(ptOldOrg.y, -20000000);
66 
67 
68 }
69 
70 START_TEST(SetBrushOrgEx)
71 {
72     Test_SetBrushOrgEx();
73 }
74 
75