/// <summary>
        /// Foreach Enumerator
        /// </summary>
        /// <returns></returns>
        public IEnumerator GetEnumerator()
        {
            int enumCount = this.Count;

            TypeLibRegistryKey[] returnKeys = new TypeLibRegistryKey[enumCount];

            for (int i = 0; i < enumCount; i++)
            {
                returnKeys[i] = this[i];
            }

            for (int i = 0; i < returnKeys.Length; i++)
            {
                yield return(returnKeys[i]);
            }
        }
 public TypeLibRegistryKey this[string Name]
 {
     get
     {
         int iCount = Count;
         for (int i = 1; i <= iCount; i++)
         {
             TypeLibRegistryKey entry = this[i - 1];
             if (Name.Equals(entry.Name, StringComparison.CurrentCultureIgnoreCase) == true)
             {
                 return(entry);
             }
         }
         return(null);
     }
 }
Пример #3
0
        public static string GetTypeLibDescription(string majorVersion, string minorVersion, string guid)
        {
            string             description = "<NoDescription>";
            string             version     = string.Format("{0}.{1}", majorVersion, minorVersion);
            string             regKey      = string.Format("TypeLib\\{0}", guid);
            TypeLibRegistryKey key         = new TypeLibRegistryKey(regKey);

            foreach (TypeLibRegistryKey itemKey in key.Keys)
            {
                if ((itemKey.Name == version) && (itemKey.Entries.Count > 0))
                {
                    description = (string)itemKey.Entries[0].Value;
                    break;
                }
            }

            return(description);
        }
        internal TypeLibRegistryKeys(string Key)
        {
            _key  = Key;
            _list = new List <TypeLibRegistryKey>();

            RegistryKey rk = Registry.ClassesRoot.OpenSubKey(_key, false);


            if (null != rk)
            {
                string[] Subkeys = rk.GetSubKeyNames();
                foreach (string subKey in Subkeys)
                {
                    TypeLibRegistryKey newKey = new TypeLibRegistryKey(_key + "\\" + subKey);
                    _list.Add(newKey);
                }
                rk.Close();
            }
        }