public WindowsMonitor(DisplayDevice device) { Name = device.DeviceName; _modes = new List<IMonitorMode>(); var mode = new DeviceMode(); var num = -1; while (User32.EnumDisplaySettings(device.DeviceName, num++, ref mode) !=0) { _modes.Add(new MonitorMode( mode.PelsWidth, mode.PelsHeight,mode.BitsPerPel,mode.DisplayFrequency)); } }
public WindowsPlatformFactory() { _monitors = new List<IMonitor>(); var device = new DisplayDevice {cb = Marshal.SizeOf(typeof (DisplayDevice))}; var num = 0; while (User32.EnumDisplayDevices(null, num++, ref device, 0) != 0) { if(device.StateFlags.HasFlag(DisplayDeviceStateFlags.AttachedToDesktop)) { var monitor = new WindowsMonitor(device); _monitors.Add(monitor); if(device.StateFlags.HasFlag(DisplayDeviceStateFlags.PrimaryDevice)) { DefaultMonitor = monitor; } } } }
public static extern int EnumDisplayDevices(string lpDevice, int iDevNum, ref DisplayDevice lpDisplayDevice, int dwFlags);