@@ -63,9 +63,71 @@ int WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmd
6363 MSG msg ;
6464 int ret ;
6565
66- // AllocConsole();
66+ // AllocConsole();
6767 printf ("voidmouse\n" );
6868
69+ {
70+ HMODULE user32_hmod ;
71+
72+ user32_hmod = GetModuleHandleA ("user32.dll" );
73+ if (user32_hmod )
74+ {
75+ printf ("user32\n" );
76+
77+ {
78+ BOOL (WINAPI * SetProcessDpiAwarenessContext_proc )(int value );
79+
80+ SetProcessDpiAwarenessContext_proc = (void * )GetProcAddress (user32_hmod ,"SetProcessDpiAwarenessContext" );
81+
82+ if (SetProcessDpiAwarenessContext_proc )
83+ {
84+ printf ("SetProcessDpiAwarenessContext_proc\n" );
85+
86+ // DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2
87+ if (SetProcessDpiAwarenessContext_proc (-4 ))
88+ {
89+ printf ("SetProcessDpiAwarenessContext_proc OK\n" );
90+ }
91+ else
92+ {
93+ printf ("SetProcessDpiAwarenessContext_proc FAILED %u\n" ,GetLastError ());
94+ }
95+ }
96+ }
97+
98+ {
99+ HANDLE (WINAPI * GetThreadDpiAwarenessContext_proc )(void );
100+
101+ GetThreadDpiAwarenessContext_proc = (void * )GetProcAddress (user32_hmod ,"GetThreadDpiAwarenessContext" );
102+
103+ if (GetThreadDpiAwarenessContext_proc )
104+ {
105+ HANDLE ctx ;
106+
107+ printf ("GetThreadDpiAwarenessContext_proc\n" );
108+
109+ ctx = GetThreadDpiAwarenessContext_proc ();
110+ if (ctx )
111+ {
112+ int (WINAPI * GetAwarenessFromDpiAwarenessContext_proc )(HANDLE ctx );
113+
114+ printf ("ctx %p\n" ,ctx );
115+
116+ GetAwarenessFromDpiAwarenessContext_proc = (void * )GetProcAddress (user32_hmod ,"GetAwarenessFromDpiAwarenessContext" );
117+ if (GetAwarenessFromDpiAwarenessContext_proc )
118+ {
119+ int level ;
120+
121+ level = GetAwarenessFromDpiAwarenessContext_proc (ctx );
122+
123+ printf ("DPI awareness level %d\n" ,level );
124+ }
125+ }
126+ }
127+ }
128+ }
129+ }
130+
69131 if (!install_hook ())
70132 {
71133 printf ("install hook failed\n" );
@@ -101,4 +163,4 @@ int WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmd
101163int __cdecl main (int argc ,char * * argv )
102164{
103165 return WinMain (0 ,0 ,0 ,0 );
104- }
166+ }
0 commit comments