19 } bmiData = {{
sizeof(
BITMAPINFOHEADER), 8, 1, 1, 1,
BI_RGB, 0, 10, 10, 2,0}, {0, 0xFFFFFF}};
22 PUCHAR pjBitsDst, pjBitsSrc, pjBitsMsk;
42 ret =
MaskBlt(
hdcDst, 0, 0, 8, 1,
hdcSrc, 0, 0, hbmMsk, 0, 0,
MAKEROP4(
SRCCOPY, 0xAA0000));
43 ok(
ret == 1,
"MaskBlt failed (%d)\n",
ret);
44 ok(pjBitsDst[0] == 0xCA,
"pjBitsDst[0] == 0x%x\n", pjBitsDst[0]);
49 ret =
MaskBlt(
hdcDst, 0, 0, 8, 1,
hdcSrc, 0, 0, hbmMsk, 0, 0,
MAKEROP4(
SRCCOPY, 0xAA0000));
50 ok(
ret == 1,
"MaskBlt failed (%d)\n",
ret);
51 ok(pjBitsDst[0] == 0xF0,
"pjBitsDst[0] == 0x%x\n", pjBitsDst[0]);
58 ret =
MaskBlt(
hdcDst, 0, 0, 8, 1,
hdcSrc, 0, 0, hbmMsk, 0, 0,
MAKEROP4(
NOTSRCERASE,
SRCINVERT));
59 ok(
ret == 1,
"MaskBlt failed (%d)\n",
ret);
60 ok(pjBitsDst[0] == 0x16,
"pjBitsDst[0] == 0x%x\n", pjBitsDst[0]);
66 ret =
MaskBlt(
hdcDst, 0, 0, 8, 1,
hdcSrc, 0, 0, hbmMsk, 0, 0,
MAKEROP4(
MERGEPAINT, 0x990000));
67 ok(
ret == 1,
"MaskBlt failed (%d)\n",
ret);
68 ok(pjBitsDst[0] == 0xE3,
"pjBitsDst[0] == 0x%x\n", pjBitsDst[0]);
71 ret =
MaskBlt(
hdcDst, 0, 0, 8, 1,
hdcSrc, 0, 0,
NULL, 0, 0,
MAKEROP4(
SRCCOPY, 0xAA0000));
72 ok(
ret == 1,
"MaskBlt failed (%d)\n",
ret);
73 ok(pjBitsDst[0] == 0xCC,
"pjBitsDst[0] == 0x%x\n", pjBitsDst[0]);
76 ret =
MaskBlt(
hdcDst, 0, 0, 8, 1,
hdcSrc, 0, 0, (
HBITMAP)0x123456, 0, 0,
MAKEROP4(
SRCCOPY, 0xAA0000));
77 ok(
ret == 0,
"MaskBlt should fail, but succeeded (%d)\n",
ret);
81 ret =
MaskBlt(
hdcDst, 0, 0, 8, 1,
hdcSrc, 0, 0,
ghbmp24, 0, 0,
MAKEROP4(
SRCCOPY, 0xAA0000));
82 ok(
ret == 0,
"MaskBlt should fail, but succeeded (%d)\n",
ret);
85 ret =
MaskBlt(
hdcDst, 0, 0, 8, 1,
hdcSrc, 0, 0, (
HBITMAP)0x123456, 0, 0,
MAKEROP4(
SRCCOPY,
SRCCOPY));
86 ok(
ret == 1,
"MaskBlt failed (%d)\n",
ret);
89 ret =
MaskBlt(
hdcDst, 0, 0, 8, 1,
NULL, 0, 0,
NULL, 0, 0,
MAKEROP4(
PATCOPY, 0xAA0000));
90 ok(
ret == 0,
"MaskBlt should fail, but succeeded (%d)\n",
ret);
102 ret =
MaskBlt(
hdcDst, 0, 0, 5, 1,
hdcSrc, 0, 0, hbmMsk, 0, 0,
MAKEROP4(
SRCCOPY, 0xAA0000));
103 ok(
ret == 0,
"MaskBlt should fail, but succeeded (%d)\n",
ret);
104 ret =
MaskBlt(
hdcDst, 0, 0, 4, 1,
hdcSrc, 0, 0, hbmMsk, 1, 0,
MAKEROP4(
SRCCOPY, 0xAA0000));
105 ok(
ret == 0,
"MaskBlt should fail, but succeeded (%d)\n",
ret);
106 ret =
MaskBlt(
hdcDst, 0, 0, 4, 1,
hdcSrc, 0, 0, hbmMsk, 0, 1,
MAKEROP4(
SRCCOPY, 0xAA0000));
107 ok(
ret == 0,
"MaskBlt should fail, but succeeded (%d)\n",
ret);
108 ret =
MaskBlt(
hdcDst, 0, 0, 4, 1,
hdcSrc, 0, 0, hbmMsk, 0, 0,
MAKEROP4(
SRCCOPY, 0xAA0000));
109 ok(
ret == 1,
"MaskBlt failed (%d)\n",
ret);
110 ok(pjBitsDst[0] == 0x8A,
"pjBitsDst[0] == 0x%x\n", pjBitsDst[0]);
117 BITMAPINFO bmi1 = {{
sizeof(
BITMAPINFOHEADER), 8, 1, 1, 1,
BI_RGB, 0, 10, 10, 0,0}};
118 BITMAPINFO bmi32 = {{
sizeof(
BITMAPINFOHEADER), 8, 1, 1, 16,
BI_RGB, 0, 10, 10, 0,0}};
119 HBITMAP hbmDst, hbmSrc, hbmMsk;
121 PUSHORT pusBitsDst, pusBitsSrc;
137 ok(hbmMsk != 0,
"CreateDIBSection failed\n");
140 pusBitsDst[0] = 0x1234;
141 pusBitsDst[1] = 0x5678;
142 pusBitsSrc[0] = 0x4321;
143 pusBitsSrc[1] = 0x8765;
145 ret =
MaskBlt(
hdcDst, 0, 0, 8, 1,
hdcSrc, 0, 0, hbmMsk, 0, 0,
MAKEROP4(
SRCCOPY, 0xAA0000));
146 ok(
ret == 1,
"MaskBlt failed (%d)\n",
ret);
147 ok (pusBitsDst[0] == 0x4321,
"pusBitsDst[0] == 0x%x\n", pusBitsDst[0]);
148 ok (pusBitsDst[1] == 0x5678,
"pusBitsDst[0] == 0x%x\n", pusBitsDst[1]);
150 pusBitsDst[0] = 0x1234;
151 pusBitsDst[1] = 0x5678;
152 ret =
MaskBlt(
hdcDst, 0, 0, 8, 1,
hdcSrc, 0, 0, hbmMsk, 0, 0,
MAKEROP4(
SRCPAINT,
MERGEPAINT));
153 ok(
ret == 1,
"MaskBlt failed (%d)\n",
ret);
154 ok (pusBitsDst[0] == 0x5335,
"pusBitsDst[0] == 0x%x\n", pusBitsDst[0]);
155 ok (pusBitsDst[1] == 0x7efa,
"pusBitsDst[0] == 0x%x\n", pusBitsDst[1]);
161 BITMAPINFO bmi1 = {{
sizeof(
BITMAPINFOHEADER), 8, 1, 1, 1,
BI_RGB, 0, 10, 10, 0,0}};
162 BITMAPINFO bmi32 = {{
sizeof(
BITMAPINFOHEADER), 8, 1, 1, 32,
BI_RGB, 0, 10, 10, 0,0}};
163 HBITMAP hbmDst, hbmSrc, hbmMsk;
165 PULONG pulBitsDst, pulBitsSrc;
181 ok(hbmMsk != 0,
"CreateDIBSection failed\n");
184 pulBitsDst[0] = 0x12345678;
185 pulBitsDst[1] = 0x9abcdef0;
186 pulBitsSrc[0] = 0x87684321;
187 pulBitsSrc[1] = 0x0fedcba9;
189 ret =
MaskBlt(
hdcDst, 0, 0, 8, 1,
hdcSrc, 0, 0, hbmMsk, 0, 0,
MAKEROP4(
SRCCOPY, 0xAA0000));
190 ok(
ret == 1,
"MaskBlt failed (%d)\n",
ret);
191 ok (pulBitsDst[0] == 0x87684321,
"pulBitsDst[0] == 0x%lx\n", pulBitsDst[0]);
192 ok (pulBitsDst[1] == 0x9abcdef0,
"pulBitsDst[0] == 0x%lx\n", pulBitsDst[1]);
194 pulBitsDst[0] = 0x12345678;
195 pulBitsDst[1] = 0x9abcdef0;
196 ret =
MaskBlt(
hdcDst, 0, 0, 8, 1,
hdcSrc, 0, 0, hbmMsk, 0, 0,
MAKEROP4(
SRCPAINT,
MERGEPAINT));
197 ok(
ret == 1,
"MaskBlt failed (%d)\n",
ret);
198 ok (pulBitsDst[0] == 0x977c5779,
"pulBitsDst[0] == 0x%lx\n", pulBitsDst[0]);
199 ok (pulBitsDst[1] == 0xfabefef6,
"pulBitsDst[0] == 0x%lx\n", pulBitsDst[1]);
209 } bmiData = {{
sizeof(
BITMAPINFOHEADER), 16, 16, 1, 1,
BI_RGB, 0, 10, 10, 2,0}, {0, 0xFFFFFF}};
211 HBITMAP hbmDst, hbmSrc, hbmMsk;
212 PULONG pulBitsDst, pulBitsSrc, pulBitsMsk;
227 ok(hbr != 0,
"failed to create brush\n");
231 pulBitsDst[0] = 0x00000000;
232 pulBitsSrc[0] = 0xFFFFFFFF;
233 ret =
MaskBlt(
hdcDst, 0, 0, 8, 1,
hdcSrc, 0, 0,
NULL, 0, 0,
MAKEROP4(
SRCCOPY, 0xAA0000));
234 ok(
ret == 1,
"MaskBlt failed (%d)\n",
ret);
235 ok(pulBitsDst[0] == 0,
"pulBitsDst[0] == 0x%lx\n", pulBitsDst[0]);
240 ok(hbmMsk != 0,
"CreateDIBSection failed\n");
242 ok(hbr != 0,
"CreatePatternBrush failed\n");
246 pulBitsDst[0] = 0x00000000;
247 pulBitsSrc[0] = 0xFFFFFFFF;
248 pulBitsMsk[0] = 0xCCAAFF00;
249 ret =
MaskBlt(
hdcDst, 0, 0, 16, 1,
hdcSrc, 0, 0,
NULL, 0, 0,
MAKEROP4(
SRCCOPY, 0xAA0000));
250 ok(
ret == 1,
"MaskBlt failed (%d)\n",
ret);
251 ok(pulBitsDst[0] == 0,
"pulBitsDst[0] == 0x%lx\n", pulBitsDst[0]);
void Test_MaskBlt_32bpp()
void Test_MaskBlt_16bpp()
void Test_MaskBlt_Brush()
_In_ HBITMAP _In_ UINT _In_ UINT _Inout_ LPBITMAPINFO pbmi
BITMAPINFOHEADER bmiHeader
HBITMAP WINAPI CreateDIBSection(HDC hDC, CONST BITMAPINFO *BitmapInfo, UINT Usage, VOID **Bits, HANDLE hSection, DWORD dwOffset)
HBRUSH WINAPI CreateHatchBrush(_In_ int, _In_ COLORREF)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
BOOL WINAPI MaskBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ HDC, _In_ int, _In_ int, _In_ HBITMAP, _In_ int, _In_ int, _In_ DWORD)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
struct tagBITMAPINFO * PBITMAPINFO
HBRUSH WINAPI CreatePatternBrush(_In_ HBITMAP)