winapi_ui_automation/um/
highlevelmonitorconfigurationapi.rs

1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
6use shared::minwindef::{DWORD, LPDWORD};
7use um::physicalmonitorenumerationapi::_BOOL;
8use um::winnt::HANDLE;
9pub const MC_CAPS_NONE: DWORD = 0x00000000;
10pub const MC_CAPS_MONITOR_TECHNOLOGY_TYPE: DWORD = 0x00000001;
11pub const MC_CAPS_BRIGHTNESS: DWORD = 0x00000002;
12pub const MC_CAPS_CONTRAST: DWORD = 0x00000004;
13pub const MC_CAPS_COLOR_TEMPERATURE: DWORD = 0x00000008;
14pub const MC_CAPS_RED_GREEN_BLUE_GAIN: DWORD = 0x00000010;
15pub const MC_CAPS_RED_GREEN_BLUE_DRIVE: DWORD = 0x00000020;
16pub const MC_CAPS_DEGAUSS: DWORD = 0x00000040;
17pub const MC_CAPS_DISPLAY_AREA_POSITION: DWORD = 0x00000080;
18pub const MC_CAPS_DISPLAY_AREA_SIZE: DWORD = 0x00000100;
19pub const MC_CAPS_RESTORE_FACTORY_DEFAULTS: DWORD = 0x00000400;
20pub const MC_CAPS_RESTORE_FACTORY_COLOR_DEFAULTS: DWORD = 0x00000800;
21pub const MC_RESTORE_FACTORY_DEFAULTS_ENABLES_MONITOR_SETTINGS: DWORD = 0x00001000;
22pub const MC_SUPPORTED_COLOR_TEMPERATURE_NONE: DWORD = 0x00000000;
23pub const MC_SUPPORTED_COLOR_TEMPERATURE_4000K: DWORD = 0x00000001;
24pub const MC_SUPPORTED_COLOR_TEMPERATURE_5000K: DWORD = 0x00000002;
25pub const MC_SUPPORTED_COLOR_TEMPERATURE_6500K: DWORD = 0x00000004;
26pub const MC_SUPPORTED_COLOR_TEMPERATURE_7500K: DWORD = 0x00000008;
27pub const MC_SUPPORTED_COLOR_TEMPERATURE_8200K: DWORD = 0x00000010;
28pub const MC_SUPPORTED_COLOR_TEMPERATURE_9300K: DWORD = 0x00000020;
29pub const MC_SUPPORTED_COLOR_TEMPERATURE_10000K: DWORD = 0x00000040;
30pub const MC_SUPPORTED_COLOR_TEMPERATURE_11500K: DWORD = 0x00000080;
31ENUM!{enum MC_DISPLAY_TECHNOLOGY_TYPE {
32    MC_SHADOW_MASK_CATHODE_RAY_TUBE,
33    MC_APERTURE_GRILL_CATHODE_RAY_TUBE,
34    MC_THIN_FILM_TRANSISTOR,
35    MC_LIQUID_CRYSTAL_ON_SILICON,
36    MC_PLASMA,
37    MC_ORGANIC_LIGHT_EMITTING_DIODE,
38    MC_ELECTROLUMINESCENT,
39    MC_MICROELECTROMECHANICAL,
40    MC_FIELD_EMISSION_DEVICE,
41}}
42pub type LPMC_DISPLAY_TECHNOLOGY_TYPE = *mut MC_DISPLAY_TECHNOLOGY_TYPE;
43ENUM!{enum MC_DRIVE_TYPE {
44    MC_RED_DRIVE,
45    MC_GREEN_DRIVE,
46    MC_BLUE_DRIVE,
47}}
48ENUM!{enum MC_GAIN_TYPE {
49    MC_RED_GAIN,
50    MC_GREEN_GAIN,
51    MC_BLUE_GAIN,
52}}
53ENUM!{enum MC_POSITION_TYPE {
54    MC_HORIZONTAL_POSITION,
55    MC_VERTICAL_POSITION,
56}}
57ENUM!{enum MC_SIZE_TYPE {
58    MC_WIDTH,
59    MC_HEIGHT,
60}}
61ENUM!{enum MC_COLOR_TEMPERATURE {
62    MC_COLOR_TEMPERATURE_UNKNOWN,
63    MC_COLOR_TEMPERATURE_4000K,
64    MC_COLOR_TEMPERATURE_5000K,
65    MC_COLOR_TEMPERATURE_6500K,
66    MC_COLOR_TEMPERATURE_7500K,
67    MC_COLOR_TEMPERATURE_8200K,
68    MC_COLOR_TEMPERATURE_9300K,
69    MC_COLOR_TEMPERATURE_10000K,
70    MC_COLOR_TEMPERATURE_11500K,
71}}
72pub type LPMC_COLOR_TEMPERATURE = *mut MC_COLOR_TEMPERATURE;
73extern "system" {
74    pub fn GetMonitorCapabilities(
75        hMonitor: HANDLE,
76        pdwMonitorCapabilities: LPDWORD,
77        pdwSupportedColorTemperature: LPDWORD,
78    ) -> _BOOL;
79    pub fn SaveCurrentMonitorSettings(
80        hMonitor: HANDLE,
81    ) -> _BOOL;
82    pub fn GetMonitorTechnologyType(
83        hMonitor: HANDLE,
84        pdtyDisplayTechnologyType: LPMC_DISPLAY_TECHNOLOGY_TYPE,
85    ) -> _BOOL;
86    pub fn GetMonitorBrightness(
87        hMonitor: HANDLE,
88        pdwMinimumBrightness: LPDWORD,
89        pdwCurrentBrightness: LPDWORD,
90        pdwMaximumBrightness: LPDWORD,
91    ) -> _BOOL;
92    pub fn GetMonitorContrast(
93        hMonitor: HANDLE,
94        pdwMinimumContrast: LPDWORD,
95        pdwCurrentContrast: LPDWORD,
96        pdwMaximumContrast: LPDWORD,
97    ) -> _BOOL;
98    pub fn GetMonitorColorTemperature(
99        hMonitor: HANDLE,
100        pctCurrentColorTemperature: LPMC_COLOR_TEMPERATURE,
101    ) -> _BOOL;
102    pub fn GetMonitorRedGreenOrBlueDrive(
103        hMonitor: HANDLE,
104        dtDriveType: MC_DRIVE_TYPE,
105        pdwMinimumDrive: LPDWORD,
106        pdwCurrentDrive: LPDWORD,
107        pdwMaximumDrive: LPDWORD,
108    ) -> _BOOL;
109    pub fn GetMonitorRedGreenOrBlueGain(
110        hMonitor: HANDLE,
111        gtGainType: MC_GAIN_TYPE,
112        pdwMinimumGain: LPDWORD,
113        pdwCurrentGain: LPDWORD,
114        pdwMaximumGain: LPDWORD,
115    ) -> _BOOL;
116    pub fn SetMonitorBrightness(
117        hMonitor: HANDLE,
118        dwNewBrightness: DWORD,
119    ) -> _BOOL;
120    pub fn SetMonitorContrast(
121        hMonitor: HANDLE,
122        dwNewContrast: DWORD,
123    ) -> _BOOL;
124    pub fn SetMonitorColorTemperature(
125        hMonitor: HANDLE,
126        ctCurrentColorTemperature: MC_COLOR_TEMPERATURE,
127    ) -> _BOOL;
128    pub fn SetMonitorRedGreenOrBlueDrive(
129        hMonitor: HANDLE,
130        dtDriveType: MC_DRIVE_TYPE,
131        dwNewDrive: DWORD,
132    ) -> _BOOL;
133    pub fn SetMonitorRedGreenOrBlueGain(
134        hMonitor: HANDLE,
135        gtGainType: MC_GAIN_TYPE,
136        dwNewGain: DWORD,
137    ) -> _BOOL;
138    pub fn DegaussMonitor(
139        hMonitor: HANDLE,
140    ) -> _BOOL;
141    pub fn GetMonitorDisplayAreaSize(
142        hMonitor: HANDLE,
143        stSizeType: MC_SIZE_TYPE,
144        pdwMinimumWidthOrHeight: LPDWORD,
145        pdwCurrentWidthOrHeight: LPDWORD,
146        pdwMaximumWidthOrHeight: LPDWORD,
147    ) -> _BOOL;
148    pub fn GetMonitorDisplayAreaPosition(
149        hMonitor: HANDLE,
150        ptPositionType: MC_POSITION_TYPE,
151        pdwMinimumPosition: LPDWORD,
152        pdwCurrentPosition: LPDWORD,
153        pdwMaximumPosition: LPDWORD,
154    ) -> _BOOL;
155    pub fn SetMonitorDisplayAreaSize(
156        hMonitor: HANDLE,
157        stSizeType: MC_SIZE_TYPE,
158        dwNewDisplayAreaWidthOrHeight: DWORD,
159    ) -> _BOOL;
160    pub fn SetMonitorDisplayAreaPosition(
161        hMonitor: HANDLE,
162        ptPositionType: MC_POSITION_TYPE,
163        dwNewPosition: DWORD,
164    ) -> _BOOL;
165    pub fn RestoreMonitorFactoryColorDefaults(
166        hMonitor: HANDLE,
167    ) -> _BOOL;
168    pub fn RestoreMonitorFactoryDefaults(
169        hMonitor: HANDLE,
170    ) -> _BOOL;
171}