private RegEnumValue ( |
||
keyBase | ||
index | int | |
nameBuffer | StringBuilder | |
nameLength | int | |
reserved | ||
type | RegistryValueKind | |
data | ||
dataLength | ||
리턴 | 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(); }