/// <devdoc> /// Creates a DeviceContext object wrapping a memory DC compatible with the specified device. /// </devdoc> public static DeviceContext FromCompatibleDC(IntPtr hdc) { // If hdc is null, the function creates a memory DC compatible with the application's current screen. // In this case the thread that calls CreateCompatibleDC owns the HDC that is created. When this thread is destroyed, // the HDC is no longer valid. IntPtr compatibleDc = IntUnsafeNativeMethods.CreateCompatibleDC(new HandleRef(null, hdc)); return(new DeviceContext(compatibleDc, DeviceContextType.Memory)); }