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.
6 use shared::minwindef::{DWORD, LPDWORD};
7 use um::physicalmonitorenumerationapi::_BOOL;
8 use um::winnt::HANDLE;
9 pub const MC_CAPS_NONE: DWORD = 0x00000000;
10 pub const MC_CAPS_MONITOR_TECHNOLOGY_TYPE: DWORD = 0x00000001;
11 pub const MC_CAPS_BRIGHTNESS: DWORD = 0x00000002;
12 pub const MC_CAPS_CONTRAST: DWORD = 0x00000004;
13 pub const MC_CAPS_COLOR_TEMPERATURE: DWORD = 0x00000008;
14 pub const MC_CAPS_RED_GREEN_BLUE_GAIN: DWORD = 0x00000010;
15 pub const MC_CAPS_RED_GREEN_BLUE_DRIVE: DWORD = 0x00000020;
16 pub const MC_CAPS_DEGAUSS: DWORD = 0x00000040;
17 pub const MC_CAPS_DISPLAY_AREA_POSITION: DWORD = 0x00000080;
18 pub const MC_CAPS_DISPLAY_AREA_SIZE: DWORD = 0x00000100;
19 pub const MC_CAPS_RESTORE_FACTORY_DEFAULTS: DWORD = 0x00000400;
20 pub const MC_CAPS_RESTORE_FACTORY_COLOR_DEFAULTS: DWORD = 0x00000800;
21 pub const MC_RESTORE_FACTORY_DEFAULTS_ENABLES_MONITOR_SETTINGS: DWORD = 0x00001000;
22 pub const MC_SUPPORTED_COLOR_TEMPERATURE_NONE: DWORD = 0x00000000;
23 pub const MC_SUPPORTED_COLOR_TEMPERATURE_4000K: DWORD = 0x00000001;
24 pub const MC_SUPPORTED_COLOR_TEMPERATURE_5000K: DWORD = 0x00000002;
25 pub const MC_SUPPORTED_COLOR_TEMPERATURE_6500K: DWORD = 0x00000004;
26 pub const MC_SUPPORTED_COLOR_TEMPERATURE_7500K: DWORD = 0x00000008;
27 pub const MC_SUPPORTED_COLOR_TEMPERATURE_8200K: DWORD = 0x00000010;
28 pub const MC_SUPPORTED_COLOR_TEMPERATURE_9300K: DWORD = 0x00000020;
29 pub const MC_SUPPORTED_COLOR_TEMPERATURE_10000K: DWORD = 0x00000040;
30 pub const MC_SUPPORTED_COLOR_TEMPERATURE_11500K: DWORD = 0x00000080;
31 ENUM!{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 }}
42 pub type LPMC_DISPLAY_TECHNOLOGY_TYPE = *mut MC_DISPLAY_TECHNOLOGY_TYPE;
43 ENUM!{enum MC_DRIVE_TYPE {
44 MC_RED_DRIVE,
45 MC_GREEN_DRIVE,
46 MC_BLUE_DRIVE,
47 }}
48 ENUM!{enum MC_GAIN_TYPE {
49 MC_RED_GAIN,
50 MC_GREEN_GAIN,
51 MC_BLUE_GAIN,
52 }}
53 ENUM!{enum MC_POSITION_TYPE {
54 MC_HORIZONTAL_POSITION,
55 MC_VERTICAL_POSITION,
56 }}
57 ENUM!{enum MC_SIZE_TYPE {
58 MC_WIDTH,
59 MC_HEIGHT,
60 }}
61 ENUM!{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,
Set_signal_information(const Set_signal_information & set)67 MC_COLOR_TEMPERATURE_8200K,
68 MC_COLOR_TEMPERATURE_9300K,
69 MC_COLOR_TEMPERATURE_10000K,
70 MC_COLOR_TEMPERATURE_11500K,
71 }}
72 pub type LPMC_COLOR_TEMPERATURE = *mut MC_COLOR_TEMPERATURE;
clear()73 extern "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 }
172