Skip to content

Commit c5e89ee

Browse files
authored
Merge pull request #26 from nulano/imagegrab-dynamic-link
Fix GetWindowDpiAwarenessContext NULL check
2 parents 288d77e + acba5c4 commit c5e89ee

File tree

1 file changed

+9
-16
lines changed

1 file changed

+9
-16
lines changed

src/display.c

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ PyImaging_GrabScreenWin32(PyObject *self, PyObject *args) {
329329
HWND wnd;
330330
DWORD rop;
331331
PyObject *buffer;
332-
HANDLE dpiAwareness;
332+
HANDLE dpiAwareness = NULL;
333333
HMODULE user32;
334334
Func_GetWindowDpiAwarenessContext GetWindowDpiAwarenessContext_function;
335335
Func_SetThreadDpiAwarenessContext SetThreadDpiAwarenessContext_function;
@@ -360,22 +360,15 @@ PyImaging_GrabScreenWin32(PyObject *self, PyObject *args) {
360360
SetThreadDpiAwarenessContext_function = (Func_SetThreadDpiAwarenessContext
361361
)GetProcAddress(user32, "SetThreadDpiAwarenessContext");
362362
if (SetThreadDpiAwarenessContext_function != NULL) {
363-
if (screens == -1) {
364-
GetWindowDpiAwarenessContext_function = (Func_GetWindowDpiAwarenessContext
365-
)GetProcAddress(user32, "GetWindowDpiAwarenessContext");
366-
DPI_AWARENESS_CONTEXT dpiAwarenessContext =
367-
GetWindowDpiAwarenessContext_function(wnd);
368-
if (GetWindowDpiAwarenessContext_function != NULL &&
369-
dpiAwarenessContext != NULL) {
370-
dpiAwareness =
371-
SetThreadDpiAwarenessContext_function(dpiAwarenessContext);
372-
} else {
373-
dpiAwareness = SetThreadDpiAwarenessContext_function((HANDLE)-3);
374-
}
375-
} else {
376-
// DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE = ((DPI_CONTEXT_HANDLE)-3)
377-
dpiAwareness = SetThreadDpiAwarenessContext_function((HANDLE)-3);
363+
GetWindowDpiAwarenessContext_function = (Func_GetWindowDpiAwarenessContext
364+
)GetProcAddress(user32, "GetWindowDpiAwarenessContext");
365+
if (screens == -1 && GetWindowDpiAwarenessContext_function != NULL) {
366+
dpiAwareness = GetWindowDpiAwarenessContext_function(wnd);
378367
}
368+
// DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE = ((DPI_CONTEXT_HANDLE)-3)
369+
dpiAwareness = SetThreadDpiAwarenessContext_function(
370+
dpiAwareness == NULL ? (HANDLE)-3 : dpiAwareness
371+
);
379372
}
380373

381374
if (screens == 1) {

0 commit comments

Comments
 (0)