예제 #1
0
        private bool CalculateCommandVisibility()
        {
            IVsSolution service = (IVsSolution)this.serviceProvider.GetService(typeof(SVsSolution));

            if (service != null)
            {
                IEnumHierarchies hierarchies;
                Guid             empty = Guid.Empty;
                if (ErrorHandler.Succeeded(service.GetProjectEnum(0x1b, ref empty, out hierarchies)) && (hierarchies != null))
                {
                    uint           num2;
                    Guid           gUID  = typeof(STextTemplating).GUID;
                    IVsHierarchy[] rgelt = new IVsHierarchy[1];
                    while ((hierarchies.Next(1, rgelt, out num2) == 0) && (num2 == 1))
                    {
                        IVsProjectStartupServices startUpServices = GetStartUpServices(rgelt[0]);
                        if ((startUpServices != null) && StartupServicesReferencesService(startUpServices, gUID))
                        {
                            return(true);
                        }
                    }
                }
            }
            return(false);
        }
예제 #2
0
        private static void MarkProjectForTextTemplating(IVsHierarchy hierarchy)
        {
            Guid gUID = typeof(STextTemplating).GUID;
            IVsProjectStartupServices startUpServices = OrchestratorCommandSet.GetStartUpServices(hierarchy);

            if ((startUpServices != null) && !OrchestratorCommandSet.StartupServicesReferencesService(startUpServices, gUID))
            {
                ErrorHandler.Failed(startUpServices.AddStartupService(ref gUID));
            }
        }
예제 #3
0
        private void MarkProjectForTextTemplating(IVsHierarchy hierarchy)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            Guid gUID = typeof(SSubSonicTemplatingService).GUID;
            IVsProjectStartupServices startUpServices = GetStartUpServices(hierarchy);

            if ((startUpServices != null) && !StartupServicesReferencesService(startUpServices, gUID))
            {
                ErrorHandler.Failed(startUpServices.AddStartupService(ref gUID));
                SqmFacade.T4MarkProjectForTextTemplating();
            }
        }
예제 #4
0
        private bool IsSelectedProjectValable()
        {
            IVsHierarchy projectHierarchy = GetSelectedProject(_serviceProvider);

            if (projectHierarchy != null)
            {
                IVsProjectStartupServices startup = GetStartUpServices(projectHierarchy);
                if ((startup != null) && StartUpServicesReferencesService(startup, typeof(STextTemplating).GUID))
                {
                    return(true);
                }
            }

            return(false);
        }
예제 #5
0
        private bool StartUpServicesReferencesService(IVsProjectStartupServices startup, Guid serviceId)
        {
            int num;
            IEnumProjectStartupServices psenum = null;

            startup.GetStartupServiceEnum(out psenum);
            uint fetched = 0;

            Guid[] result = new Guid[1];
            do
            {
                num = psenum.Next(1, result, out fetched);
                if ((fetched == 1) && (result[0].CompareTo(serviceId) == 0))
                {
                    return(true);
                }
            }while (num != 1);
            return(false);
        }
예제 #6
0
        internal static bool StartupServicesReferencesService(IVsProjectStartupServices startup, Guid serviceId)
        {
            int num2;
            IEnumProjectStartupServices ppenum = null;

            ErrorHandler.ThrowOnFailure(startup.GetStartupServiceEnum(out ppenum));
            uint pceltFetched = 0;

            Guid[] rgelt = new Guid[1];
            do
            {
                num2 = ppenum.Next(1, rgelt, out pceltFetched);
                ErrorHandler.ThrowOnFailure(num2);
                if ((pceltFetched == 1) && (rgelt[0].CompareTo(serviceId) == 0))
                {
                    return(true);
                }
            }while (num2 != 1);
            return(false);
        }
 private bool StartUpServicesReferencesService(IVsProjectStartupServices startup, Guid serviceId)
 {
     int num;
     IEnumProjectStartupServices psenum = null;
     startup.GetStartupServiceEnum(out psenum);
     uint fetched = 0;
     Guid[] result = new Guid[1];
     do
     {
         num = psenum.Next(1, result, out fetched);
         if ((fetched == 1) && (result[0].CompareTo(serviceId) == 0))
             return true;
     }
     while (num != 1);
     return false;
 }