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::{BYTE, DWORD, LPDWORD};
7 use um::physicalmonitorenumerationapi::_BOOL;
8 use um::winnt::{HANDLE, LPSTR};
9 STRUCT!{#[repr(packed)] struct MC_TIMING_REPORT {
10     dwHorizontalFrequencyInHZ: DWORD,
11     dwVerticalFrequencyInHZ: DWORD,
12     bTimingStatusByte: BYTE,
13 }}
14 pub type LPMC_TIMING_REPORT = *mut MC_TIMING_REPORT;
15 ENUM!{enum MC_VCP_CODE_TYPE {
16     MC_MOMENTARY,
17     MC_SET_PARAMETER,
18 }}
19 pub type LPMC_VCP_CODE_TYPE = *mut MC_VCP_CODE_TYPE;
20 extern "system" {
GetVCPFeatureAndVCPFeatureReply( hMonitor: HANDLE, bVCPCode: BYTE, pvct: LPMC_VCP_CODE_TYPE, pdwCurrentValue: LPDWORD, pdwMaximumValue: LPDWORD, ) -> _BOOL21     pub fn GetVCPFeatureAndVCPFeatureReply(
22         hMonitor: HANDLE,
23         bVCPCode: BYTE,
24         pvct: LPMC_VCP_CODE_TYPE,
25         pdwCurrentValue: LPDWORD,
26         pdwMaximumValue: LPDWORD,
27     ) -> _BOOL;
SetVCPFeature( hMonitor: HANDLE, bVCPCode: BYTE, dwNewValue: DWORD, ) -> _BOOL28     pub fn SetVCPFeature(
29         hMonitor: HANDLE,
30         bVCPCode: BYTE,
31         dwNewValue: DWORD,
32     ) -> _BOOL;
SaveCurrentSettings( hMonitor: HANDLE, ) -> _BOOL33     pub fn SaveCurrentSettings(
34         hMonitor: HANDLE,
35     ) -> _BOOL;
GetCapabilitiesStringLength( hMonitor: HANDLE, pdwCapabilitiesStringLengthInCharacters: LPDWORD, ) -> _BOOL36     pub fn GetCapabilitiesStringLength(
37         hMonitor: HANDLE,
38         pdwCapabilitiesStringLengthInCharacters: LPDWORD,
39     ) -> _BOOL;
CapabilitiesRequestAndCapabilitiesReply( hMonitor: HANDLE, pszASCIICapabilitiesString: LPSTR, dwCapabilitiesStringLengthInCharacters: DWORD, ) -> _BOOL40     pub fn CapabilitiesRequestAndCapabilitiesReply(
41         hMonitor: HANDLE,
42         pszASCIICapabilitiesString: LPSTR,
43         dwCapabilitiesStringLengthInCharacters: DWORD,
44     ) -> _BOOL;
GetTimingReport( hMonitor: HANDLE, pmtrMonitorTimingReport: LPMC_TIMING_REPORT, ) -> _BOOL45     pub fn GetTimingReport(
46         hMonitor: HANDLE,
47         pmtrMonitorTimingReport: LPMC_TIMING_REPORT,
48     ) -> _BOOL;
49 }
50