// Licensed under the Apache License, Version 2.0 // or the MIT license // , at your option. // All files in the project carrying such notice may not be copied, modified, or distributed // except according to those terms. use shared::minwindef::{DWORD, LPDWORD}; use um::physicalmonitorenumerationapi::_BOOL; use um::winnt::HANDLE; pub const MC_CAPS_NONE: DWORD = 0x00000000; pub const MC_CAPS_MONITOR_TECHNOLOGY_TYPE: DWORD = 0x00000001; pub const MC_CAPS_BRIGHTNESS: DWORD = 0x00000002; pub const MC_CAPS_CONTRAST: DWORD = 0x00000004; pub const MC_CAPS_COLOR_TEMPERATURE: DWORD = 0x00000008; pub const MC_CAPS_RED_GREEN_BLUE_GAIN: DWORD = 0x00000010; pub const MC_CAPS_RED_GREEN_BLUE_DRIVE: DWORD = 0x00000020; pub const MC_CAPS_DEGAUSS: DWORD = 0x00000040; pub const MC_CAPS_DISPLAY_AREA_POSITION: DWORD = 0x00000080; pub const MC_CAPS_DISPLAY_AREA_SIZE: DWORD = 0x00000100; pub const MC_CAPS_RESTORE_FACTORY_DEFAULTS: DWORD = 0x00000400; pub const MC_CAPS_RESTORE_FACTORY_COLOR_DEFAULTS: DWORD = 0x00000800; pub const MC_RESTORE_FACTORY_DEFAULTS_ENABLES_MONITOR_SETTINGS: DWORD = 0x00001000; pub const MC_SUPPORTED_COLOR_TEMPERATURE_NONE: DWORD = 0x00000000; pub const MC_SUPPORTED_COLOR_TEMPERATURE_4000K: DWORD = 0x00000001; pub const MC_SUPPORTED_COLOR_TEMPERATURE_5000K: DWORD = 0x00000002; pub const MC_SUPPORTED_COLOR_TEMPERATURE_6500K: DWORD = 0x00000004; pub const MC_SUPPORTED_COLOR_TEMPERATURE_7500K: DWORD = 0x00000008; pub const MC_SUPPORTED_COLOR_TEMPERATURE_8200K: DWORD = 0x00000010; pub const MC_SUPPORTED_COLOR_TEMPERATURE_9300K: DWORD = 0x00000020; pub const MC_SUPPORTED_COLOR_TEMPERATURE_10000K: DWORD = 0x00000040; pub const MC_SUPPORTED_COLOR_TEMPERATURE_11500K: DWORD = 0x00000080; ENUM!{enum MC_DISPLAY_TECHNOLOGY_TYPE { MC_SHADOW_MASK_CATHODE_RAY_TUBE, MC_APERTURE_GRILL_CATHODE_RAY_TUBE, MC_THIN_FILM_TRANSISTOR, MC_LIQUID_CRYSTAL_ON_SILICON, MC_PLASMA, MC_ORGANIC_LIGHT_EMITTING_DIODE, MC_ELECTROLUMINESCENT, MC_MICROELECTROMECHANICAL, MC_FIELD_EMISSION_DEVICE, }} pub type LPMC_DISPLAY_TECHNOLOGY_TYPE = *mut MC_DISPLAY_TECHNOLOGY_TYPE; ENUM!{enum MC_DRIVE_TYPE { MC_RED_DRIVE, MC_GREEN_DRIVE, MC_BLUE_DRIVE, }} ENUM!{enum MC_GAIN_TYPE { MC_RED_GAIN, MC_GREEN_GAIN, MC_BLUE_GAIN, }} ENUM!{enum MC_POSITION_TYPE { MC_HORIZONTAL_POSITION, MC_VERTICAL_POSITION, }} ENUM!{enum MC_SIZE_TYPE { MC_WIDTH, MC_HEIGHT, }} ENUM!{enum MC_COLOR_TEMPERATURE { MC_COLOR_TEMPERATURE_UNKNOWN, MC_COLOR_TEMPERATURE_4000K, MC_COLOR_TEMPERATURE_5000K, MC_COLOR_TEMPERATURE_6500K, MC_COLOR_TEMPERATURE_7500K, MC_COLOR_TEMPERATURE_8200K, MC_COLOR_TEMPERATURE_9300K, MC_COLOR_TEMPERATURE_10000K, MC_COLOR_TEMPERATURE_11500K, }} pub type LPMC_COLOR_TEMPERATURE = *mut MC_COLOR_TEMPERATURE; extern "system" { pub fn GetMonitorCapabilities( hMonitor: HANDLE, pdwMonitorCapabilities: LPDWORD, pdwSupportedColorTemperature: LPDWORD, ) -> _BOOL; pub fn SaveCurrentMonitorSettings( hMonitor: HANDLE, ) -> _BOOL; pub fn GetMonitorTechnologyType( hMonitor: HANDLE, pdtyDisplayTechnologyType: LPMC_DISPLAY_TECHNOLOGY_TYPE, ) -> _BOOL; pub fn GetMonitorBrightness( hMonitor: HANDLE, pdwMinimumBrightness: LPDWORD, pdwCurrentBrightness: LPDWORD, pdwMaximumBrightness: LPDWORD, ) -> _BOOL; pub fn GetMonitorContrast( hMonitor: HANDLE, pdwMinimumContrast: LPDWORD, pdwCurrentContrast: LPDWORD, pdwMaximumContrast: LPDWORD, ) -> _BOOL; pub fn GetMonitorColorTemperature( hMonitor: HANDLE, pctCurrentColorTemperature: LPMC_COLOR_TEMPERATURE, ) -> _BOOL; pub fn GetMonitorRedGreenOrBlueDrive( hMonitor: HANDLE, dtDriveType: MC_DRIVE_TYPE, pdwMinimumDrive: LPDWORD, pdwCurrentDrive: LPDWORD, pdwMaximumDrive: LPDWORD, ) -> _BOOL; pub fn GetMonitorRedGreenOrBlueGain( hMonitor: HANDLE, gtGainType: MC_GAIN_TYPE, pdwMinimumGain: LPDWORD, pdwCurrentGain: LPDWORD, pdwMaximumGain: LPDWORD, ) -> _BOOL; pub fn SetMonitorBrightness( hMonitor: HANDLE, dwNewBrightness: DWORD, ) -> _BOOL; pub fn SetMonitorContrast( hMonitor: HANDLE, dwNewContrast: DWORD, ) -> _BOOL; pub fn SetMonitorColorTemperature( hMonitor: HANDLE, ctCurrentColorTemperature: MC_COLOR_TEMPERATURE, ) -> _BOOL; pub fn SetMonitorRedGreenOrBlueDrive( hMonitor: HANDLE, dtDriveType: MC_DRIVE_TYPE, dwNewDrive: DWORD, ) -> _BOOL; pub fn SetMonitorRedGreenOrBlueGain( hMonitor: HANDLE, gtGainType: MC_GAIN_TYPE, dwNewGain: DWORD, ) -> _BOOL; pub fn DegaussMonitor( hMonitor: HANDLE, ) -> _BOOL; pub fn GetMonitorDisplayAreaSize( hMonitor: HANDLE, stSizeType: MC_SIZE_TYPE, pdwMinimumWidthOrHeight: LPDWORD, pdwCurrentWidthOrHeight: LPDWORD, pdwMaximumWidthOrHeight: LPDWORD, ) -> _BOOL; pub fn GetMonitorDisplayAreaPosition( hMonitor: HANDLE, ptPositionType: MC_POSITION_TYPE, pdwMinimumPosition: LPDWORD, pdwCurrentPosition: LPDWORD, pdwMaximumPosition: LPDWORD, ) -> _BOOL; pub fn SetMonitorDisplayAreaSize( hMonitor: HANDLE, stSizeType: MC_SIZE_TYPE, dwNewDisplayAreaWidthOrHeight: DWORD, ) -> _BOOL; pub fn SetMonitorDisplayAreaPosition( hMonitor: HANDLE, ptPositionType: MC_POSITION_TYPE, dwNewPosition: DWORD, ) -> _BOOL; pub fn RestoreMonitorFactoryColorDefaults( hMonitor: HANDLE, ) -> _BOOL; pub fn RestoreMonitorFactoryDefaults( hMonitor: HANDLE, ) -> _BOOL; }