RegEnumKey() private méthode

private RegEnumKey ( IntPtr keyBase, int index, StringBuilder nameBuffer, int bufferLength ) : int
keyBase System.IntPtr
index int
nameBuffer StringBuilder
bufferLength int
Résultat int
        public string[] GetSubKeyNames(RegistryKey rkey)
        {
            IntPtr        handle        = Win32RegistryApi.GetHandle(rkey);
            StringBuilder stringBuilder = new StringBuilder(1024);
            ArrayList     arrayList     = new ArrayList();
            int           num           = 0;

            for (;;)
            {
                int num2 = Win32RegistryApi.RegEnumKey(handle, num, stringBuilder, stringBuilder.Capacity);
                if (num2 == 0)
                {
                    arrayList.Add(stringBuilder.ToString());
                    stringBuilder.Length = 0;
                }
                else
                {
                    if (num2 == 259)
                    {
                        break;
                    }
                    this.GenerateException(num2);
                }
                num++;
            }
            return((string[])arrayList.ToArray(typeof(string)));
        }
        public int SubKeyCount(RegistryKey rkey)
        {
            StringBuilder stringBuilder = new StringBuilder(1024);
            IntPtr        handle        = Win32RegistryApi.GetHandle(rkey);
            int           num           = 0;

            for (;;)
            {
                int num2 = Win32RegistryApi.RegEnumKey(handle, num, stringBuilder, stringBuilder.Capacity);
                if (num2 == 1018)
                {
                    break;
                }
                if (num2 != 0)
                {
                    if (num2 == 259)
                    {
                        return(num);
                    }
                    this.GenerateException(num2);
                }
                num++;
            }
            throw RegistryKey.CreateMarkedForDeletionException();
        }