Wie kommst du auf die Idee, dass die EnumWindows() zu übergebene Callback Procedure nur einen Parameter hat? Damit zerschiesst du den gesamten Stack!
Zitat von
MSDN:
BOOL CALLBACK EnumWindowsProc(
HWND hwnd,
LPARAM lParam
);
Schau in die
MSDN EnumWindowsProc und
EnumWindows()