private VsProjectSpecialFilesManager CreateInstance(IVsProjectSpecialFiles specialFiles) { IUnconfiguredProjectVsServices projectVsServices = IUnconfiguredProjectVsServicesFactory.Implement(hierarchyCreator: () => (IVsHierarchy)specialFiles); return(new VsProjectSpecialFilesManager(projectVsServices)); }
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); }