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;
             }
         }
     }
 }
示例#3
0
 public static extern int EnumDisplayDevices(string lpDevice, int iDevNum, ref DisplayDevice lpDisplayDevice, int dwFlags);