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