public void DeleteValue (RegistryKey rkey, string name, bool throw_if_missing)
{
KeyHandler self = KeyHandler.Lookup (rkey, true);
if (self == null) {
// if key is marked for deletion, report success regardless of
// throw_if_missing
return;
}
if (throw_if_missing && !self.ValueExists (name))
throw new ArgumentException ("the given value does not exist");
self.RemoveValue (name);
}