Hello there I have a problem. I have a setup to capture Screenshots of my WebBrowser control:
public static class Utilities
{
public const int SRCCOPY =
My GDI is a bit rusty on order of operations... but have you tried moving Gdi.DeleteDC(hdcDest)
after Gdi32.DeleteObject(hBitmap)
?
It would seem like DeleteDC
should be the last thing you do after cleaning up all associated objects with that DC.
Here is how I would think to reorder it:
IntPtr hOld = Gdi32.SelectObject(hdcDest, hBitmap);
Gdi32.BitBlt(hdcDest, 0, 0, width, height, hdcSrc, 0, 0, SRCCOPY);
Image image = Image.FromHbitmap(hBitmap);
Gdi32.SelectObject(hdcDest, hOld);
Gdi32.DeleteObject(hBitmap);
Gdi32.DeleteDC(hdcDest);
User32.ReleaseDC(handle, hdcSrc);