void Dispose(bool manual)
{
if (!disposed)
{
if (dc != IntPtr.Zero)
{
if (!API.ReleaseDC(this.handle, this.dc))
{
Debug.Print("[Warning] Failed to release device context {0}. Windows error: {1}.", this.dc, Marshal.GetLastWin32Error());
}
}
if (manual && parent != null)
{
parent.Dispose();
}
disposed = true;
}
}