private void contextMenuStrip_Opening(object sender, CancelEventArgs e)
{
TreeNode node = treeComRegistry.SelectedNode;
if ((node != null) && (node.Tag != null))
{
contextMenuStrip.Items.Clear();
contextMenuStrip.Items.Add(copyGUIDToolStripMenuItem);
contextMenuStrip.Items.Add(copyGUIDHexStringToolStripMenuItem);
contextMenuStrip.Items.Add(copyGUIDCStructureToolStripMenuItem);
if ((node.Tag is COMCLSIDEntry) || (node.Tag is COMProgIDEntry))
{
contextMenuStrip.Items.Add(copyObjectTagToolStripMenuItem);
contextMenuStrip.Items.Add(createInstanceToolStripMenuItem);
contextMenuStrip.Items.Add(refreshInterfacesToolStripMenuItem);
COMProgIDEntry progid = node.Tag as COMProgIDEntry;
COMCLSIDEntry clsid = node.Tag as COMCLSIDEntry;
if (progid != null)
{
clsid = m_reg.MapClsidToEntry(progid.Clsid);
}
if (clsid != null && m_reg.Typelibs.ContainsKey(clsid.TypeLib))
{
contextMenuStrip.Items.Add(viewTypeLibraryToolStripMenuItem);
}
}
if (node.Tag is COMTypeLibVersionEntry)
{
contextMenuStrip.Items.Add(viewTypeLibraryToolStripMenuItem);
}
if (PropertiesControl.SupportsProperties(node.Tag))
{
contextMenuStrip.Items.Add(propertiesToolStripMenuItem);
}
}
else
{
e.Cancel = true;
}
}