<PackageReference Include="System.Drawing.Common" Version="9.0.10" />

HRGN

struct HRGN : IEquatable<HRGN>
using System; using System.CodeDom.Compiler; using System.Diagnostics; using System.Runtime.CompilerServices; using Windows.Win32.Foundation; namespace Windows.Win32.Graphics.Gdi { [DebuggerDisplay("{Value}")] [GeneratedCode("Microsoft.Windows.CsWin32", "0.3.106+a37a0b4b70")] internal readonly struct HRGN : IEquatable<HRGN> { internal readonly IntPtr Value; internal static HRGN Null => default(HRGN); internal bool IsNull => Value == (IntPtr)0; [NullableContext(1)] public unsafe RECT[] GetRegionRects() { uint regionData = PInvokeCore.GetRegionData(this, 0, null); if (regionData != 0) { BufferScope<byte> bufferScope = new BufferScope<byte>((int)regionData); try { fixed (byte* ptr = &bufferScope.GetPinnableReference()) { if (PInvokeCore.GetRegionData(this, regionData, (RGNDATA*)ptr) == regionData) return RGNDATAHEADER.GetRegionRects((RGNDATAHEADER*)ptr); return Array.Empty<RECT>(); } } finally { bufferScope.Dispose(); } } return Array.Empty<RECT>(); } internal HRGN(IntPtr value) { Value = value; } public static implicit operator IntPtr(HRGN value) { return value.Value; } public static explicit operator HRGN(IntPtr value) { return new HRGN(value); } public static bool operator ==(HRGN left, HRGN right) { return left.Value == right.Value; } public static bool operator !=(HRGN left, HRGN right) { return !(left == right); } public bool Equals(HRGN other) { return Value == other.Value; } public override bool Equals(object obj) { if (obj is HRGN) { HRGN other = (HRGN)obj; return Equals(other); } return false; } public override int GetHashCode() { return Value.GetHashCode(); } public override string ToString() { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(2, 1); defaultInterpolatedStringHandler.AppendLiteral("0x"); defaultInterpolatedStringHandler.AppendFormatted(Value, "x"); return defaultInterpolatedStringHandler.ToStringAndClear(); } public static implicit operator HGDIOBJ(HRGN value) { return new HGDIOBJ(value.Value); } } }