Удачи. Нет, серьезно. EnvDTE не самый дружественный интерфейс.
Короче говоря, из Solution EnvDTE.Solution вы должны выполнить итерации проектов внутри решения ( Solution.Projects ), а затем перечислить ( рекурсивно! ) ProjectItems в проекте ( Project.ProjectItems ) и получить имена файлов для каждого ProjectItem ( ProjectItem.FileNames ).
Есть много вопросов, связанных с этим. ProjectItems может представлять узел References в Project, папку или другие элементы, которые на самом деле не имеют связанных с ними файлов. Кроме того, один ProjectItem может иметь несколько файлов (например, class.cs и class.designer.cs). И, вдобавок ко всему, DTE - просто дерьмовая оболочка COM и ощущается как единое целое.