Исправлено форматирование текста. — SchweinDeBurg
По найденному материалу сотворил, но вылетает Assertion Debug...:
void CopyBitmap(CBitmap& resbitmap, CBitmap& src_bmp)
{
CWnd* desctop = CWnd::GetDesktopWindow();
CDC* desk_dc = desctop->GetDC();
ASSERT(desk_dc);
CDC src_dc;
src_dc.CreateCompatibleDC(desk_dc);
CBitmap* old_bmp_src = src_dc.SelectObject(&src_bmp);
BITMAP bmp = { 0 };
src_bmp.GetObject(sizeof(bmp), &bmp); // Вот здесь вылетает
const int width = bmp.bmWidth;
const int height = bmp.bmHeight;
CDC dest_dc;
dest_dc.CreateCompatibleDC(desk_dc);
CBitmap dest_bmp;
dest_bmp.CreateCompatibleBitmap(desk_dc, height, width);
CBitmap* old_bmp_dest = dest_dc.SelectObject(&dest_bmp);
BOOL res = dest_dc.BitBlt(0, 0, width, height, &src_dc, 0, 0, SRCCOPY);
ASSERT(res);
src_dc.SelectObject(old_bmp_src);
dest_dc.SelectObject(old_bmp_dest);
desctop->ReleaseDC(desk_dc);
HGDIOBJ old_bmp = resbitmap.Detach();
DeleteObject(old_bmp);
resbitmap.Attach(dest_bmp.Detach());
}