RegEnumValue() private méthode

private RegEnumValue ( IntPtr keyBase, int index, StringBuilder nameBuffer, int &nameLength, IntPtr reserved, RegistryValueKind &type, IntPtr data, IntPtr dataLength ) : int
keyBase System.IntPtr
index int
nameBuffer StringBuilder
nameLength int
reserved System.IntPtr
type RegistryValueKind
data System.IntPtr
dataLength System.IntPtr
Résultat int
        public string[] GetValueNames(RegistryKey rkey)
        {
            IntPtr    handle    = Win32RegistryApi.GetHandle(rkey);
            ArrayList arrayList = new ArrayList();
            int       num       = 0;

            for (;;)
            {
                StringBuilder     stringBuilder     = new StringBuilder(1024);
                int               capacity          = stringBuilder.Capacity;
                RegistryValueKind registryValueKind = RegistryValueKind.Unknown;
                int               num2 = Win32RegistryApi.RegEnumValue(handle, num, stringBuilder, ref capacity, IntPtr.Zero, ref registryValueKind, IntPtr.Zero, IntPtr.Zero);
                if (num2 == 0 || num2 == 234)
                {
                    arrayList.Add(stringBuilder.ToString());
                }
                else
                {
                    if (num2 == 259)
                    {
                        break;
                    }
                    if (num2 == 1018)
                    {
                        goto Block_3;
                    }
                    this.GenerateException(num2);
                }
                num++;
            }
            return((string[])arrayList.ToArray(typeof(string)));

Block_3:
            throw RegistryKey.CreateMarkedForDeletionException();
        }
        public int ValueCount(RegistryKey rkey)
        {
            StringBuilder stringBuilder = new StringBuilder(1024);
            IntPtr        handle        = Win32RegistryApi.GetHandle(rkey);
            int           num           = 0;

            for (;;)
            {
                RegistryValueKind registryValueKind = RegistryValueKind.Unknown;
                int capacity = stringBuilder.Capacity;
                int num2     = Win32RegistryApi.RegEnumValue(handle, num, stringBuilder, ref capacity, IntPtr.Zero, ref registryValueKind, IntPtr.Zero, IntPtr.Zero);
                if (num2 == 1018)
                {
                    break;
                }
                if (num2 != 0 && num2 != 234)
                {
                    if (num2 == 259)
                    {
                        return(num);
                    }
                    this.GenerateException(num2);
                }
                num++;
            }
            throw RegistryKey.CreateMarkedForDeletionException();
        }