6924492bf9eccbfd3866e5cdc526a78d6e249d39
2 * PROJECT: ReactOS api tests
3 * LICENSE: GPL - See COPYING in the top level directory
4 * PURPOSE: Test for NtGdiSetBitmapBits
10 START_TEST(NtGdiSetBitmapBits
)
12 BYTE Bits
[50] = {0,1,2,3,4,5,6,7,8,9};
15 SetLastError(ERROR_SUCCESS
);
16 ok_long(NtGdiSetBitmapBits(0, 0, 0), 0);
17 ok_long(GetLastError(), ERROR_SUCCESS
);
19 /* Test NULL bitnap handle */
20 SetLastError(ERROR_SUCCESS
);
21 ok_long(NtGdiSetBitmapBits(0, 5, Bits
), 0);
22 ok_long(GetLastError(), ERROR_INVALID_HANDLE
);
24 /* Test invalid bitmap handle */
25 hBitmap
= (HBITMAP
)CreatePen(PS_SOLID
, 1, RGB(1,2,3));
26 SetLastError(ERROR_SUCCESS
);
27 ok_long(NtGdiSetBitmapBits(hBitmap
, 5, Bits
), 0);
28 ok_long(GetLastError(), ERROR_INVALID_HANDLE
);
29 DeleteObject(hBitmap
);
31 hBitmap
= CreateBitmap(3, 3, 1, 8, NULL
);
32 SetLastError(ERROR_SUCCESS
);
34 /* test NULL pointer and count buffer size != 0 */
35 ok_long(NtGdiSetBitmapBits(hBitmap
, 5, NULL
), 0);
37 /* test NULL pointer and buffer size == 0*/
38 ok_long(NtGdiSetBitmapBits(hBitmap
, 0, NULL
), 0);
40 /* test bad pointer */
41 ok_long(NtGdiSetBitmapBits(hBitmap
, 5, (PBYTE
)0x500), 0);
43 /* Test if we can set a number of bytes between lines */
44 ok_long(NtGdiSetBitmapBits(hBitmap
, 5, Bits
), 5);
47 ok_long(NtGdiSetBitmapBits(hBitmap
, 4, Bits
+1), 4);
49 /* Test 1 byte too much */
50 ok_long(NtGdiSetBitmapBits(hBitmap
, 10, Bits
), 10);
52 /* Test one row too much */
53 ok_long(NtGdiSetBitmapBits(hBitmap
, 12, Bits
), 12);
55 ok_long(NtGdiSetBitmapBits(hBitmap
, 13, Bits
), 12);
57 ok_long(NtGdiSetBitmapBits(hBitmap
, 100, Bits
), 12);
59 /* Test huge bytes count */
60 ok_long(NtGdiSetBitmapBits(hBitmap
, 12345678, Bits
), 0);
62 /* Test negative bytes count */
63 ok_long(NtGdiSetBitmapBits(hBitmap
, -5, Bits
), 0);
65 ok_long(GetLastError(), ERROR_SUCCESS
);
67 DeleteObject(hBitmap
);