// Calls the supplied delegate on each of the children of keyBase. private static EnableState IterateSubKeys(RegistryKey keyBase, string subKey, IterateHandler handler, bool localMachine) { RegistryKey key; string[] subKeyNames; EnableState state; key = keyBase.OpenSubKey(subKey, false); if (key == null) { return(EnableState.Error); } subKeyNames = key.GetSubKeyNames(); state = EnableState.Error; foreach (string name in subKeyNames) { switch (handler(key, name, localMachine)) { case EnableState.Error: break; case EnableState.None: if (localMachine) // For lm, want to return here right away. { return(EnableState.None); } // For current user, remember that we found no Enable value. if (state == EnableState.Error) { state = EnableState.None; } break; case EnableState.Disabled: state = EnableState.Disabled; break; case EnableState.Enabled: return(EnableState.Enabled); } } return(state); }
// Calls the supplied delegate on each of the children of keyBase. private static EnableState IterateSubKeys(RegistryKey keyBase, string subKey, IterateHandler handler, bool localMachine) { RegistryKey key; string[] subKeyNames; EnableState state; key = keyBase.OpenSubKey(subKey, false); if (key == null) return EnableState.Error; subKeyNames = key.GetSubKeyNames(); state = EnableState.Error; foreach (string name in subKeyNames) { switch (handler(key, name, localMachine)) { case EnableState.Error: break; case EnableState.None: if (localMachine) // For lm, want to return here right away. return EnableState.None; // For current user, remember that we found no Enable value. if (state == EnableState.Error) { state = EnableState.None; } break; case EnableState.Disabled: state = EnableState.Disabled; break; case EnableState.Enabled: return EnableState.Enabled; } } return state; }