/// <summary> /// Initializes a new instance of the <see cref="SolutionReferencesListener"/> class. /// </summary> public SolutionListener(SolutionManagerService solutionManager, IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; _solutionManager = solutionManager; var solution = (Microsoft.VisualStudio.Shell.Interop.IVsSolution)serviceProvider.GetService(typeof(SVsSolution)); ErrorHandler.ThrowOnFailure(solution.AdviseSolutionEvents(this, out this._cookieIVsSolutionEvents)); }
/// <summary> /// Initializes a new instance of the <see cref="ProjectListener"/> class. /// </summary> /// <param name="project">The project.</param> public ProjectListener(SolutionManagerService solutionManager, ProjectNode project, EventHandler<ProjectChangedEventArg> callback) { Debug.Assert(project != null); _solutionManager = solutionManager; Name = project.UniqueName; VSProject prj = project.VSProject; if (prj == null) { _referencesEvents = null; return; } _referencesEvents = prj.Events.ReferencesEvents; _referencesEvents.ReferenceAdded += new _dispReferencesEvents_ReferenceAddedEventHandler(OnReferenceAdded); _referencesEvents.ReferenceChanged += new _dispReferencesEvents_ReferenceChangedEventHandler(OnReferenceChanged); _referencesEvents.ReferenceRemoved += new _dispReferencesEvents_ReferenceRemovedEventHandler(OnReferenceRemoved); _callback = callback; _enabled = true; }