diff --git a/comtypes/test/find_memleak.py b/comtypes/test/find_memleak.py
index d27e68e12..07a4ded2a 100644
--- a/comtypes/test/find_memleak.py
+++ b/comtypes/test/find_memleak.py
@@ -26,9 +26,14 @@ def dump(self):
         for n, _ in self._fields_[2:]:
             print(n, getattr(self, n) / 1e6)
 
+_psapi = WinDLL("psapi")
+
+_GetProcessMemoryInfo = _psapi.GetProcessMemoryInfo
+_GetProcessMemoryInfo.argtypes = [HANDLE, POINTER(PROCESS_MEMORY_COUNTERS), DWORD]
+_GetProcessMemoryInfo.restype = BOOL
 
 try:
-    windll.psapi.GetProcessMemoryInfo.argtypes = (
+    _GetProcessMemoryInfo.argtypes = (
         HANDLE,
         POINTER(PROCESS_MEMORY_COUNTERS),
         DWORD,
@@ -43,7 +48,7 @@ def find_memleak(func, loops=None):
     def wss():
         # Return the working set size (memory used by process)
         pmi = PROCESS_MEMORY_COUNTERS()
-        if not windll.psapi.GetProcessMemoryInfo(-1, byref(pmi), sizeof(pmi)):
+        if not _GetProcessMemoryInfo(-1, byref(pmi), sizeof(pmi)):
             raise WinError()
         return pmi.WorkingSetSize