Ejemplo n.º 1
0
        /// <summary>
        /// Writes the particular data to the persistent storage area.
        /// </summary>
        public static bool Save(PersistentStorageData data)
        {
            try
            {
                RegistryKey key = OpenKey(data.Name, true);

                // store the data:
                if (key != null)
                {
                    // remove deleted keys:
                    foreach (string k in data.Removed)
                    {
                        key.DeleteValue(k, false);
                    }

                    // set values for the others:
                    foreach (string k in data.KeysStrings)
                    {
                        key.SetValue(k, data.GetString(k), RegistryValueKind.String);
                    }

                    foreach (string k in data.KeysMultiString)
                    {
                        key.SetValue(k, data.GetMultiString(k), RegistryValueKind.MultiString);
                    }

                    foreach (string k in data.KeysBytes)
                    {
                        key.SetValue(k, data.GetByte(k), RegistryValueKind.Binary);
                    }

                    foreach (string k in data.KeysUInts)
                    {
                        key.SetValue(k, data.GetUInt(k), RegistryValueKind.DWord);
                    }
                }

                CloseKey(key);
                return(true);
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.Message);
                Trace.WriteLine(ex.StackTrace);
                return(false);
            }
        }