Пример #1
0
        private VsProjectSpecialFilesManager CreateInstance(IVsProjectSpecialFiles specialFiles)
        {
            IUnconfiguredProjectVsServices projectVsServices = IUnconfiguredProjectVsServicesFactory.Implement(hierarchyCreator: () => (IVsHierarchy)specialFiles);

            return(new VsProjectSpecialFilesManager(projectVsServices));
        }
Пример #2
0
        protected override void SetInnerProject(IntPtr innerIUnknown)
        {
            // 
            // This was changed to support VS2012 - The FlavoredProject base class we were using
            // was throwing a COM exception, so we switched to use the newer FlavoredProjectBase class
            // which uses an IntPtr instead of a managed object for this class.  The following method
            // converts the IUnknown IntPtr into a managed object from which we can convert into the 
            // following interfaces.
            //
            object inner = Marshal.GetUniqueObjectForIUnknown(innerIUnknown);

            m_innerIVsProject = inner as IVsProject;
            m_innerIVsProjectBuildSystem = inner as IVsProjectBuildSystem;
            m_innerIVsHierarchy = inner as IVsHierarchy;
            m_innerIVsUIHierarchy = inner as IVsUIHierarchy;
            m_innerSingleFileGeneratorFactory = inner as IVsSingleFileGeneratorFactory;
            m_innerIVsBuildPropertyStorage = inner as IVsBuildPropertyStorage;
            m_innerProjectSpecialFiles = inner as IVsProjectSpecialFiles;

            Debug.Assert(m_innerIVsProject                 != null);
            Debug.Assert(m_innerIVsProjectBuildSystem      != null);
            Debug.Assert(m_innerIVsHierarchy               != null);
            Debug.Assert(m_innerIVsUIHierarchy             != null);
            Debug.Assert(m_innerSingleFileGeneratorFactory != null);
            Debug.Assert(m_innerIVsBuildPropertyStorage    != null);
            Debug.Assert(m_innerProjectSpecialFiles        != null);

            if (this.serviceProvider == null)
            {
                this.serviceProvider = (System.IServiceProvider)this.m_package;
            }

            base.SetInnerProject(innerIUnknown);
        }