master
  1/**
  2 * This file is part of the mingw-w64 runtime package.
  3 * No warranty is given; refer to the file DISCLAIMER within this package.
  4 */
  5
  6#include <winapifamily.h>
  7
  8#ifndef HighLevelMonitorConfigurationAPI_h
  9#define HighLevelMonitorConfigurationAPI_h
 10
 11#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
 12
 13#include <windows.h>
 14#include <physicalmonitorenumerationapi.h>
 15
 16#define MC_CAPS_NONE 0x00000000
 17#define MC_CAPS_MONITOR_TECHNOLOGY_TYPE 0x00000001
 18#define MC_CAPS_BRIGHTNESS 0x00000002
 19#define MC_CAPS_CONTRAST 0x00000004
 20#define MC_CAPS_COLOR_TEMPERATURE 0x00000008
 21#define MC_CAPS_RED_GREEN_BLUE_GAIN 0x00000010
 22#define MC_CAPS_RED_GREEN_BLUE_DRIVE 0x00000020
 23#define MC_CAPS_DEGAUSS 0x00000040
 24#define MC_CAPS_DISPLAY_AREA_POSITION 0x00000080
 25#define MC_CAPS_DISPLAY_AREA_SIZE 0x00000100
 26#define MC_CAPS_RESTORE_FACTORY_DEFAULTS 0x00000400
 27#define MC_CAPS_RESTORE_FACTORY_COLOR_DEFAULTS 0x00000800
 28#define MC_RESTORE_FACTORY_DEFAULTS_ENABLES_MONITOR_SETTINGS 0x00001000
 29
 30#define MC_SUPPORTED_COLOR_TEMPERATURE_NONE 0x00000000
 31#define MC_SUPPORTED_COLOR_TEMPERATURE_4000K 0x00000001
 32#define MC_SUPPORTED_COLOR_TEMPERATURE_5000K 0x00000002
 33#define MC_SUPPORTED_COLOR_TEMPERATURE_6500K 0x00000004
 34#define MC_SUPPORTED_COLOR_TEMPERATURE_7500K 0x00000008
 35#define MC_SUPPORTED_COLOR_TEMPERATURE_8200K 0x00000010
 36#define MC_SUPPORTED_COLOR_TEMPERATURE_9300K 0x00000020
 37#define MC_SUPPORTED_COLOR_TEMPERATURE_10000K 0x00000040
 38#define MC_SUPPORTED_COLOR_TEMPERATURE_11500K 0x00000080
 39
 40#ifdef __cplusplus
 41extern "C" {
 42#endif
 43
 44  typedef enum _MC_DISPLAY_TECHNOLOGY_TYPE {
 45    MC_SHADOW_MASK_CATHODE_RAY_TUBE,
 46    MC_APERTURE_GRILL_CATHODE_RAY_TUBE,
 47    MC_THIN_FILM_TRANSISTOR,
 48    MC_LIQUID_CRYSTAL_ON_SILICON,
 49    MC_PLASMA,
 50    MC_ORGANIC_LIGHT_EMITTING_DIODE,
 51    MC_ELECTROLUMINESCENT,
 52    MC_MICROELECTROMECHANICAL,
 53    MC_FIELD_EMISSION_DEVICE
 54  } MC_DISPLAY_TECHNOLOGY_TYPE,*LPMC_DISPLAY_TECHNOLOGY_TYPE;
 55
 56  typedef enum _MC_DRIVE_TYPE {
 57    MC_RED_DRIVE,
 58    MC_GREEN_DRIVE,
 59    MC_BLUE_DRIVE
 60  } MC_DRIVE_TYPE;
 61
 62  typedef enum _MC_GAIN_TYPE {
 63    MC_RED_GAIN,
 64    MC_GREEN_GAIN,
 65    MC_BLUE_GAIN
 66  } MC_GAIN_TYPE;
 67
 68  typedef enum _MC_POSITION_TYPE {
 69    MC_HORIZONTAL_POSITION,
 70    MC_VERTICAL_POSITION
 71  } MC_POSITION_TYPE;
 72
 73  typedef enum _MC_SIZE_TYPE {
 74    MC_WIDTH,
 75    MC_HEIGHT
 76  } MC_SIZE_TYPE;
 77
 78  typedef enum _MC_COLOR_TEMPERATURE {
 79    MC_COLOR_TEMPERATURE_UNKNOWN,
 80    MC_COLOR_TEMPERATURE_4000K,
 81    MC_COLOR_TEMPERATURE_5000K,
 82    MC_COLOR_TEMPERATURE_6500K,
 83    MC_COLOR_TEMPERATURE_7500K,
 84    MC_COLOR_TEMPERATURE_8200K,
 85    MC_COLOR_TEMPERATURE_9300K,
 86    MC_COLOR_TEMPERATURE_10000K,
 87    MC_COLOR_TEMPERATURE_11500K
 88  } MC_COLOR_TEMPERATURE,*LPMC_COLOR_TEMPERATURE;
 89
 90  _BOOL WINAPI DegaussMonitor (HANDLE hMonitor);
 91  _BOOL WINAPI GetMonitorBrightness (HANDLE hMonitor, LPDWORD pdwMinimumBrightness, LPDWORD pdwCurrentBrightness, LPDWORD pdwMaximumBrightness);
 92  _BOOL WINAPI GetMonitorCapabilities (HANDLE hMonitor, LPDWORD pdwMonitorCapabilities, LPDWORD pdwSupportedColorTemperatures);
 93  _BOOL WINAPI GetMonitorColorTemperature (HANDLE hMonitor, LPMC_COLOR_TEMPERATURE pctCurrentColorTemperature);
 94  _BOOL WINAPI GetMonitorContrast (HANDLE hMonitor, LPDWORD pdwMinimumContrast, LPDWORD pdwCurrentContrast, LPDWORD pdwMaximumContrast);
 95  _BOOL WINAPI GetMonitorDisplayAreaSize (HANDLE hMonitor, MC_SIZE_TYPE stSizeType, LPDWORD pdwMinimumWidthOrHeight, LPDWORD pdwCurrentWidthOrHeight, LPDWORD pdwMaximumWidthOrHeight);
 96  _BOOL WINAPI GetMonitorDisplayAreaPosition (HANDLE hMonitor, MC_POSITION_TYPE ptPositionType, LPDWORD pdwMinimumPosition, LPDWORD pdwCurrentPosition, LPDWORD pdwMaximumPosition);
 97  _BOOL WINAPI GetMonitorRedGreenOrBlueDrive (HANDLE hMonitor, MC_DRIVE_TYPE dtDriveType, LPDWORD pdwMinimumDrive, LPDWORD pdwCurrentDrive, LPDWORD pdwMaximumDrive);
 98  _BOOL WINAPI GetMonitorRedGreenOrBlueGain (HANDLE hMonitor, MC_GAIN_TYPE gtGainType, LPDWORD pdwMinimumGain, LPDWORD pdwCurrentGain, LPDWORD pdwMaximumGain);
 99  _BOOL WINAPI GetMonitorTechnologyType (HANDLE hMonitor, LPMC_DISPLAY_TECHNOLOGY_TYPE pdtyDisplayTechnologyType);
100  _BOOL WINAPI RestoreMonitorFactoryColorDefaults (HANDLE hMonitor);
101  _BOOL WINAPI RestoreMonitorFactoryDefaults (HANDLE hMonitor);
102  _BOOL WINAPI SaveCurrentMonitorSettings (HANDLE hMonitor);
103  _BOOL WINAPI SetMonitorBrightness (HANDLE hMonitor, DWORD dwNewBrightness);
104  _BOOL WINAPI SetMonitorColorTemperature (HANDLE hMonitor, MC_COLOR_TEMPERATURE ctCurrentColorTemperature);
105  _BOOL WINAPI SetMonitorContrast (HANDLE hMonitor, DWORD dwNewContrast);
106  _BOOL WINAPI SetMonitorDisplayAreaSize (HANDLE hMonitor, MC_SIZE_TYPE stSizeType, DWORD dwNewDisplayAreaWidthOrHeight);
107  _BOOL WINAPI SetMonitorDisplayAreaPosition (HANDLE hMonitor, MC_POSITION_TYPE ptPositionType, DWORD dwNewPosition);
108  _BOOL WINAPI SetMonitorRedGreenOrBlueDrive (HANDLE hMonitor, MC_DRIVE_TYPE dtDriveType, DWORD dwNewDrive);
109  _BOOL WINAPI SetMonitorRedGreenOrBlueGain (HANDLE hMonitor, MC_GAIN_TYPE gtGainType, DWORD dwNewGain);
110
111#ifdef __cplusplus
112}
113#endif
114#endif
115#endif