public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) { addInInstance = (AddIn)addInInst; applicationObject = (DTE2)addInInstance.DTE; switch (connectMode) { case ext_ConnectMode.ext_cm_Startup: Commands2 commands = (Commands2)applicationObject.Commands; CommandBar menuBarCommandBar = ((CommandBars)applicationObject.CommandBars)["MenuBar"]; CommandBar standardCommandBar = ((CommandBars)applicationObject.CommandBars)["Standard"]; this.openViewerButton = AddCommandBarButton(commands, standardCommandBar, "OpenInternalsViewer", "Open Internals Viewer", Properties.Resources.allocationMapIcon, Properties.Resources.allocationMapIconMask); CommandBarPopup commandBarPopup = (CommandBarPopup)menuBarCommandBar.Controls.Add(MsoControlType.msoControlPopup, System.Type.Missing, System.Type.Missing, 8, Properties.Resources.AppWindow); commandBarPopup.Caption = "Internals Viewer"; AddCommandBarPopup(commands, commandBarPopup, "AllocationMap", "Allocation Map", "Show the Allocation Map", Properties.Resources.allocationMapIcon, Properties.Resources.allocationMapIconMask); AddCommandBarPopup(commands, commandBarPopup, "TransactionLog", "Display Transaction Log", "Include the Transaction Log with query results", Properties.Resources.TransactionLogIcon, Properties.Resources.allocationMapIconMask); IObjectExplorerEventProvider provider = ServiceCache.GetObjectExplorer().GetService(typeof(IObjectExplorerEventProvider)) as IObjectExplorerEventProvider; provider.NodesRefreshed += new NodesChangedEventHandler(Provider_NodesRefreshed); provider.NodesAdded += new NodesChangedEventHandler(Provider_NodesRefreshed); provider.BufferedNodesAdded += new NodesChangedEventHandler(Provider_NodesRefreshed); this.windowManager = new WindowManager(applicationObject, addInInstance); this.queryEditorExtender = new QueryEditorExtender(applicationObject, this.windowManager); break; } }
/// <summary> /// Gets the object explorer selected nodes. /// </summary> /// <returns></returns> private INodeInformation[] GetObjectExplorerSelectedNodes() { IObjectExplorerService objExplorer = ServiceCache.GetObjectExplorer(); int arraySize; INodeInformation[] nodes; objExplorer.GetSelectedNodes(out arraySize, out nodes); return(nodes); }
/// <summary> /// Gets the object explorer tree view. /// </summary> /// <returns></returns> private TreeView GetObjectExplorerTreeView() { Type t = ServiceCache.GetObjectExplorer().GetType(); FieldInfo field = t.GetField("tree", BindingFlags.NonPublic | BindingFlags.Instance); if (field != null) { return((TreeView)field.GetValue(ServiceCache.GetObjectExplorer())); } else { return(null); } }