EnumDisplayDevices() private method

private EnumDisplayDevices ( [ lpDevice, [ iDevNum, [ lpDisplayDevice, [ dwFlags ) : int
lpDevice [
iDevNum [
lpDisplayDevice [
dwFlags [
return int
コード例 #1
0
    public static void Win32_SetRefreshRate(uint monitorIndex, uint refreshRate)
    {
      Win32.DISPLAY_DEVICE displayDevice = new Win32.DISPLAY_DEVICE();
      int result = Win32.EnumDisplayDevices(null, monitorIndex, displayDevice, 0);

      if (result != 0)
      {
        Win32.DEVMODE_Display devMode = new Win32.DEVMODE_Display();
        devMode.dmFields = Win32.DEVMODE_Fields.DM_DISPLAYFREQUENCY;
        devMode.dmDisplayFrequency = refreshRate;
        Win32.ChangeDisplaySettings_Result r = Win32.ChangeDisplaySettingsEx(displayDevice.DeviceName, devMode,
                                                                             IntPtr.Zero,
                                                                             Win32.ChangeDisplaySettings_Flags.None,
                                                                             IntPtr.Zero);
        Log.Info("CycleRefreshRate: result {0} for refresh rate change {1}Hz", r, refreshRate);
        FixDwm();
      }
      else
      {
        Log.Info("CycleRefreshRate: unable to change refresh rate {0}Hz for monitor {1}", refreshRate, monitorIndex);
      }
    }