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