3 extern BOOL STDCALL GdiDllInitialize(HANDLE hInstance, DWORD Event, LPVOID Reserved);
5 void __stdcall Test1BPP (HDC Desktop)
10 BITMAPINFOHEADER BitInf;
11 PBITMAPINFO BitPalInf;
12 DWORD bmiSize = sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * 2;
15 BitPalInf = (PBITMAPINFO)malloc(bmiSize);
16 BitInf.biSize = sizeof(BITMAPINFOHEADER);
18 BitInf.biHeight = -50; // it's top down (since BI_RGB is used, the sign is operative of direction)
20 BitInf.biBitCount = 1;
21 BitInf.biCompression = BI_RGB;
22 BitInf.biSizeImage = 0;
23 BitInf.biXPelsPerMeter = 0;
24 BitInf.biYPelsPerMeter = 0;
26 BitInf.biClrImportant = 0;
27 BitPalInf->bmiHeader = BitInf;
28 BitPalInf->bmiColors[1].rgbBlue = 255;
29 BitPalInf->bmiColors[1].rgbGreen = 255;
30 BitPalInf->bmiColors[1].rgbRed = 255;
31 BitPalInf->bmiColors[1].rgbReserved = 255;
32 BitPalInf->bmiColors[0].rgbBlue = 0;
33 BitPalInf->bmiColors[0].rgbGreen = 0;
34 BitPalInf->bmiColors[0].rgbRed = 0;
35 BitPalInf->bmiColors[0].rgbReserved = 0;
37 DIB1 = (HBITMAP) CreateDIBSection(NULL, BitPalInf, DIB_RGB_COLORS, NULL, NULL, 0);
38 TestDC = CreateCompatibleDC(NULL);
39 SelectObject(TestDC, DIB1);
41 // Draw a white rectangle on the 1BPP DIB
42 WhitePen = CreatePen(PS_SOLID, 1, RGB(255, 255, 255));
43 SelectObject(TestDC, WhitePen);
44 Rectangle(TestDC, 0, 0, 40, 40);
46 // Blt the 1BPP DIB to the display
47 BitBlt(Desktop, 0, 0, 50, 50, TestDC, 0, 0, SRCCOPY);
50 // Rectangle(Desktop, 50, 50, 200, 200);
57 // Set up a DC called Desktop that accesses DISPLAY
58 Desktop = CreateDCA("DISPLAY", NULL, NULL, NULL);
60 printf("Can't create desktop\n");
73 int main(int argc, char* argv[])
75 printf("Entering DIBTest..\n");
77 GdiDllInitialize (NULL, DLL_PROCESS_ATTACH, NULL);