public void RegisterHierarchy(IVsHierarchy hierarchy) { if ((null == hierarchy) || hierarchies.ContainsKey(hierarchy)) { return; } if (0 == objectManagerCookie) { IVsObjectManager2 objManager = provider.GetService(typeof(SVsObjectManager)) as IVsObjectManager2; if (null == objManager) { return; } Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure( objManager.RegisterSimpleLibrary(library, out objectManagerCookie)); } HierarchyListener listener = new HierarchyListener(hierarchy); listener.OnAddItem += new EventHandler <HierarchyEventArgs>(OnNewFile); listener.OnDeleteItem += new EventHandler <HierarchyEventArgs>(OnDeleteFile); listener.StartListening(true); hierarchies.Add(hierarchy, listener); RegisterForRDTEvents(); }