+// Copy constructor
+wxMask::wxMask(const wxMask &mask)
+ : wxObject()
+{
+ BITMAP bmp;
+
+ HDC srcDC = CreateCompatibleDC(0);
+ HDC destDC = CreateCompatibleDC(0);
+
+ // GetBitmapDimensionEx won't work if SetBitmapDimensionEx wasn't used
+ // so we'll use GetObject() API here:
+ if (::GetObject((HGDIOBJ)mask.m_maskBitmap, sizeof(bmp), &bmp) == 0)
+ {
+ wxFAIL_MSG(wxT("Cannot retrieve the dimensions of the wxMask to copy"));
+ return;
+ }
+
+ // create our HBITMAP
+ int w = bmp.bmWidth, h = bmp.bmHeight;
+ m_maskBitmap = (WXHBITMAP)CreateCompatibleBitmap(srcDC, w, h);
+
+ // copy the mask's HBITMAP into our HBITMAP
+ SelectObject(srcDC, (HBITMAP) mask.m_maskBitmap);
+ SelectObject(destDC, (HBITMAP) m_maskBitmap);
+
+ BitBlt(destDC, 0, 0, w, h, srcDC, 0, 0, SRCCOPY);
+
+ SelectObject(srcDC, 0);
+ DeleteDC(srcDC);
+ SelectObject(destDC, 0);
+ DeleteDC(destDC);
+}
+