2 * PROJECT: ReactOS api tests
3 * LICENSE: GPL - See COPYING in the top level directory
4 * PURPOSE: Test for ...
5 * PROGRAMMERS: Timo Kreuzer
10 void Test_GetDIBColorTable()
14 BITMAPINFOHEADER bmiHeader
;
17 BITMAPINFO
*pbmi
= (PVOID
)&bmibuffer
;
18 HBITMAP hbmp
, hbmpOld
;
24 hdc
= CreateCompatibleDC(0);
25 ok(hdc
!= 0, "failed\n");
28 cColors
= GetDIBColorTable(hdc
, 0, 257, (RGBQUAD
*)aulColors
);
31 ok_long(aulColors
[0], 0x000000);
32 ok_long(aulColors
[1], 0xffffff);
34 hbmp
= CreateBitmap(1, 1, 1, 1, NULL
);
36 hbmpOld
= SelectObject(hdc
, hbmp
);
37 ok(hbmpOld
!= 0, "Failed to select bitmap\n");
38 cColors
= GetDIBColorTable(hdc
, 0, 257, (RGBQUAD
*)aulColors
);
41 ok_long(aulColors
[0], 0x000000);
42 ok_long(aulColors
[1], 0xffffff);
43 SelectObject(hdc
, hbmpOld
);
46 /* Initialize a BITMAPINFO */
47 pbmi
->bmiHeader
.biSize
= sizeof(BITMAPINFOHEADER
);
48 pbmi
->bmiHeader
.biWidth
= 2;
49 pbmi
->bmiHeader
.biHeight
= 2;
50 pbmi
->bmiHeader
.biPlanes
= 1;
51 pbmi
->bmiHeader
.biBitCount
= 8;
52 pbmi
->bmiHeader
.biCompression
= BI_RGB
;
53 pbmi
->bmiHeader
.biSizeImage
= 0;
54 pbmi
->bmiHeader
.biXPelsPerMeter
= 1;
55 pbmi
->bmiHeader
.biYPelsPerMeter
= 1;
56 pbmi
->bmiHeader
.biClrUsed
= 3;
57 pbmi
->bmiHeader
.biClrImportant
= 0;
58 bmibuffer
.bmiColors
[0] = 0xff0000;
59 bmibuffer
.bmiColors
[1] = 0x00ff00;
60 bmibuffer
.bmiColors
[2] = 0x0000ff;
62 hbmp
= CreateDIBSection(hdc
, pbmi
, DIB_RGB_COLORS
, (PVOID
*)&pjBits
, 0, 0 );
63 ok( hbmp
!= NULL
, "error=%ld\n", GetLastError() );
64 SelectObject(hdc
, hbmp
);
66 cColors
= GetDIBColorTable(hdc
, 0, 257, (RGBQUAD
*)aulColors
);
67 ok_long(cColors
, 256);
68 ok_long(aulColors
[0], 0xff0000);
69 ok_long(aulColors
[1], 0x00ff00);
70 ok_long(aulColors
[2], 0x0000ff);
71 ok_long(aulColors
[3], 0x000000);
74 cColors
= SetDIBColorTable(hdc
, 0, 4, (RGBQUAD
*)aulColors
);
77 aulColors
[3] = 0x000F0F;
78 cColors
= SetDIBColorTable(hdc
, 0, 4, (RGBQUAD
*)aulColors
);
81 cColors
= GetDIBColorTable(hdc
, 0, 257, (RGBQUAD
*)aulColors
);
82 ok_long(cColors
, 256);
83 ok_long(aulColors
[0], 0xff0000);
84 ok_long(aulColors
[1], 0x00ff00);
85 ok_long(aulColors
[2], 0x0000ff);
86 ok_long(aulColors
[3], 0x000F0F);
89 SelectObject(hdc
, GetStockObject(21));
92 bmibuffer
.bmiColors
[0] = 1;
93 bmibuffer
.bmiColors
[1] = 2;
94 bmibuffer
.bmiColors
[2] = 3;
96 hbmp
= CreateDIBSection(hdc
, pbmi
, DIB_PAL_COLORS
, (PVOID
*)&pjBits
, 0, 0 );
97 ok( hbmp
!= NULL
, "error=%ld\n", GetLastError() );
98 SelectObject(hdc
, hbmp
);
103 START_TEST(GetDIBColorTable
)
105 Test_GetDIBColorTable();