Exemplo n.º 1
0
        /// <summary>
        /// Load interface list into list box
        /// </summary>
        private void LoadInterfaces()
        {
            listViewInterfaces.Columns.Add("Name");
            listViewInterfaces.Columns.Add("IID");
            listViewInterfaces.Columns.Add("Viewer");

            bool has_dispatch      = false;
            bool has_olecontrol    = false;
            bool has_persiststream = false;
            bool has_classfactory  = false;

            foreach (COMInterfaceEntry ent in m_interfaces)
            {
                ListViewItem item = listViewInterfaces.Items.Add(ent.Name);
                item.Tag = ent;
                item.SubItems.Add(ent.Iid.FormatGuid());

                InterfaceViewers.ITypeViewerFactory factory = InterfaceViewers.InterfaceViewers.GetInterfaceViewer(ent.Iid);
                if (factory != null)
                {
                    item.SubItems.Add("Yes");
                }
                else
                {
                    item.SubItems.Add("No");
                }

                if (ent.IsDispatch)
                {
                    has_dispatch = true;
                }
                else if (ent.IsOleControl)
                {
                    has_olecontrol = true;
                }
                else if (ent.IsPersistStream)
                {
                    has_persiststream = true;
                }
                else if (ent.IsClassFactory)
                {
                    has_classfactory = true;
                }
            }

            openDispatchToolStripMenuItem.Visible = has_dispatch;
            openOLEToolStripMenuItem.Visible      = has_olecontrol;
            saveStreamToolStripMenuItem.Visible   = has_persiststream;
            createToolStripMenuItem.Visible       = has_classfactory;

            listViewInterfaces.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
            listViewInterfaces.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Load interface list into list box
        /// </summary>
        private void LoadInterfaces()
        {
            listViewInterfaces.Columns.Add("Name");
            listViewInterfaces.Columns.Add("IID");
            listViewInterfaces.Columns.Add("Viewer");

            foreach (COMInterfaceEntry ent in m_interfaces)
            {
                ListViewItem item = listViewInterfaces.Items.Add(ent.Name);
                item.Tag = ent;
                item.SubItems.Add(ent.Iid.ToString("B"));

                InterfaceViewers.ITypeViewerFactory factory = InterfaceViewers.InterfaceViewers.GetInterfaceViewer(ent.Iid);
                if (factory != null)
                {
                    item.SubItems.Add("Yes");
                }
                else
                {
                    item.SubItems.Add("No");
                }

                if (ent.IsDispatch)
                {
                    btnDispatch.Enabled = true;
                }
                else if (ent.IsOleControl)
                {
                    btnOleContainer.Enabled = true;
                }
                else if (ent.IsPersistStream)
                {
                    btnSaveStream.Enabled = true;
                }
                else if (ent.IsMarshal)
                {
                    btnMarshal.Enabled = true;
                }
                else if (ent.IsClassFactory)
                {
                    btnCreate.Enabled = true;
                }
            }

            listViewInterfaces.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
            listViewInterfaces.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
        }
Exemplo n.º 3
0
        private void listViewInterfaces_DoubleClick(object sender, EventArgs e)
        {
            if (listViewInterfaces.SelectedItems.Count > 0)
            {
                COMInterfaceEntry ent = (COMInterfaceEntry)listViewInterfaces.SelectedItems[0].Tag;
                InterfaceViewers.ITypeViewerFactory factory = InterfaceViewers.InterfaceViewers.GetInterfaceViewer(ent.Iid);

                try
                {
                    if (factory != null)
                    {
                        Control frm = factory.CreateInstance(m_registry, m_objName, m_pEntry);
                        if ((frm != null) && !frm.IsDisposed)
                        {
                            Program.GetMainForm().HostControl(frm);
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }