static ScreenRotator() { DISPLAY_DEVICE display = new DISPLAY_DEVICE(); display.cb = Marshal.SizeOf(display); for (uint id = 0; NativeMethods.EnumDisplayDevices(null, id, ref display, 0); id++) { if (display.StateFlags.HasFlag(DisplayDeviceStateFlags.AttachedToDesktop)) { if (id == 0) { mainDevice = getDeviceByName(display.DeviceName); } else { remoteDevice = getDeviceByName(display.DeviceName); remoteDisplayName = display.DeviceName; break; } } } }
public static extern int ChangeDisplaySettings(ref DEVMODE lpDevMode, int dwFlags);
internal static extern DISP_CHANGE ChangeDisplaySettingsEx(string lpszDeviceName, ref DEVMODE lpDevMode, IntPtr hwnd, DisplaySettingsFlags dwflags, IntPtr lParam);
public static extern int EnumDisplaySettings(string lpszDeviceName, int iModeNum, ref DEVMODE lpDevMode);