mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-15 06:04:49 +01:00
SetProcessDpiAwareness
This commit is contained in:
parent
ae1b46bce2
commit
308413323c
@ -116,4 +116,10 @@ struct IDirectDrawImplVtbl
|
||||
HRESULT(__stdcall *WaitForVerticalBlank)(IDirectDrawImpl *, DWORD, HANDLE);
|
||||
};
|
||||
|
||||
typedef enum PROCESS_DPI_AWARENESS {
|
||||
PROCESS_DPI_UNAWARE = 0,
|
||||
PROCESS_SYSTEM_DPI_AWARE = 1,
|
||||
PROCESS_PER_MONITOR_DPI_AWARE = 2
|
||||
} PROCESS_DPI_AWARENESS;
|
||||
|
||||
#endif
|
||||
|
27
src/main.c
27
src/main.c
@ -58,13 +58,28 @@ BOOL WINAPI DllMain(HANDLE hDll, DWORD dwReason, LPVOID lpReserved)
|
||||
|
||||
//SetProcessPriorityBoost(GetCurrentProcess(), TRUE);
|
||||
|
||||
HMODULE user32 = GetModuleHandle("user32.dll");
|
||||
typedef BOOL (__stdcall* SetProcessDPIAware_)();
|
||||
if(user32)
|
||||
BOOL setDpiAware = FALSE;
|
||||
HMODULE hShcore = GetModuleHandle("shcore.dll");
|
||||
typedef HRESULT (__stdcall* SetProcessDpiAwareness_)(PROCESS_DPI_AWARENESS value);
|
||||
if(hShcore)
|
||||
{
|
||||
SetProcessDPIAware_ setProcessDPIAware = (SetProcessDPIAware_)GetProcAddress(user32, "SetProcessDPIAware");
|
||||
if (setProcessDPIAware)
|
||||
setProcessDPIAware();
|
||||
SetProcessDpiAwareness_ setProcessDpiAwareness = (SetProcessDpiAwareness_)GetProcAddress(hShcore, "SetProcessDpiAwareness");
|
||||
if (setProcessDpiAwareness)
|
||||
{
|
||||
HRESULT result = setProcessDpiAwareness(PROCESS_PER_MONITOR_DPI_AWARE);
|
||||
setDpiAware = result == S_OK || result == E_ACCESSDENIED;
|
||||
}
|
||||
}
|
||||
if (!setDpiAware)
|
||||
{
|
||||
HMODULE hUser32 = GetModuleHandle("user32.dll");
|
||||
typedef BOOL (__stdcall* SetProcessDPIAware_)();
|
||||
if(hUser32)
|
||||
{
|
||||
SetProcessDPIAware_ setProcessDPIAware = (SetProcessDPIAware_)GetProcAddress(hUser32, "SetProcessDPIAware");
|
||||
if (setProcessDPIAware)
|
||||
setProcessDPIAware();
|
||||
}
|
||||
}
|
||||
|
||||
timeBeginPeriod(1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user