|
|
|
@ -850,6 +850,10 @@ namespace Avalonia.Win32.Interop |
|
|
|
|
|
|
|
[DllImport("user32.dll")] |
|
|
|
public static extern IntPtr MonitorFromWindow(IntPtr hwnd, MONITOR dwFlags); |
|
|
|
|
|
|
|
[DllImport("user32", EntryPoint = "GetMonitorInfoW", ExactSpelling = true, CharSet = CharSet.Unicode)] |
|
|
|
[return: MarshalAs(UnmanagedType.Bool)] |
|
|
|
public static extern bool GetMonitorInfo([In] IntPtr hMonitor, [Out] MONITORINFO lpmi); |
|
|
|
|
|
|
|
[return: MarshalAs(UnmanagedType.Bool)] |
|
|
|
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] |
|
|
|
@ -862,6 +866,23 @@ namespace Avalonia.Win32.Interop |
|
|
|
MONITOR_DEFAULTTONEAREST = 0x00000002, |
|
|
|
} |
|
|
|
|
|
|
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] |
|
|
|
internal class MONITORINFO |
|
|
|
{ |
|
|
|
public int cbSize = Marshal.SizeOf(typeof(MONITORINFO)); |
|
|
|
public RECT rcMonitor = new RECT(); |
|
|
|
public RECT rcWork = new RECT(); |
|
|
|
public int dwFlags = 0; |
|
|
|
|
|
|
|
public enum MonitorOptions : uint |
|
|
|
{ |
|
|
|
MONITOR_DEFAULTTONULL = 0x00000000, |
|
|
|
MONITOR_DEFAULTTOPRIMARY = 0x00000001, |
|
|
|
MONITOR_DEFAULTTONEAREST = 0x00000002 |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public enum PROCESS_DPI_AWARENESS |
|
|
|
{ |
|
|
|
PROCESS_DPI_UNAWARE = 0, |
|
|
|
|