1use 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}