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);