zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

shellscalingapi.h (2544B) - Raw


      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 
      7 #ifndef _SHELLSCALINGAPI_H_
      8 #define _SHELLSCALINGAPI_H_
      9 
     10 #include <shtypes.h>
     11 #include <winapifamily.h>
     12 
     13 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
     14 
     15 #ifndef SCALING_ENUMS_DECLARED
     16 typedef enum {
     17   SCF_VALUE_NONE = 0x00,
     18   SCF_SCALE = 0x01,
     19   SCF_PHYSICAL = 0x02
     20 } SCALE_CHANGE_FLAGS;
     21 DEFINE_ENUM_FLAG_OPERATORS(SCALE_CHANGE_FLAGS);
     22 
     23 typedef enum {
     24   DEVICE_PRIMARY = 0,
     25   DEVICE_IMMERSIVE = 1
     26 } DISPLAY_DEVICE_TYPE;
     27 
     28 #define SCALING_ENUMS_DECLARED
     29 #endif /* SCALING_ENUMS_DECLARED */
     30 
     31 #if NTDDI_VERSION >= NTDDI_WIN8
     32 STDAPI_(DEVICE_SCALE_FACTOR) GetScaleFactorForDevice(DISPLAY_DEVICE_TYPE deviceType);
     33 STDAPI RegisterScaleChangeNotifications(DISPLAY_DEVICE_TYPE displayDevice, HWND hwndNotify, UINT uMsgNotify,
     34   DWORD *pdwCookie);
     35 STDAPI RevokeScaleChangeNotifications(DISPLAY_DEVICE_TYPE displayDevice, DWORD dwCookie);
     36 #endif /* NTDDI_VERSION >= NTDDI_WIN8 */
     37 
     38 #ifndef DPI_ENUMS_DECLARED
     39 typedef enum MONITOR_DPI_TYPE {
     40   MDT_EFFECTIVE_DPI = 0,
     41   MDT_ANGULAR_DPI = 1,
     42   MDT_RAW_DPI = 2,
     43   MDT_DEFAULT = MDT_EFFECTIVE_DPI
     44 } MONITOR_DPI_TYPE;
     45 
     46 typedef enum PROCESS_DPI_AWARENESS {
     47   PROCESS_DPI_UNAWARE = 0,
     48   PROCESS_SYSTEM_DPI_AWARE = 1,
     49   PROCESS_PER_MONITOR_DPI_AWARE = 2
     50 } PROCESS_DPI_AWARENESS;
     51 
     52 #define DPI_ENUMS_DECLARED
     53 #endif /* DPI_ENUMS_DECLARED */
     54 
     55 #if NTDDI_VERSION >= NTDDI_WINBLUE
     56 STDAPI GetScaleFactorForMonitor(HMONITOR hMon, DEVICE_SCALE_FACTOR *pScale);
     57 STDAPI RegisterScaleChangeEvent(HANDLE hEvent, DWORD_PTR *pdwCookie);
     58 STDAPI UnregisterScaleChangeEvent(DWORD_PTR dwCookie);
     59 
     60 STDAPI GetDpiForMonitor(HMONITOR hmonitor, MONITOR_DPI_TYPE dpiType, UINT *dpiX, UINT *dpiY);
     61 STDAPI GetProcessDpiAwareness(HANDLE hprocess, PROCESS_DPI_AWARENESS *value);
     62 STDAPI SetProcessDpiAwareness(PROCESS_DPI_AWARENESS value);
     63 #endif /* NTDDI_VERSION >= NTDDI_WINBLUE */
     64 
     65 #if NTDDI_VERSION >= NTDDI_WINTHRESHOLD
     66 #ifndef SHELL_UI_COMPONENT_ENUMS_DECLARED
     67 typedef enum {
     68   SHELL_UI_COMPONENT_TASKBARS = 0,
     69   SHELL_UI_COMPONENT_NOTIFICATIONAREA = 1,
     70   SHELL_UI_COMPONENT_DESKBAND = 2
     71 } SHELL_UI_COMPONENT;
     72 
     73 #define SHELL_UI_COMPONENT_ENUMS_DECLARED
     74 #endif /* SHELL_UI_COMPONENT_ENUMS_DECLARED */
     75 
     76 UINT WINAPI GetDpiForShellUIComponent(SHELL_UI_COMPONENT component);
     77 #endif /* NTDDI_VERSION >= NTDDI_WINTHRESHOLD */
     78 
     79 #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
     80 #endif /* _SHELLSCALINGAPI_H_ */