コード例 #1
0
 public object GetExtender(string extenderCatid, string extenderName,
                           object extendeeObject, IExtenderSite extenderSite,
                           int cookie)
 {
     return(extender = CanExtend(extenderCatid, extenderName, extendeeObject) ?
                       new ProvisioingTemplateExtender(extenderSite, cookie, extendeeObject) : null);
 }
コード例 #2
0
 public PropertyExtender(IVsBuildPropertyStorage storage, uint itemId, IExtenderSite extenderSite, int cookie)
 {
     this.storage      = storage;
     this.itemId       = itemId;
     this.extenderSite = extenderSite;
     this.cookie       = cookie;
 }
コード例 #3
0
 public PropertyExtender(IVsBuildPropertyStorage storage, uint itemId, IExtenderSite extenderSite, int cookie)
 {
     _storage      = storage;
     _itemId       = itemId;
     _extenderSite = extenderSite;
     _cookie       = cookie;
 }
コード例 #4
0
 public NoneItemExtender(IVsHierarchy hierarchy, uint item, IExtenderSite site, int cookie)
 {
     propertyStorage = (IVsBuildPropertyStorage)hierarchy;
     this.item       = item;
     this.site       = site;
     this.cookie     = cookie;
 }
コード例 #5
0
 /// <summary>
 /// Inits the specified file name.
 /// </summary>
 /// <param name="fileName">Name of the file.</param>
 /// <param name="ExtenderCookie">The extender cookie.</param>
 /// <param name="ExtenderSite">The extender site.</param>
 public void Init(string fileName,
                  int ExtenderCookie,
                  IExtenderSite ExtenderSite)
 {
     _extenderSite = ExtenderSite;
     _siteCookie   = ExtenderCookie;
     _fileName     = fileName;
 }
コード例 #6
0
ファイル: AutoT4Extender.cs プロジェクト: malylemire1/AutoT4
        public AutoT4Extender(ProjectItem item, IExtenderSite extenderSite, int cookie)
            : base(item)
        {
            if (extenderSite == null)
                throw new ArgumentNullException("extenderSite");

            _extenderSite = extenderSite;
            _cookie = cookie;
        }
コード例 #7
0
        public object GetExtender(string ExtenderCATID, string ExtenderName, object ExtendeeObject, IExtenderSite ExtenderSite, int Cookie)
        {
            IVsHierarchy outerHierarchy = HierarchyNode.GetOuterHierarchy(ProjectMgr);

            if (outerHierarchy is IInternalExtenderProvider)
                return ((IInternalExtenderProvider)outerHierarchy).GetExtender(
                    ExtenderCATID, ExtenderName, ExtendeeObject, ExtenderSite, Cookie);

            return null;
        }
コード例 #8
0
ファイル: AutoT4Extender.cs プロジェクト: bennor/AutoT4
        public AutoT4Extender(ProjectItem item, IExtenderSite extenderSite, int cookie)
            : base(item)
        {
            if (extenderSite == null)
            {
                throw new ArgumentNullException("extenderSite");
            }

            _extenderSite = extenderSite;
            _cookie       = cookie;
        }
コード例 #9
0
 /// <summary>
 /// Create a new extender for the given object.
 /// </summary>
 object EnvDTE.IExtenderProvider.GetExtender(string ExtenderCATID, string ExtenderName, object ExtendeeObject, IExtenderSite ExtenderSite, int Cookie)
 {
     if (CanExtend(ExtenderCATID, ExtenderName, ExtendeeObject))
     {
     #if DEBUG
         Trace.WriteLine("GetExtender - creating extended");
     #endif
         return new ResourceExtender(pkg, ExtenderSite, Cookie, ExtendeeObject);
     }
     return null;
 }
コード例 #10
0
        internal BrowseObjectExtender(IServiceProvider serviceProvider, IVsBrowseObject browseObject, IExtenderSite site, int cookie)
        {
            Debug.Assert(serviceProvider != null, "serviceProvider");
            Debug.Assert(browseObject != null, "browseObject");
            Debug.Assert(site != null, "site");
            Debug.Assert(cookie != 0, "cookie");

            this.site            = site;
            this.cookie          = cookie;
            this.serviceProvider = serviceProvider;
            ErrorHandler.ThrowOnFailure(browseObject.GetProjectItem(out this.hierarchy, out this.itemId));
            this.propertyStorage      = (IVsBuildPropertyStorage)this.hierarchy;
            this.CustomToolParameters = new CustomToolParameters(this.serviceProvider, this.hierarchy, this.itemId);
        }
コード例 #11
0
        internal BrowseObjectExtender(IServiceProvider serviceProvider, IVsBrowseObject browseObject, IExtenderSite site, int cookie)
        {
            Debug.Assert(serviceProvider != null, "serviceProvider");
            Debug.Assert(browseObject != null, "browseObject");
            Debug.Assert(site != null, "site");
            Debug.Assert(cookie != 0, "cookie");

            this.site = site;
            this.cookie = cookie;
            this.serviceProvider = serviceProvider;
            ErrorHandler.ThrowOnFailure(browseObject.GetProjectItem(out this.hierarchy, out this.itemId));
            this.propertyStorage = (IVsBuildPropertyStorage)this.hierarchy;
            this.CustomToolParameters = new CustomToolParameters(this.serviceProvider, this.hierarchy, this.itemId);
        }
コード例 #12
0
        public object GetExtender(string extenderCATID, string extenderName, object extendeeObject, IExtenderSite extenderSite, int cookie)
        {
            dynamic extendee = extendeeObject;
            string fullPath = extendee.FullPath;
            var projectItem = _dte.Solution.FindProjectItem(fullPath);
            IVsSolution solution = (IVsSolution) _serviceProvider.GetService(typeof(SVsSolution));
            IVsHierarchy projectHierarchy;
            if (solution.GetProjectOfUniqueName(projectItem.ContainingProject.UniqueName, out projectHierarchy) != 0)
                return null;
            uint itemId;
            if (projectHierarchy.ParseCanonicalName(fullPath, out itemId) != 0)
                return null;

            return new PropertyExtender((IVsBuildPropertyStorage) projectHierarchy, itemId, extenderSite, cookie);
        }
コード例 #13
0
        public object GetExtender(string extenderCatId, string extenderName, object extendeeObject, IExtenderSite extenderSite, int cookie)
        {
            if (!CanExtend(extenderCatId, extenderName, extendeeObject))
                return null;

            var fileProperties = extendeeObject as VSLangProj.FileProperties;
            if (fileProperties == null)
                return null;

            var item = _dte.Solution.FindProjectItem(fileProperties.FullPath);
            if (item == null)
                return null;

            return new AutoT4Extender(item, extenderSite, cookie);
        }
コード例 #14
0
        object IInternalExtenderProvider.GetExtender(
            string extenderCATID,
            string extenderName,
            object extendeeObject,
            IExtenderSite extenderSite,
            int cookie)
        {
            IVsHierarchy outerHierarchy = MSP.HierarchyNode.GetOuterHierarchy(ProjectMgr);

            if (outerHierarchy is IInternalExtenderProvider)
            {
                return(((IInternalExtenderProvider)outerHierarchy).GetExtender(
                           extenderCATID, extenderName, extendeeObject, extenderSite, cookie));
            }

            return(null);
        }
コード例 #15
0
        public RebuildTTPropertyExtender(string fileName, IExtenderSite extenderSite, int cookie)
        {
            if (fileName == null)
            {
                throw new ArgumentNullException("fileName");
            }

            if (extenderSite == null)
            {
                throw new ArgumentNullException("extenderSite");
            }

            this._extenderSite = extenderSite;
            this._cookie       = cookie;

            // resolve the project item from the file name
            var dte = (DTE)Package.GetGlobalService(typeof(DTE));

            this._projectItem = dte.Solution.FindProjectItem(fileName);
        }
コード例 #16
0
        /// <summary>
        /// Gets the extender.
        /// </summary>
        /// <param name="ExtenderCATID">The extender CATID.</param>
        /// <param name="ExtenderName">Name of the extender.</param>
        /// <param name="ExtendeeObject">The extendee object.</param>
        /// <param name="ExtenderSite">The extender site.</param>
        /// <param name="Cookie">The cookie.</param>
        /// <returns></returns>
        public object GetExtender(string ExtenderCATID,
                                  string ExtenderName,
                                  object ExtendeeObject,
                                  IExtenderSite ExtenderSite,
                                  int Cookie)
        {
            CandleExtender staticExtender = null;

            if (CanExtend(ExtenderCATID, ExtenderName, ExtendeeObject))
            {
                //EnvDTE.Solution solution = ((EnvDTE.DTE)ExtenderSite.GetObject("")).Solution;
                //if (null == solution)
                //{
                //    throw new NullReferenceException("((EnvDTE.DTE) " + "ExtenderSite.GetObject(\"\")).Solution failed");
                //}
                PropertyDescriptor fileNameProp = TypeDescriptor.GetProperties(ExtendeeObject)["FullPath"];
                String             fileName     = fileNameProp.GetValue(ExtendeeObject) as String;
                staticExtender = new CandleExtender();
                staticExtender.Init(fileName, Cookie, ExtenderSite);
            }
            return(staticExtender);
        }
コード例 #17
0
        public object GetExtender(string ExtenderCATID,
                                  string ExtenderName,
                                  object ExtendeeObject,
                                  IExtenderSite ExtenderSite,
                                  int Cookie)
        {
            if (CanExtend(ExtenderCATID, ExtenderName, ExtendeeObject))
            {
                var browseObject = ExtendeeObject as IVsBrowseObject;
                if (browseObject != null)
                {
                    IVsHierarchy hierarchy;
                    uint         itemId;
                    int          hr = browseObject.GetProjectItem(out hierarchy, out itemId);
                    if (ErrorHandler.Succeeded(hr) && hierarchy != null)
                    {
                        return(new LibraryProjectExtender(hierarchy, ExtenderSite, Cookie));
                    }
                }
            }

            return(null);
        }
コード例 #18
0
        public object GetExtender(string ExtenderCATID,
                                  string ExtenderName,
                                  object ExtendeeObject,
                                  IExtenderSite ExtenderSite,
                                  int Cookie)
        {
            ProjectReferenceExtender extender = null;

            if (CanExtend(ExtenderCATID, ExtenderName, ExtendeeObject))
            {
                IVsBrowseObject browseObject = ExtendeeObject as IVsBrowseObject;
                if (browseObject != null)
                {
                    IVsHierarchy hierarchyItem = null;
                    uint         itemId        = VSConstants.VSITEMID_NIL;

                    //get the hierarchy item (the item id will be wrong if the reference is not shown)
                    browseObject.GetProjectItem(out hierarchyItem, out itemId);

                    extender = new ProjectReferenceExtender(hierarchyItem, itemId, ExtenderSite, Cookie);
                }
            }
            return(extender);
        }
コード例 #19
0
        object IInternalExtenderProvider.GetExtender(
            string extenderCATID,
            string extenderName,
            object extendeeObject,
            IExtenderSite extenderSite,
            int cookie)
        {
            IVsHierarchy outerHierarchy = MSP.HierarchyNode.GetOuterHierarchy(ProjectMgr);

            if (outerHierarchy is IInternalExtenderProvider)
                return ((IInternalExtenderProvider)outerHierarchy).GetExtender(
                    extenderCATID, extenderName, extendeeObject, extenderSite, cookie);

            return null;
        }
コード例 #20
0
        /// <summary>
        /// Create a new extender for the given object.
        /// </summary>
        object EnvDTE.IExtenderProvider.GetExtender(string ExtenderCATID, string ExtenderName, object ExtendeeObject, IExtenderSite ExtenderSite, int Cookie)
        {
            if (CanExtend(ExtenderCATID, ExtenderName, ExtendeeObject))
            {
#if DEBUG
                Trace.WriteLine("GetExtender - creating extended");
#endif
                return(new ResourceExtender(pkg, ExtenderSite, Cookie, ExtendeeObject));
            }
            return(null);
        }
コード例 #21
0
        public object GetExtender(string extenderCatId, string extenderName, object extendeeObject, IExtenderSite extenderSite, int cookie)
        {
            if (!CanExtend(extenderCatId, extenderName, extendeeObject))
            {
                return(null);
            }

            var fileProperties = extendeeObject as VSLangProj.FileProperties;

            if (fileProperties == null)
            {
                return(null);
            }

            var item = _dte.Solution.FindProjectItem(fileProperties.FullPath);

            if (item == null)
            {
                return(null);
            }

            return(new AutoT4Extender(item, extenderSite, cookie));
        }
コード例 #22
0
 internal LibraryProjectExtender(IVsHierarchy hierarchy, IExtenderSite site, int cookie)
 {
     propertyStorage = (IVsBuildPropertyStorage)hierarchy;
     this.site       = site;
     this.cookie     = cookie;
 }
コード例 #23
0
 public ProvisioingTemplateExtender(IExtenderSite extenderSite, int cookie, object extendee)
 {
     this.extenderSite = extenderSite;
     this.cookie       = cookie;
     itemPath          = extendee.GetPropertyValue <string>("FullPath");
 }
コード例 #24
0
        public object GetExtender(string extenderCATID, string extenderName, object extendeeObject, IExtenderSite extenderSite, int cookie)
        {
            dynamic      extendee    = extendeeObject;
            string       fullPath    = extendee.FullPath;
            var          projectItem = _dte.Solution.FindProjectItem(fullPath);
            IVsSolution  solution    = (IVsSolution)_serviceProvider.GetService(typeof(SVsSolution));
            IVsHierarchy projectHierarchy;

            if (solution.GetProjectOfUniqueName(projectItem.ContainingProject.UniqueName, out projectHierarchy) != 0)
            {
                return(null);
            }
            uint itemId;

            if (projectHierarchy.ParseCanonicalName(fullPath, out itemId) != 0)
            {
                return(null);
            }

            if (FileExtensionsToDisplayOn.Any(x => x.Equals(Path.GetExtension(fullPath), StringComparison.InvariantCultureIgnoreCase)))
            {
                return(new PropertyExtender((IVsBuildPropertyStorage)projectHierarchy, itemId, extenderSite, cookie));
            }

            return(null);
        }
        public virtual object GetExtender(string ExtenderCATID, string ExtenderName, object ExtendeeObject, IExtenderSite ExtenderSite, int Cookie)
        {
            SingleFileGeneratorNodeExtenderProperties extender = null;

            if (CanExtend(ExtenderCATID, ExtenderName, ExtendeeObject))
            {
                FileNodeProperties fileNodeProperties = (FileNodeProperties)ExtendeeObject;
                FileNode fileNode = (FileNode)fileNodeProperties.Node;
                extender = new SingleFileGeneratorNodeExtenderProperties(fileNode);
            }

            return extender;
        }
コード例 #26
0
        public object GetExtender(string ExtenderCATID, string ExtenderName, object ExtendeeObject, IExtenderSite ExtenderSite, int Cookie)
        {
            IVsHierarchy outerHierarchy = HierarchyNode.GetOuterHierarchy(ProjectMgr);

            if (outerHierarchy is IInternalExtenderProvider)
            {
                return(((IInternalExtenderProvider)outerHierarchy).GetExtender(
                           ExtenderCATID, ExtenderName, ExtendeeObject, ExtenderSite, Cookie));
            }

            return(null);
        }
コード例 #27
0
        public object GetExtender(string extenderCatId, string extenderName, object extendeeObject, IExtenderSite extenderSite, int cookie)
        {
            Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread();
            if (!CanExtend(extenderCatId, extenderName, extendeeObject))
            {
                return(null);
            }

            if (!(extendeeObject is VSLangProj.FileProperties fileProperties))
            {
                return(null);
            }
            var item = _dte.Solution.FindProjectItem(fileProperties.FullPath);

            if (item == null)
            {
                return(null);
            }

            return(new AutoT4Extender(item, extenderSite, cookie));
        }
コード例 #28
0
        public object GetExtender(string extenderCATID, string extenderName, object extendeeObject, IExtenderSite extenderSite, int cookie)
        {
            IRebuildTTPropertyExtender extender = null;

            if (this.CanExtend(extenderCATID, extenderName, extendeeObject))
            {
                var fileName = extendeeObject.GetPropertyValue <string>("FileName");
                extender = new RebuildTTPropertyExtender(fileName, extenderSite, cookie);
            }

            return(extender);
        }
コード例 #29
0
        public object GetExtender(string extenderCATID, string extenderName, object extendeeObject, IExtenderSite extenderSite, int cookie)
        {
            Debug.Assert(extenderCATID.IsEqualNoCase(VSLangProj.PrjBrowseObjectCATID.prjCATIDCSharpReferenceBrowseObject));
            Debug.Assert(extenderName.IsEqualNoCase(ExtenderName));

            var reference     = (VSLangProj.Reference)extendeeObject;
            var hierarchyItem = _helper.FindReferenceItemId(reference);

            if (hierarchyItem == null)
            {
                Debug.WriteLine("{0}: null hierarchy item for '{1}'", ExtenderName, reference.Name);
                return(null);
            }

            if (reference.SourceProject != null)
            {
                return(new ProjectReferenceExtender(extenderSite, cookie, reference, (IVsBuildPropertyStorage)hierarchyItem.UIHierarchy, hierarchyItem.VsItemID));
            }

            return(new AssemblyReferenceExtender(extenderSite, cookie, reference, (IVsBuildPropertyStorage)hierarchyItem.UIHierarchy, hierarchyItem.VsItemID));
        }
コード例 #30
0
 public object GetExtender(string extenderCategory, string extenderName, object extendee, IExtenderSite site, int extenderCookie)
 {
     return(new BrowseObjectExtender(this.serviceProvider, (IVsBrowseObject)extendee, site, extenderCookie));
 }
コード例 #31
0
 public object GetExtender(string extenderCategory, string extenderName, object extendee, IExtenderSite site, int extenderCookie)
 {
     return new BrowseObjectExtender(this.serviceProvider, (IVsBrowseObject)extendee, site, extenderCookie);
 }
        public object GetExtender(string extenderCATID, string extenderName, object extendeeObject, IExtenderSite extenderSite, int cookie)
        {
            dynamic      extendee    = extendeeObject;
            string       fullPath    = extendee.FullPath;
            var          projectItem = _dte.Solution.FindProjectItem(fullPath);
            IVsSolution  solution    = (IVsSolution)_serviceProvider.GetService(typeof(SVsSolution));
            IVsHierarchy projectHierarchy;

            if (solution.GetProjectOfUniqueName(projectItem.ContainingProject.UniqueName, out projectHierarchy) != 0)
            {
                return(null);
            }
            uint itemId;

            if (projectHierarchy.ParseCanonicalName(fullPath, out itemId) != 0)
            {
                return(null);
            }

            return(new AutoT4Extender(projectItem, extenderSite, cookie));
        }
コード例 #33
0
ファイル: NodeProperties.cs プロジェクト: mimura1133/vstex
        object IInternalExtenderProvider.GetExtender(string extenderCATID, string extenderName, object extendeeObject,
            IExtenderSite extenderSite, int cookie)
        {
            var outerHierarchy = Node.ProjectMgr.InteropSafeIVsHierarchy as IInternalExtenderProvider;

            if (outerHierarchy != null)
            {
                return outerHierarchy.GetExtender(extenderCATID, extenderName, extendeeObject, extenderSite, cookie);
            }

            return null;
        }
コード例 #34
0
        public virtual object GetExtender(string ExtenderCATID, string ExtenderName, object ExtendeeObject, IExtenderSite ExtenderSite, int Cookie)
        {
            SingleFileGeneratorNodeExtenderProperties extender = null;

            if (CanExtend(ExtenderCATID, ExtenderName, ExtendeeObject))
            {
                FileNodeProperties fileNodeProperties = (FileNodeProperties)ExtendeeObject;
                FileNode           fileNode           = (FileNode)fileNodeProperties.Node;
                extender = new SingleFileGeneratorNodeExtenderProperties(fileNode);
            }

            return(extender);
        }