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 #include <pseh/pseh2.h>
11 
Test_Set(ULONG ulLine,HDC hdc,INT x,INT y,LPPOINT ppt,BOOL bExp,DWORD dwErrExp)12 void Test_Set(ULONG ulLine, HDC hdc, INT x, INT y, LPPOINT ppt, BOOL bExp, DWORD dwErrExp)
13 {
14     BOOL bResult;
15 
16     SetLastError(0);
17 
18     _SEH2_TRY
19     {
20         bResult = SetBrushOrgEx(hdc, x, y, ppt);
21     }
22     _SEH2_EXCEPT(1)
23     {
24         bResult = -1;
25     }
26     _SEH2_END;
27 
28     ok(bResult == bExp, "line %ld: Wrong result, expected %d, got %d\n",
29        ulLine, bExp, bResult);
30     ok(GetLastError() == dwErrExp,"line %ld: Wrong error, expected %lx, got %lx\n",
31        ulLine, dwErrExp, GetLastError());
32 }
33 
34 #define TEST_SET(hdc, x, y, ppt, bExp, dwErrExp) \
35     Test_Set(__LINE__, hdc, x, y, ppt, bExp, dwErrExp)
36 
Test_SetBrushOrgEx()37 void Test_SetBrushOrgEx()
38 {
39     HDC hdc;
40     POINT ptOldOrg;
41 
42     hdc = CreateCompatibleDC(0);
43     ok(hdc != 0, "could not ceate DC\n");
44 
45     TEST_SET(0, 0, 0, NULL, 0, ERROR_INVALID_HANDLE);
46     TEST_SET(0, 0, 0, (LPPOINT)-1, 0, ERROR_INVALID_HANDLE);
47     TEST_SET(0, 0, 0, &ptOldOrg, 0, ERROR_INVALID_HANDLE);
48     TEST_SET(hdc, 1, 2, &ptOldOrg, 1, 0);
49     ok_long(ptOldOrg.x, 0);
50     ok_long(ptOldOrg.y, 0);
51     SetBrushOrgEx(hdc, 0, 0, &ptOldOrg);
52     ok_long(ptOldOrg.x, 1);
53     ok_long(ptOldOrg.y, 2);
54 
55     ptOldOrg.x = 0; ptOldOrg.y = 0;
56     TEST_SET(hdc, 1, 2, (LPPOINT)-1, -1, 0);
57     SetBrushOrgEx(hdc, 0, 0, &ptOldOrg);
58     ok_long(ptOldOrg.x, 0);
59     ok_long(ptOldOrg.y, 0);
60 
61 
62     TEST_SET(hdc, -10000, -20000000, &ptOldOrg, 1, 0);
63     ok_long(ptOldOrg.x, 0);
64     ok_long(ptOldOrg.y, 0);
65     SetBrushOrgEx(hdc, 0, 0, &ptOldOrg);
66     ok_long(ptOldOrg.x, -10000);
67     ok_long(ptOldOrg.y, -20000000);
68 
69 
70 }
71 
START_TEST(SetBrushOrgEx)72 START_TEST(SetBrushOrgEx)
73 {
74     Test_SetBrushOrgEx();
75 }
76 
77