/// <summary>Rectangle Structure</summary>
[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
public int left;
public int top;
public int right;
public int bottom;
public RECT(int left, int top, int right, int bottom)
{
this.left = left;
this.top = top;
this.right = right;
this.bottom = bottom;
}
public override int GetHashCode() {
return Left ^ ((Top << 13) | (Top >> 0x13))
^ ((Width << 0x1a) | (Width >> 6))
^ ((Height << 7) | (Height >> 0x19));
}
#region Operator overloads: Cast To And From System.Drawing.Rectangle
/// <summary>Implicitly casts a RECT to a <see cref="Rectangle"/>.</summary>
/// <param name="r">The <c>RECT</c> instance to cast to a <c>Rectangle</c>
/// instance.</param>
/// <returns>A new <c>Rectangle</c> structure.</returns>
public static implicit operator Rectangle( RECT r )
{
return new Rectangle(r.left, r.top, r.right-r.left, r.bottom-r.top);
}
/// <summary>Implicitly casts a <see cref="Rectangle"/> to a <c>RECT</c>.</summary>
/// <param name="r">The <c>Rectangle</c> instance to cast to a <c>RECT</c>
/// instance.</param>
/// <returns>A new <c>RECT</c> structure.</returns>
public static implicit operator RECT( Rectangle r )
{
return new RECT(r.Left, r.Top, r.Right, r.Bottom);
}
#endregion
}
<StructLayout(LayoutKind.Sequential)> _
Public Structure RECT
Public Left As Integer
Public Top As Integer
Public Right As Integer
Public Bottom As Integer
End Structure
Public Shared Function ToRectangle(ByVal sourceRect As RECT) As Rectangle
Return New Rectangle(sourceRect.Left, sourceRect.Top, sourceRect.Right - sourceRect.Left + 1, sourceRect.Bottom - sourceRect.Top + 1)
End Function
None.
None.
Please add some!
Please add some!
TODO