wxLogLastError("CreateCompatibleDC");
}
- if ( !::SelectObject(srcDC, GetHbitmapOf(bitmap)) )
+ bool ok = TRUE;
+
+ HGDIOBJ hbmpSrcOld = ::SelectObject(srcDC, GetHbitmapOf(bitmap));
+ if ( !hbmpSrcOld )
{
wxLogLastError("SelectObject");
+
+ ok = FALSE;
}
- if ( !::SelectObject(destDC, (HBITMAP)m_maskBitmap) )
+
+ HGDIOBJ hbmpDstOld = ::SelectObject(destDC, (HBITMAP)m_maskBitmap);
+ if ( !hbmpDstOld )
{
wxLogLastError("SelectObject");
+
+ ok = FALSE;
}
// this is not very efficient, but I can't think of a better way of doing
// it
- for ( int w = 0; w < width; w++ )
+ for ( int w = 0; ok && (w < width); w++ )
{
- for ( int h = 0; h < height; h++ )
+ for ( int h = 0; ok && (h < height); h++ )
{
COLORREF col = GetPixel(srcDC, w, h);
if ( col == CLR_INVALID )
wxLogLastError("GetPixel");
// doesn't make sense to continue
- ::SelectObject(srcDC, 0);
- ::DeleteDC(srcDC);
- ::SelectObject(destDC, 0);
- ::DeleteDC(destDC);
+ ok = FALSE;
- return FALSE;
+ break;
}
if ( col == maskColour )
}
}
- ::SelectObject(srcDC, 0);
+ ::SelectObject(srcDC, hbmpSrcOld);
::DeleteDC(srcDC);
- ::SelectObject(destDC, 0);
+ ::SelectObject(destDC, hbmpDstOld);
::DeleteDC(destDC);
- return TRUE;
+ return ok;
}
// ----------------------------------------------------------------------------