1
0
mirror of https://github.com/wine-mirror/wine synced 2024-06-29 06:14:34 +00:00

user32: Test and implement GetDpiFromDpiAwarenessContext.

This commit is contained in:
Rémi Bernon 2024-05-23 10:52:45 +02:00 committed by Alexandre Julliard
parent 1172c4a94e
commit 9f834614a9
4 changed files with 58 additions and 0 deletions

View File

@ -700,6 +700,15 @@ DPI_AWARENESS WINAPI GetAwarenessFromDpiAwarenessContext( DPI_AWARENESS_CONTEXT
}
}
/***********************************************************************
* GetDpiFromDpiAwarenessContext (USER32.@)
*/
UINT WINAPI GetDpiFromDpiAwarenessContext( DPI_AWARENESS_CONTEXT handle )
{
UINT context = get_ntuser_dpi_context( handle );
return NTUSER_DPI_CONTEXT_GET_DPI( context );
}
/***********************************************************************
* IsValidDpiAwarenessContext (USER32.@)
*/

View File

@ -50,6 +50,7 @@ static BOOL (WINAPI *pLogicalToPhysicalPointForPerMonitorDPI)(HWND,POINT*);
static BOOL (WINAPI *pPhysicalToLogicalPointForPerMonitorDPI)(HWND,POINT*);
static LONG (WINAPI *pGetAutoRotationState)(PAR_STATE);
static BOOL (WINAPI *pAreDpiAwarenessContextsEqual)(DPI_AWARENESS_CONTEXT,DPI_AWARENESS_CONTEXT);
static LONG (WINAPI *pGetDpiFromDpiAwarenessContext)(DPI_AWARENESS_CONTEXT);
static BOOL strict;
static int dpi, real_dpi;
@ -4156,6 +4157,50 @@ static void test_IsValidDpiAwarenessContext(void)
}
}
static void test_GetDpiFromDpiAwarenessContext(void)
{
UINT ret;
if (!pGetDpiFromDpiAwarenessContext)
{
win_skip( "GetDpiFromDpiAwarenessContext missing, skipping tests\n" );
return;
}
ret = pGetDpiFromDpiAwarenessContext( 0 );
ok( !ret, "GetDpiFromDpiAwarenessContext returned %u\n", ret );
ret = pGetDpiFromDpiAwarenessContext( (DPI_AWARENESS_CONTEXT)0x11 );
ok( ret == 0, "GetDpiFromDpiAwarenessContext returned %u\n", ret );
ret = pGetDpiFromDpiAwarenessContext( (DPI_AWARENESS_CONTEXT)0x12 );
ok( ret == 0, "GetDpiFromDpiAwarenessContext returned %u\n", ret );
ret = pGetDpiFromDpiAwarenessContext( (DPI_AWARENESS_CONTEXT)0x22 );
ok( ret == 0, "GetDpiFromDpiAwarenessContext returned %u\n", ret );
ret = pGetDpiFromDpiAwarenessContext( (DPI_AWARENESS_CONTEXT)0x6010 );
ok( ret == 96, "GetDpiFromDpiAwarenessContext returned %u\n", ret );
ret = pGetDpiFromDpiAwarenessContext( (DPI_AWARENESS_CONTEXT)0x6011 );
ok( ret == 96, "GetDpiFromDpiAwarenessContext returned %u\n", ret );
ret = pGetDpiFromDpiAwarenessContext( (DPI_AWARENESS_CONTEXT)0x6111 );
ok( ret == 97, "GetDpiFromDpiAwarenessContext returned %u\n", ret );
ret = pGetDpiFromDpiAwarenessContext( (DPI_AWARENESS_CONTEXT)0x7811 );
ok( ret == 120, "GetDpiFromDpiAwarenessContext returned %u\n", ret );
ret = pGetDpiFromDpiAwarenessContext( (DPI_AWARENESS_CONTEXT)0x10011 );
ok( ret == 256, "GetDpiFromDpiAwarenessContext returned %u\n", ret );
ret = pGetDpiFromDpiAwarenessContext( (DPI_AWARENESS_CONTEXT)0x40006010 );
ok( ret == 96, "GetDpiFromDpiAwarenessContext returned %u\n", ret );
ret = pGetDpiFromDpiAwarenessContext( DPI_AWARENESS_CONTEXT_UNAWARE );
ok( ret == 96, "GetDpiFromDpiAwarenessContext returned %u\n", ret );
ret = pGetDpiFromDpiAwarenessContext( DPI_AWARENESS_CONTEXT_SYSTEM_AWARE );
ok( ret == real_dpi, "GetDpiFromDpiAwarenessContext returned %u\n", ret );
ret = pGetDpiFromDpiAwarenessContext( DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE );
ok( ret == 0, "GetDpiFromDpiAwarenessContext returned %u\n", ret );
ret = pGetDpiFromDpiAwarenessContext( DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 );
ok( ret == 0, "GetDpiFromDpiAwarenessContext returned %u\n", ret );
ret = pGetDpiFromDpiAwarenessContext( DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED );
ok( ret == 96, "GetDpiFromDpiAwarenessContext returned %u\n", ret );
}
static void test_dpi_context(void)
{
DPI_AWARENESS awareness;
@ -4591,6 +4636,7 @@ START_TEST(sysparams)
pPhysicalToLogicalPointForPerMonitorDPI = (void*)GetProcAddress(hdll, "PhysicalToLogicalPointForPerMonitorDPI");
pGetAutoRotationState = (void*)GetProcAddress(hdll, "GetAutoRotationState");
pAreDpiAwarenessContextsEqual = (void*)GetProcAddress(hdll, "AreDpiAwarenessContextsEqual");
pGetDpiFromDpiAwarenessContext = (void*)GetProcAddress(hdll, "GetDpiFromDpiAwarenessContext");
hInstance = GetModuleHandleA( NULL );
hdc = GetDC(0);
@ -4623,6 +4669,7 @@ START_TEST(sysparams)
test_GetAutoRotationState( );
test_SetThreadDpiAwarenessContext();
test_IsValidDpiAwarenessContext();
test_GetDpiFromDpiAwarenessContext();
change_counter = 0;
change_last_param = 0;

View File

@ -302,6 +302,7 @@
@ stdcall GetDpiForMonitorInternal(long long ptr ptr) NtUserGetDpiForMonitor
@ stdcall GetDpiForSystem()
@ stdcall GetDpiForWindow(long)
@ stdcall GetDpiFromDpiAwarenessContext(long)
@ stdcall GetFocus()
@ stdcall GetForegroundWindow() NtUserGetForegroundWindow
@ stdcall GetGestureConfig(long long long ptr ptr long)

View File

@ -4116,6 +4116,7 @@ WINUSERAPI DWORD WINAPI GetAppCompatFlags(HTASK);
WINUSERAPI SHORT WINAPI GetAsyncKeyState(INT);
WINUSERAPI BOOL WINAPI GetAutoRotationState(AR_STATE*);
WINUSERAPI DPI_AWARENESS WINAPI GetAwarenessFromDpiAwarenessContext(DPI_AWARENESS_CONTEXT);
WINUSERAPI UINT WINAPI GetDpiFromDpiAwarenessContext(DPI_AWARENESS_CONTEXT);
WINUSERAPI HWND WINAPI GetCapture(void);
WINUSERAPI UINT WINAPI GetCaretBlinkTime(void);
WINUSERAPI BOOL WINAPI GetCaretPos(LPPOINT);