+#ifdef __WXMICROWIN__
+ m_refData = new wxBitmapRefData();
+
+ // Initial attempt at a simple-minded implementation.
+ // The bitmap will always be created at the screen depth,
+ // so the 'depth' argument is ignored.
+ // TODO: transparency (create a mask image)
+
+ HDC hScreenDC = ::GetDC(NULL);
+ int screenDepth = ::GetDeviceCaps(hScreenDC, BITSPIXEL);
+
+ HBITMAP hBitmap = ::CreateCompatibleBitmap(hScreenDC, image.GetWidth(), image.GetHeight());
+ // printf("Created bitmap %d\n", (int) hBitmap);
+ if (hBitmap == NULL)
+ {
+ ::ReleaseDC(NULL, hScreenDC);
+ return FALSE;
+ }
+ HDC hMemDC = ::CreateCompatibleDC(hScreenDC);
+ ::ReleaseDC(NULL, hScreenDC);
+
+ HBITMAP hOldBitmap = ::SelectObject(hMemDC, hBitmap);
+
+ int i, j;
+ for (i = 0; i < image.GetWidth(); i++)
+ {
+ for (j = 0; j < image.GetHeight(); j++)
+ {
+ unsigned char red = image.GetRed(i, j);
+ unsigned char green = image.GetGreen(i, j);
+ unsigned char blue = image.GetBlue(i, j);
+
+ ::SetPixel(hMemDC, i, j, PALETTERGB(red, green, blue));
+ }
+ }
+
+ ::SelectObject(hMemDC, hOldBitmap);
+ ::DeleteDC(hMemDC);
+
+ SetWidth(image.GetWidth());
+ SetHeight(image.GetHeight());
+ SetDepth(screenDepth);
+ SetHBITMAP( (WXHBITMAP) hBitmap );
+
+#if wxUSE_PALETTE
+ // Copy the palette from the source image
+ SetPalette(image.GetPalette());
+#endif // wxUSE_PALETTE
+
+#if WXWIN_COMPATIBILITY_2
+ // check the wxBitmap object
+ GetBitmapData()->SetOk();
+#endif // WXWIN_COMPATIBILITY_2
+
+ return TRUE;
+
+#else