Exemple #1
0
        /// <summary>
        /// A private helper method used to retrieve current display settings as a DEVMODE object.
        /// </summary>
        /// <remarks>
        /// Internally calls EnumDisplaySettings() native function with the value ENUM_CURRENT_SETTINGS (-1) to retrieve the current settings.
        /// </remarks>
        private static SafeNativeMethods.DEVMODE GetDeviceMode(DisplayDevice dev, bool def)
        {
            SafeNativeMethods.DEVMODE mode = new SafeNativeMethods.DEVMODE();

            mode.Initialize();

            if (def)
            {
                if (SafeNativeMethods.EnumDisplaySettings(null, SafeNativeMethods.ENUM_CURRENT_SETTINGS, ref mode))
                    return mode;
                else
                    //throw new InvalidOperationException(GetLastError());
                    throw new InvalidOperationException("Hello");
            }
            else
            {

                //if (SafeNativeMethods.EnumDisplaySettings(dev.DeviceName, 0, ref mode))
                  if(SafeNativeMethods.EnumDisplaySettingsEx(dev.DeviceName, -2, ref mode, (uint)CDSFlags.CDS_RESET) )
                    return mode;
                else
                    //throw new InvalidOperationException(GetLastError());
                    throw new InvalidOperationException("Hello1");
            }
        }
Exemple #2
0
        /// <summary>
        /// Enumerates all supported display modes.
        /// </summary>
        /// <remarks>
        /// Internally calls EnumDisplaySettings() native function.
        /// Because of the nature of EnumDisplaySettings() it calls it many times and uses the <code>yield return</code> statement to simulate an enumerator.
        /// </remarks>
        public static IEnumerator<DisplaySettings> GetModesEnumerator(string devName)
        {
            SafeNativeMethods.DEVMODE mode = new SafeNativeMethods.DEVMODE();

            mode.Initialize();
               // mode.dmDeviceName = devName;

            int idx = 0;

            while (SafeNativeMethods.EnumDisplaySettingsEx(devName, idx, ref mode, 0))
            {

                yield return CreateDisplaySettingsObject(idx++, mode);

            }
        }