WindowsAPIのEnumWindows関数を使って
IEnumerable<IntPtr> を返す遅延評価のメソッドを作ることってできるかな?