Пример #1
0
        public static bool getActiveProjectAndConfig(DTE app, out VCProjectW out_proj, out VCConfigurationW out_conf)
        {
            out_proj = null;
            out_conf = null;

            Document doc = app.ActiveDocument;
            if (doc == null) { return false; }

            ProjectItem item = doc.ProjectItem;
            if (!matchTypeName(item.Object, "VCProjectFileShim")) { return false; }

            EnvDTE.Project proj = item.ContainingProject;
            VCFileW vcfile = new VCFileW(item.Object);
            VCProjectW vcproj = vcfile.project;
            String configname = proj.ConfigurationManager.ActiveConfiguration.ConfigurationName + "|" + proj.ConfigurationManager.ActiveConfiguration.PlatformName;
            IVCCollectionW cfgs = vcproj.Configurations;
            int num = cfgs.Count;
            for (int i = 1; i <= num; ++i)
            {
                VCConfigurationW c = cfgs.Item(i);
                String name = (String)getProperty(c, "Name");
                if (name == configname)
                {
                    out_proj = vcproj;
                    out_conf = c;
                    return true;
                }
            }

            return false;
        }
Пример #2
0
        private static bool getStartupProjectAndConfigR(EnvDTE.Project project, String startup, out VCProjectW o_proj, out VCConfigurationW o_conf)
        {
            o_proj = null;
            o_conf = null;
            if (project.Kind == EnvDTE.Constants.vsProjectKindSolutionItems)
            {
                foreach (ProjectItem item in project.ProjectItems)
                {
                    EnvDTE.Project child = item.SubProject;
                    if (child != null)
                    {
                        if (getStartupProjectAndConfigR(child, startup, out o_proj, out o_conf))
                        {
                            return(true);
                        }
                    }
                }
            }
            else
            {
                if (!matchTypeName(project.Object, "VCProjectShim"))
                {
                    return(false);
                }
                VCProjectW vcproj = new VCProjectW(project.Object);
                o_proj = vcproj;

                if (project.UniqueName == startup)
                {
                    String         configname = project.ConfigurationManager.ActiveConfiguration.ConfigurationName + "|" + project.ConfigurationManager.ActiveConfiguration.PlatformName;
                    IVCCollectionW cfgs       = vcproj.Configurations;
                    int            num        = cfgs.Count;
                    for (int i = 1; i <= num; ++i)
                    {
                        VCConfigurationW c = cfgs.Item(i);
                        if (c.Name == configname)
                        {
                            o_conf = c;
                            return(true);
                        }
                    }
                }
            }
            return(false);
        }
Пример #3
0
        public static bool getActiveProjectAndConfig(DTE app, out VCProjectW out_proj, out VCConfigurationW out_conf)
        {
            out_proj = null;
            out_conf = null;

            Document doc = app.ActiveDocument;

            if (doc == null)
            {
                return(false);
            }

            ProjectItem item = doc.ProjectItem;

            if (!matchTypeName(item.Object, "VCProjectFileShim"))
            {
                return(false);
            }

            EnvDTE.Project proj       = item.ContainingProject;
            VCFileW        vcfile     = new VCFileW(item.Object);
            VCProjectW     vcproj     = vcfile.project;
            String         configname = proj.ConfigurationManager.ActiveConfiguration.ConfigurationName + "|" + proj.ConfigurationManager.ActiveConfiguration.PlatformName;
            IVCCollectionW cfgs       = vcproj.Configurations;
            int            num        = cfgs.Count;

            for (int i = 1; i <= num; ++i)
            {
                VCConfigurationW c    = cfgs.Item(i);
                String           name = (String)getProperty(c, "Name");
                if (name == configname)
                {
                    out_proj = vcproj;
                    out_conf = c;
                    return(true);
                }
            }

            return(false);
        }
Пример #4
0
        public static bool getStartupProjectAndConfig(DTE app, out VCProjectW o_proj, out VCConfigurationW o_conf)
        {
            o_proj = null;
            o_conf = null;
            Solution sln = app.Solution;

            if (sln == null || sln.SolutionBuild.StartupProjects == null)
            {
                return(false);
            }

            String startup = (String)((Array)sln.SolutionBuild.StartupProjects).GetValue(0);

            foreach (EnvDTE.Project project in sln.Projects)
            {
                if (getStartupProjectAndConfigR(project, startup, out o_proj, out o_conf))
                {
                    return(true);
                }
            }
            return(false);
        }
Пример #5
0
        private static bool getStartupProjectAndConfigR(EnvDTE.Project project, String startup, out VCProjectW o_proj, out VCConfigurationW o_conf)
        {
            o_proj = null;
            o_conf = null;
            if (project.Kind == EnvDTE.Constants.vsProjectKindSolutionItems)
            {
                foreach (ProjectItem item in project.ProjectItems)
                {
                    EnvDTE.Project child = item.SubProject;
                    if (child != null)
                    {
                        if (getStartupProjectAndConfigR(child, startup, out o_proj, out o_conf))
                        {
                            return true;
                        }
                    }
                }
            }
            else
            {
                if (!matchTypeName(project.Object, "VCProjectShim")) { return false; }
                VCProjectW vcproj = new VCProjectW(project.Object);
                o_proj = vcproj;

                if (project.UniqueName == startup)
                {
                    String configname = project.ConfigurationManager.ActiveConfiguration.ConfigurationName + "|" + project.ConfigurationManager.ActiveConfiguration.PlatformName;
                    IVCCollectionW cfgs = vcproj.Configurations;
                    int num = cfgs.Count;
                    for (int i = 1; i <= num; ++i)
                    {
                        VCConfigurationW c = cfgs.Item(i);
                        if (c.Name == configname)
                        {
                            o_conf = c;
                            return true;
                        }
                    }
                }
            }
            return false;
        }
Пример #6
0
        public static bool getStartupProjectAndConfig(DTE app, out VCProjectW o_proj, out VCConfigurationW o_conf)
        {
            o_proj = null;
            o_conf = null;
            Solution sln = app.Solution;
            if (sln == null || sln.SolutionBuild.StartupProjects==null)
            {
                return false;
            }

            String startup = (String)((Array)sln.SolutionBuild.StartupProjects).GetValue(0);
            foreach (EnvDTE.Project project in sln.Projects)
            {
                if (getStartupProjectAndConfigR(project, startup, out o_proj, out o_conf))
                {
                    return true;
                }
            }
            return false;
        }