PersistentWindows/Ninjacrab.PersistentWindows.Solution/Common/WinApiBridge/WindowPlacement.cs
2023-03-03 11:59:41 -08:00

54 lines
1.8 KiB
C#

using System.Runtime.InteropServices;
namespace PersistentWindows.Common.WinApiBridge
{
//[StructLayout(LayoutKind.Sequential)]
public struct WindowPlacement
{
/// <summary>
/// The length of the structure, in bytes. Before calling the GetWindowPlacement or SetWindowPlacement functions, set this member to sizeof(WINDOWPLACEMENT).
/// <para>
/// GetWindowPlacement and SetWindowPlacement fail if this member is not set correctly.
/// </para>
/// </summary>
public int Length { get; set; }
/// <summary>
/// Specifies flags that control the position of the minimized window and the method by which the window is restored.
/// </summary>
public int Flags { get; set; }
/// <summary>
/// The current show state of the window.
/// </summary>
public ShowWindowCommands ShowCmd { get; set; }
/// <summary>
/// The coordinates of the window's upper-left corner when the window is minimized.
/// </summary>
public POINT MinPosition { get; set; }
/// <summary>
/// The coordinates of the window's upper-left corner when the window is maximized.
/// </summary>
public POINT MaxPosition { get; set; }
/// <summary>
/// The window's coordinates when the window is in the restored position.
/// </summary>
public RECT NormalPosition { get; set; }
/// <summary>
/// Gets the default (empty) value.
/// </summary>
public static WindowPlacement Default
{
get
{
WindowPlacement result = new WindowPlacement();
result.Length = Marshal.SizeOf(result);
return result;
}
}
}
}