#ifndef FLUTTER_SHELL_PLATFORM_WINDOWS_DPI_HELPER_H_
#define FLUTTER_SHELL_PLATFORM_WINDOWS_DPI_HELPER_H_
#include <ShellScalingApi.h>
#include <VersionHelpers.h>
namespace flutter {
class Win32DpiHelper {
public:
Win32DpiHelper();
~Win32DpiHelper();
bool IsPerMonitorV2Available();
BOOL EnableNonClientDpiScaling(HWND);
UINT GetDpiForWindow(HWND);
BOOL SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT);
private:
using EnableNonClientDpiScaling_ = BOOL __stdcall(HWND);
using GetDpiForWindow_ = UINT __stdcall(HWND);
using SetProcessDpiAwarenessContext_ = BOOL __stdcall(DPI_AWARENESS_CONTEXT);
EnableNonClientDpiScaling_* enable_non_client_dpi_scaling_ = nullptr;
GetDpiForWindow_* get_dpi_for_window_ = nullptr;
SetProcessDpiAwarenessContext_* set_process_dpi_awareness_context_ = nullptr;
HMODULE user32_module_ = nullptr;
bool permonitorv2_supported_ = false;
};
}
#endif