From aaf83645f7bcc8c6cef1433576a01cc108e2aab4 Mon Sep 17 00:00:00 2001 From: Athanasius Date: Thu, 12 Jan 2023 16:04:44 +0000 Subject: [PATCH] monitor: Properly prototype `EnumWindows` --- monitor.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/monitor.py b/monitor.py index 488f8564..5478494e 100644 --- a/monitor.py +++ b/monitor.py @@ -49,13 +49,20 @@ if sys.platform == 'darwin': elif sys.platform == 'win32': import ctypes + from ctypes import WINFUNCTYPE, windll from ctypes.wintypes import BOOL, HWND, LPARAM, LPWSTR from watchdog.events import FileCreatedEvent, FileSystemEventHandler from watchdog.observers import Observer - EnumWindows = ctypes.windll.user32.EnumWindows - EnumWindowsProc = ctypes.WINFUNCTYPE(BOOL, HWND, LPARAM) + # BOOL EnumWindows( + # [in] WNDENUMPROC lpEnumFunc, + # [in] LPARAM lParam + # ); + EnumWindowsProc = WINFUNCTYPE(BOOL, HWND, LPARAM) + prototype = WINFUNCTYPE(BOOL, EnumWindowsProc, LPARAM) + paramflags = (1, "lpEnumFunc"), (1, "lParam") + EnumWindows = prototype(("EnumWindows", windll.user32), paramflags) CloseHandle = ctypes.windll.kernel32.CloseHandle