using System.Runtime.InteropServices;
namespace OBSBlur.Window;
///
/// Contains information about the placement of a window on the screen.
///
[Serializable]
[StructLayout(LayoutKind.Sequential)]
public struct WINDOWPLACEMENT
{
///
/// The length of the structure, in bytes. Before calling the GetWindowPlacement or SetWindowPlacement functions, set this member to sizeof(WINDOWPLACEMENT).
///
/// GetWindowPlacement and SetWindowPlacement fail if this member is not set correctly.
///
///
public int Length;
///
/// Specifies flags that control the position of the minimized window and the method by which the window is restored.
///
public int Flags;
///
/// The current show state of the window.
///
public ShowWindowCommands ShowCmd;
///
/// The coordinates of the window's upper-left corner when the window is minimized.
///
public Point MinPosition;
///
/// The coordinates of the window's upper-left corner when the window is maximized.
///
public Point MaxPosition;
///
/// The window's coordinates when the window is in the restored position.
///
public Rectangle NormalPosition;
///
/// Gets the default (empty) value.
///
public static WINDOWPLACEMENT Default
{
get
{
WINDOWPLACEMENT result = new WINDOWPLACEMENT();
result.Length = Marshal.SizeOf( result );
return result;
}
}
public override string ToString()
{
return $"CMD: {ShowCmd,13} Min: {MinPosition} Max: {MaxPosition} Normal: {NormalPosition}";
}
}