+ SetTextColor( hdc, old_text );
+ SetBkColor( hdc, old_bkgnd );
+ compare_hash(hdc, bmi, bits, "BitBlt src 1-bpp ddb SRCCOPY" );
+
+ DeleteObject( bmp );
+
+ /* blitting to 1-bpp ddb dest */
+
+ bmp = CreateBitmap( 16, 16, 1, 1, ddb_brush_bits );
+ DeleteObject( SelectObject( src_dc, bmp ) );
+
+ for (y = 0; y < 16; y++)
+ for (x = 0; x < 16; x++)
+ SetPixel( hdc, x, y, RGB( 16 * x, 16 * y, 8 * (x + y)) );
+ PatBlt( hdc, 15, 15, 1, 1, WHITENESS );
+ /* source colors are ignored */
+ SetTextColor( src_dc, 0xbeef );
+ SetBkColor( src_dc, RGB( 16 * 2, 16 * 3, 8 * (2 + 3) ));
+ /* destination text color is also ignored */
+ SetTextColor( hdc, 0xbedead );
+
+ i = 16;
+ SetBkColor( hdc, 0xffffff );
+ BitBlt( src_dc, 0, 0, 16, 16, hdc, 0, 0, SRCCOPY );
+ GetBitmapBits( bmp, 32, bits + get_stride(bmi) * i++ );
+ StretchDIBits( src_dc, 0, 0, 16, 16, 0,
+ bmi->bmiHeader.biHeight - 16, 16, 16, bits, bmi, DIB_RGB_COLORS, SRCCOPY );
+ GetBitmapBits( bmp, 32, bits + get_stride(bmi) * i++ );
+ SetBkColor( hdc, 0 );
+ BitBlt( src_dc, 0, 0, 16, 16, hdc, 0, 0, SRCCOPY );
+ GetBitmapBits( bmp, 32, bits + get_stride(bmi) * i++ );
+ StretchDIBits( src_dc, 0, 0, 16, 16, 0,
+ bmi->bmiHeader.biHeight - 16, 16, 16, bits, bmi, DIB_RGB_COLORS, SRCCOPY );
+ GetBitmapBits( bmp, 32, bits + get_stride(bmi) * i++ );
+ SetBkColor( hdc, RGB( 16 * 2, 16 * 3, 8 * (2 + 3) ));
+ BitBlt( src_dc, 0, 0, 16, 16, hdc, 0, 0, SRCCOPY );
+ GetBitmapBits( bmp, 32, bits + get_stride(bmi) * i++ );
+ StretchDIBits( src_dc, 0, 0, 16, 16, 0,
+ bmi->bmiHeader.biHeight - 16, 16, 16, bits, bmi, DIB_RGB_COLORS, SRCCOPY );
+ GetBitmapBits( bmp, 32, bits + get_stride(bmi) * i++ );
+ SetBkColor( hdc, RGB( 16 * 13, 16 * 14, 8 * (13 + 14) ));
+ BitBlt( src_dc, 0, 0, 16, 16, hdc, 0, 0, SRCCOPY );
+ GetBitmapBits( bmp, 32, bits + get_stride(bmi) * i++ );
+ StretchDIBits( src_dc, 0, 0, 16, 16, 0,
+ bmi->bmiHeader.biHeight - 16, 16, 16, bits, bmi, DIB_RGB_COLORS, SRCCOPY );
+ GetBitmapBits( bmp, 32, bits + get_stride(bmi) * i++ );
+ SetBkColor( hdc, PALETTEINDEX( 1 ));
+ BitBlt( src_dc, 0, 0, 16, 16, hdc, 0, 0, SRCCOPY );
+ GetBitmapBits( bmp, 32, bits + get_stride(bmi) * i++ );
+ StretchDIBits( src_dc, 0, 0, 16, 16, 0,
+ bmi->bmiHeader.biHeight - 16, 16, 16, bits, bmi, DIB_RGB_COLORS, SRCCOPY );
+ GetBitmapBits( bmp, 32, bits + get_stride(bmi) * i++ );
+ SetBkColor( hdc, DIBINDEX( 2 ));
+ BitBlt( src_dc, 0, 0, 16, 16, hdc, 0, 0, SRCCOPY );
+ GetBitmapBits( bmp, 32, bits + get_stride(bmi) * i++ );
+ StretchDIBits( src_dc, 0, 0, 16, 16, 0,
+ bmi->bmiHeader.biHeight - 16, 16, 16, bits, bmi, DIB_RGB_COLORS, SRCCOPY );
+ GetBitmapBits( bmp, 32, bits + get_stride(bmi) * i++ );
+ SetTextColor( hdc, old_text );
+ SetBkColor( hdc, old_bkgnd );
+ compare_hash(hdc, bmi, bits, "BitBlt dst 1-bpp ddb");