static void InitScreens() { if (multiMonitorSupport) { MonitorEnumCallback closure = new MonitorEnumCallback(); WinMethods.EnumMonitorsDelegate proc = new WinMethods.EnumMonitorsDelegate(closure.Callback); WinMethods.EnumDisplayMonitors(NullHandleRef, IntPtr.Zero, proc, IntPtr.Zero); if (closure.ScreenList.Count > 0) { Screen[] temp = new Screen[closure.ScreenList.Count]; closure.ScreenList.CopyTo(temp, 0); screens = temp; } else { screens = new Screen[] { new Screen((IntPtr)PRIMARY_MONITOR) }; } } else { screens = new Screen[] { new Screen((IntPtr)PRIMARY_MONITOR, IntPtr.Zero) }; } }