Sets the current process as dots per inch (dpi) aware.
Syntax
BOOL SetProcessDPIAware(VOID);
Return Value
On success, the return value is nonzero. Otherwise, the return value is zero.
Remarks
Note -
SetProcessDPIAware is subject to a possible race condition if a DLL caches
dpi settings during initialization. For this reason, it is recommended that dpi-aware
be set through the application (.exe) manifest rather than by calling SetProcessDPIAware.
DLLs should accept the dpi setting of the host process
rather than call SetProcessDPIAware themselves.
To be set properly, dpiAware should be specified as part of the application (.exe) manifest.
(dpiAware defined in an embedded DLL manifest has no affect.)
The following markup shows how to set dpiAware as part of an application (.exe) manifest.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
...
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
For more information about application manifests, see Manifests [Side-by-Side Assemblies].
Function Information
| Minimum DLL Version | user32.dll |
|---|
| Header | Declared in Winuser.h, include Windows.h |
|---|
| Import library | User32.lib |
|---|
| Minimum operating systems |
Windows Vista |
|---|