示例#1
0
        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;
            }
        }
示例#2
0
        /// <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);
            }
        }