def METHOD_NAME(
		filterUsingWindow: Callable[[Window], bool] = lambda _: True,
) -> List[Window]:
	windows: List[Window] = []
	# BOOL CALLBACK EnumWindowsProc _In_ HWND,_In_ LPARAM
	# HWND as a pointer creates confusion, treat as an int
	# http://makble.com/the-story-of-lpclong
	@WINFUNCTYPE(c_bool, c_int, POINTER(c_int))
	def _append_title(hwnd: HWNDVal, _lParam: LPARAM) -> bool:
		if not isinstance(hwnd, (HWNDVal, c_int)):
			builtIn.log(f"Hwnd type {type(hwnd)}, value {hwnd}")
		window = Window(hwnd, _GetWindowTitle(hwnd))
		if filterUsingWindow(window):
			windows.append(window)
		return True
	if not windll.user32.EnumWindows(_append_title, 0):
		raise WinError()
	return windows