private void WmGetMinMaxInfo (ref Message m)
{
MINMAXINFO mmi;
if (m.LParam != IntPtr.Zero) {
mmi = (MINMAXINFO)Marshal.PtrToStructure (m.LParam, typeof (MINMAXINFO));
default_maximized_bounds = new Rectangle (mmi.ptMaxPosition.x, mmi.ptMaxPosition.y, mmi.ptMaxSize.x, mmi.ptMaxSize.y);
if (maximized_bounds != Rectangle.Empty) {
mmi.ptMaxPosition.x = maximized_bounds.Left;
mmi.ptMaxPosition.y = maximized_bounds.Top;
mmi.ptMaxSize.x = maximized_bounds.Width;
mmi.ptMaxSize.y = maximized_bounds.Height;
}
if (minimum_size != Size.Empty) {
mmi.ptMinTrackSize.x = minimum_size.Width;
mmi.ptMinTrackSize.y = minimum_size.Height;
}
if (maximum_size != Size.Empty) {
mmi.ptMaxTrackSize.x = maximum_size.Width;
mmi.ptMaxTrackSize.y = maximum_size.Height;
}
Marshal.StructureToPtr (mmi, m.LParam, false);
}
}
#endregion