private void SetupProperties(object obj) { if (obj is COMCLSIDEntry) { SetupClsidEntry((COMCLSIDEntry)obj); } if (obj is COMProgIDEntry) { COMProgIDEntry entry = (COMProgIDEntry)obj; COMCLSIDEntry clsid_entry = m_registry.MapClsidToEntry(entry.Clsid); SetupClsidEntry(clsid_entry); } if (obj is COMAppIDEntry) { SetupAppIdEntry((COMAppIDEntry)obj); } if (obj is COMInterfaceEntry) { SetupInterfaceEntry((COMInterfaceEntry)obj); } if (obj is COMTypeLibVersionEntry) { SetupTypeLibVersionEntry((COMTypeLibVersionEntry)obj); } if (obj is COMProcessEntry) { SetupProcessEntry((COMProcessEntry)obj); } if (obj is COMIPIDEntry) { SetupIPIDEntry((COMIPIDEntry)obj); } if (obj is COMRuntimeClassEntry) { SetupRuntimeClassEntry((COMRuntimeClassEntry)obj); } if (obj is COMRuntimeServerEntry) { SetupRuntimeServerEntry((COMRuntimeServerEntry)obj); } }
/// <summary> /// Build a ProgID entry tooltip /// </summary> /// <param name="ent">The ProgID entry</param> /// <returns>The ProgID tooltip</returns> private string BuildProgIDToolTip(COMProgIDEntry ent) { string strRet; COMCLSIDEntry entry = m_reg.MapClsidToEntry(ent.Clsid); if (entry != null) { strRet = BuildCLSIDToolTip(entry); } else { strRet = String.Format("CLSID: {0}\n", ent.Clsid.ToString("B")); } return strRet; }
private void LoadProgIDs(RegistryKey rootKey) { m_progids = new SortedDictionary<string, COMProgIDEntry>(); m_progidsbyclsid = new Dictionary<Guid, List<COMProgIDEntry>>(); string[] subkeys = rootKey.GetSubKeyNames(); foreach (string key in subkeys) { try { using (RegistryKey regKey = rootKey.OpenSubKey(key)) { Guid clsid = COMUtilities.ReadGuidFromKey(regKey, "CLSID", null); if (clsid != Guid.Empty) { COMProgIDEntry entry = new COMProgIDEntry(key, clsid, regKey); m_progids.Add(key, entry); if (!m_progidsbyclsid.ContainsKey(clsid)) { m_progidsbyclsid[clsid] = new List<COMProgIDEntry>(); } m_progidsbyclsid[clsid].Add(entry); } } } catch (FormatException e) { System.Diagnostics.Debug.WriteLine(e.ToString()); } } }