The code worked all along. Somehow I manage to get Visual C++ Express not hit the break point on the final return statement and it appeared to run for ever.
hmm, i don't get why it would. i ran it and it worked just fine. it displayed all of the windows i have and then stopped. enumWindows will stop when either the enumWindowsProc returns false (you have it coded to always return true) or when it runs out of top-level windows to enumerate.
-don