Reactos
1/*
2 * PROJECT: ReactOS SDK
3 * LICENSE: MIT (https://spdx.org/licenses/MIT)
4 * PURPOSE: API definitions for api-ms-win-shcore-scaling-l1-1-1.dll
5 * COPYRIGHT: Copyright 2025 Carl Bialorucki (carl.bialorucki@reactos.org)
6 */
7
8#pragma once
9
10#include <shtypes.h>
11
12typedef enum
13{
14 MDT_EFFECTIVE_DPI,
15 MDT_ANGULAR_DPI,
16 MDT_RAW_DPI,
17 MDT_DEFAULT = MDT_EFFECTIVE_DPI
18} MONITOR_DPI_TYPE;
19
20typedef enum
21{
22 PROCESS_DPI_UNAWARE,
23 PROCESS_SYSTEM_DPI_AWARE,
24 PROCESS_PER_MONITOR_DPI_AWARE
25} PROCESS_DPI_AWARENESS;
26
27typedef enum
28{
29 DEVICE_PRIMARY,
30 DEVICE_IMMERSIVE,
31} DISPLAY_DEVICE_TYPE;
32
33typedef enum
34{
35 SCF_VALUE_NONE,
36 SCF_SCALE,
37 SCF_PHYSICAL,
38} SCALE_CHANGE_FLAGS;
39
40#if (NTDDI_VERSION >= NTDDI_WIN8)
41DEVICE_SCALE_FACTOR WINAPI GetScaleFactorForDevice(_In_ DISPLAY_DEVICE_TYPE deviceType);
42HRESULT WINAPI RegisterScaleChangeNotifications(_In_ DISPLAY_DEVICE_TYPE displayDevice, _In_ HWND hwndNotify, _In_ UINT uMsgNotify, _Out_ DWORD *pdwCookie);
43HRESULT WINAPI RevokeScaleChangeNotifications(_In_ DISPLAY_DEVICE_TYPE displayDevice, _In_ DWORD dwCookie);
44#endif // (NTDDI_VERSION >= NTDDI_WIN8)
45
46#if (NTDDI_VERSION >= NTDDI_WINBLUE)
47HRESULT WINAPI GetScaleFactorForMonitor(_In_ HMONITOR hMon, _Out_ DEVICE_SCALE_FACTOR *pScale);
48HRESULT WINAPI RegisterScaleChangeEvent(_In_ HANDLE hEvent, _Out_ DWORD_PTR *pdwCookie);
49HRESULT WINAPI UnregisterScaleChangeEvent(_In_ DWORD_PTR dwCookie);
50HRESULT WINAPI SetProcessDpiAwareness(_In_ PROCESS_DPI_AWARENESS value);
51HRESULT WINAPI GetProcessDpiAwareness(_In_opt_ HANDLE hprocess, _Out_ PROCESS_DPI_AWARENESS *value);
52HRESULT WINAPI GetDpiForMonitor(_In_ HMONITOR hmonitor, _In_ MONITOR_DPI_TYPE dpiType, _Out_ UINT *dpiX, _Out_ UINT *dpiY);
53#endif // (NTDDI_VERSION >= NTDDI_WINBLUE)
54
55#if (NTDDI_VERSION >= NTDDI_WIN10)
56typedef enum
57{
58 SHELL_UI_COMPONENT_TASKBARS,
59 SHELL_UI_COMPONENT_NOTIFICATIONAREA,
60 SHELL_UI_COMPONENT_DESKBAND,
61} SHELL_UI_COMPONENT;
62
63UINT WINAPI GetDpiForShellUIComponent(_In_ SHELL_UI_COMPONENT);
64#endif // (NTDDI_VERSION >= NTDDI_WIN10)