public static IEnumerable <string> AllItemsInProject(IVsProject project)
        {
            if (project == null)
            {
                throw new ArgumentNullException("project");
            }

            string       projectDir = Path.GetDirectoryName(ProjectUtilities.GetProjectFilePath(project));
            IVsHierarchy hierarchy  = project as IVsHierarchy;

            return
                (ChildrenOf(hierarchy, VSConstants.VSITEMID.Root)
                 .Select(
                     id =>
            {
                string name = null;
                project.GetMkDocument((uint)id, out name);
                if (name != null && name.Length > 0 && !Path.IsPathRooted(name))
                {
                    name = AbsolutePathFromRelative(name, projectDir);
                }
                return name;
            })
                 .Where(File.Exists));
        }
        void GatherProjectInfo(IEnumerable <IVsProject> projects, string searchingWord)
        {
            _projectsToScan.Clear();
            _totalFiles = 0;
            _projectList.Clear();
            int projectNumber = 0;

            foreach (IVsProject project in projects)
            {
                _projectList.Insert(projectNumber, project);
                projectNumber++;

                List <string> filesToScan    = new List <string>();
                List <string> termTableFiles = new List <string>();

                filesToScan.AddRange(ProjectUtilities.AllItemsInProject(project));
                _totalFiles += (uint)filesToScan.Count;

                _projectsToScan.Add(new ProjectConfiguration(filesToScan, searchingWord, ProjectUtilities.GetProjectFilePath(project)));
            }
        }