mirror of https://github.com/UMSKT/xpmgr.git
209 lines
7.2 KiB
C
209 lines
7.2 KiB
C
#ifndef HighLevelMonitorConfigurationAPI_h
|
|
#define HighLevelMonitorConfigurationAPI_h
|
|
|
|
#include <windows.h>
|
|
#include <PhysicalMonitorEnumerationAPI.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif // __cplusplus
|
|
|
|
#pragma pack( push, 1 )
|
|
|
|
/******************************************************************************
|
|
Flags
|
|
******************************************************************************/
|
|
#define MC_CAPS_NONE 0x00000000
|
|
#define MC_CAPS_MONITOR_TECHNOLOGY_TYPE 0x00000001
|
|
#define MC_CAPS_BRIGHTNESS 0x00000002
|
|
#define MC_CAPS_CONTRAST 0x00000004
|
|
#define MC_CAPS_COLOR_TEMPERATURE 0x00000008
|
|
#define MC_CAPS_RED_GREEN_BLUE_GAIN 0x00000010
|
|
#define MC_CAPS_RED_GREEN_BLUE_DRIVE 0x00000020
|
|
#define MC_CAPS_DEGAUSS 0x00000040
|
|
#define MC_CAPS_DISPLAY_AREA_POSITION 0x00000080
|
|
#define MC_CAPS_DISPLAY_AREA_SIZE 0x00000100
|
|
#define MC_CAPS_RESTORE_FACTORY_DEFAULTS 0x00000400
|
|
#define MC_CAPS_RESTORE_FACTORY_COLOR_DEFAULTS 0x00000800
|
|
#define MC_RESTORE_FACTORY_DEFAULTS_ENABLES_MONITOR_SETTINGS 0x00001000
|
|
|
|
#define MC_SUPPORTED_COLOR_TEMPERATURE_NONE 0x00000000
|
|
#define MC_SUPPORTED_COLOR_TEMPERATURE_4000K 0x00000001
|
|
#define MC_SUPPORTED_COLOR_TEMPERATURE_5000K 0x00000002
|
|
#define MC_SUPPORTED_COLOR_TEMPERATURE_6500K 0x00000004
|
|
#define MC_SUPPORTED_COLOR_TEMPERATURE_7500K 0x00000008
|
|
#define MC_SUPPORTED_COLOR_TEMPERATURE_8200K 0x00000010
|
|
#define MC_SUPPORTED_COLOR_TEMPERATURE_9300K 0x00000020
|
|
#define MC_SUPPORTED_COLOR_TEMPERATURE_10000K 0x00000040
|
|
#define MC_SUPPORTED_COLOR_TEMPERATURE_11500K 0x00000080
|
|
|
|
/******************************************************************************
|
|
Enumerations
|
|
******************************************************************************/
|
|
typedef enum _MC_DISPLAY_TECHNOLOGY_TYPE
|
|
{
|
|
MC_SHADOW_MASK_CATHODE_RAY_TUBE,
|
|
MC_APERTURE_GRILL_CATHODE_RAY_TUBE,
|
|
MC_THIN_FILM_TRANSISTOR,
|
|
MC_LIQUID_CRYSTAL_ON_SILICON,
|
|
MC_PLASMA,
|
|
MC_ORGANIC_LIGHT_EMITTING_DIODE,
|
|
MC_ELECTROLUMINESCENT,
|
|
MC_MICROELECTROMECHANICAL,
|
|
MC_FIELD_EMISSION_DEVICE
|
|
|
|
} MC_DISPLAY_TECHNOLOGY_TYPE, *LPMC_DISPLAY_TECHNOLOGY_TYPE;
|
|
|
|
typedef enum _MC_DRIVE_TYPE
|
|
{
|
|
MC_RED_DRIVE,
|
|
MC_GREEN_DRIVE,
|
|
MC_BLUE_DRIVE
|
|
|
|
} MC_DRIVE_TYPE;
|
|
|
|
typedef enum _MC_GAIN_TYPE
|
|
{
|
|
MC_RED_GAIN,
|
|
MC_GREEN_GAIN,
|
|
MC_BLUE_GAIN
|
|
|
|
} MC_GAIN_TYPE;
|
|
|
|
typedef enum _MC_POSITION_TYPE
|
|
{
|
|
MC_HORIZONTAL_POSITION,
|
|
MC_VERTICAL_POSITION
|
|
|
|
} MC_POSITION_TYPE;
|
|
|
|
typedef enum _MC_SIZE_TYPE
|
|
{
|
|
MC_WIDTH,
|
|
MC_HEIGHT
|
|
|
|
} MC_SIZE_TYPE;
|
|
|
|
typedef enum _MC_COLOR_TEMPERATURE
|
|
{
|
|
MC_COLOR_TEMPERATURE_UNKNOWN,
|
|
MC_COLOR_TEMPERATURE_4000K,
|
|
MC_COLOR_TEMPERATURE_5000K,
|
|
MC_COLOR_TEMPERATURE_6500K,
|
|
MC_COLOR_TEMPERATURE_7500K,
|
|
MC_COLOR_TEMPERATURE_8200K,
|
|
MC_COLOR_TEMPERATURE_9300K,
|
|
MC_COLOR_TEMPERATURE_10000K,
|
|
MC_COLOR_TEMPERATURE_11500K
|
|
|
|
} MC_COLOR_TEMPERATURE, *LPMC_COLOR_TEMPERATURE;
|
|
|
|
/******************************************************************************
|
|
Monitor capability functions
|
|
******************************************************************************/
|
|
_BOOL WINAPI GetMonitorCapabilities
|
|
(
|
|
HANDLE hMonitor,
|
|
__out LPDWORD pdwMonitorCapabilities,
|
|
__out LPDWORD pdwSupportedColorTemperatures
|
|
);
|
|
|
|
/******************************************************************************
|
|
Monitor setting persistence functions
|
|
******************************************************************************/
|
|
_BOOL WINAPI SaveCurrentMonitorSettings( HANDLE hMonitor );
|
|
|
|
/******************************************************************************
|
|
Monitor meta-data functions
|
|
******************************************************************************/
|
|
_BOOL WINAPI GetMonitorTechnologyType( HANDLE hMonitor, LPMC_DISPLAY_TECHNOLOGY_TYPE pdtyDisplayTechnologyType );
|
|
|
|
/******************************************************************************
|
|
Monitor image calibration functions
|
|
******************************************************************************/
|
|
_BOOL WINAPI GetMonitorBrightness
|
|
(
|
|
HANDLE hMonitor,
|
|
__out LPDWORD pdwMinimumBrightness,
|
|
__out LPDWORD pdwCurrentBrightness,
|
|
__out LPDWORD pdwMaximumBrightness
|
|
);
|
|
_BOOL WINAPI GetMonitorContrast
|
|
(
|
|
HANDLE hMonitor,
|
|
__out LPDWORD pdwMinimumContrast,
|
|
__out LPDWORD pdwCurrentContrast,
|
|
__out LPDWORD pdwMaximumContrast
|
|
);
|
|
_BOOL WINAPI GetMonitorColorTemperature( HANDLE hMonitor, __out LPMC_COLOR_TEMPERATURE pctCurrentColorTemperature );
|
|
_BOOL WINAPI GetMonitorRedGreenOrBlueDrive
|
|
(
|
|
HANDLE hMonitor,
|
|
MC_DRIVE_TYPE dtDriveType,
|
|
__out LPDWORD pdwMinimumDrive,
|
|
__out LPDWORD pdwCurrentDrive,
|
|
__out LPDWORD pdwMaximumDrive
|
|
);
|
|
_BOOL WINAPI GetMonitorRedGreenOrBlueGain
|
|
(
|
|
HANDLE hMonitor,
|
|
MC_GAIN_TYPE gtGainType,
|
|
__out LPDWORD pdwMinimumGain,
|
|
__out LPDWORD pdwCurrentGain,
|
|
__out LPDWORD pdwMaximumGain
|
|
);
|
|
|
|
_BOOL WINAPI SetMonitorBrightness( HANDLE hMonitor, DWORD dwNewBrightness );
|
|
_BOOL WINAPI SetMonitorContrast( HANDLE hMonitor, DWORD dwNewContrast );
|
|
_BOOL WINAPI SetMonitorColorTemperature( HANDLE hMonitor, MC_COLOR_TEMPERATURE ctCurrentColorTemperature );
|
|
_BOOL WINAPI SetMonitorRedGreenOrBlueDrive( HANDLE hMonitor, MC_DRIVE_TYPE dtDriveType, DWORD dwNewDrive );
|
|
_BOOL WINAPI SetMonitorRedGreenOrBlueGain( HANDLE hMonitor, MC_GAIN_TYPE gtGainType, DWORD dwNewGain );
|
|
_BOOL WINAPI DegaussMonitor( HANDLE hMonitor );
|
|
|
|
/******************************************************************************
|
|
Monitor image size and position calibration functions
|
|
******************************************************************************/
|
|
_BOOL WINAPI GetMonitorDisplayAreaSize
|
|
(
|
|
HANDLE hMonitor,
|
|
MC_SIZE_TYPE stSizeType,
|
|
__out LPDWORD pdwMinimumWidthOrHeight,
|
|
__out LPDWORD pdwCurrentWidthOrHeight,
|
|
__out LPDWORD pdwMaximumWidthOrHeight
|
|
);
|
|
_BOOL WINAPI GetMonitorDisplayAreaPosition
|
|
(
|
|
HANDLE hMonitor,
|
|
MC_POSITION_TYPE ptPositionType,
|
|
__out LPDWORD pdwMinimumPosition,
|
|
__out LPDWORD pdwCurrentPosition,
|
|
__out LPDWORD pdwMaximumPosition
|
|
);
|
|
_BOOL WINAPI SetMonitorDisplayAreaSize
|
|
(
|
|
HANDLE hMonitor,
|
|
MC_SIZE_TYPE stSizeType,
|
|
DWORD dwNewDisplayAreaWidthOrHeight
|
|
);
|
|
_BOOL WINAPI SetMonitorDisplayAreaPosition
|
|
(
|
|
HANDLE hMonitor,
|
|
MC_POSITION_TYPE ptPositionType,
|
|
DWORD dwNewPosition
|
|
);
|
|
|
|
/******************************************************************************
|
|
Restore to defaults functions
|
|
******************************************************************************/
|
|
_BOOL WINAPI RestoreMonitorFactoryColorDefaults( HANDLE hMonitor );
|
|
_BOOL WINAPI RestoreMonitorFactoryDefaults( HANDLE hMonitor );
|
|
|
|
#pragma pack( pop )
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif // __cplusplus
|
|
|
|
#endif // HighLevelMonitorConfigurationAPI_h
|
|
|