[COM_APITEST] Add a test for CLSID_ActiveDesktop
[reactos.git] / modules / rostests / apitests / gdi32 / SetBrushOrgEx.c
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