Merge pull request #1057 from lextm/master
[mono.git] / mcs / class / corlib / Microsoft.Win32 / ChangeLog
index db308b5633b4ab1f450a6a7c842f856f1e9eacda..272e0317446a3137b97dcff4af46f44b4879c71e 100644 (file)
@@ -1,3 +1,240 @@
+2010-07-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * UnixRegistryApi.cs: From the static ctor of KeyHandler remove the
+       volatile keys directory if the last registered boot time has changed.
+       This way we *actually* have our volatile keys removed if the system as
+       rebooted.
+
+2010-07-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * UnixRegistryApi.cs: Remove the in-memmory approach to volatile keys,
+       as it becomes trickier to handle deep hiearchies, subkeys and values
+       in some scenarios. So for now we keep them in disk, we in an
+       alternative directory, so we can cleam them properly later.
+
+2010-07-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * RegistryKey.cs: Call the proper UnixRegistryApi.CreateSubKey overload.
+       * UnixRegistryApi.cs: Implement basic support for volatile keys, by
+       storing them in memory instead of disk. We lack the support to have
+       them available to other processes - and given the fact that a
+       workaround would be gross, just don't implement that now.
+
+2010-07-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * RegistryKey.cs: Add 4.0 CreateSubKey overloads taking a RegistryOptions
+       parameter.
+       * IRegistryApi.cs: Add a new overload for CreateSubKey for the 4.0
+       profile. Not nice, but better than to change the signature for each
+       profile.
+       * Win32RegistryApi.cs: Properly recognize a handle where a volatile
+       key is requested.
+       * UnixRegistryApi.cs: Stubbed.
+
+2010-07-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * Win32RegistryApi.cs: Use RegCreateKeyEx instead of RegCreateKey, as
+       we need it to further support both the missing bits and the 4.0
+       features.
+
+2010-02-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * UnixRegistryApi.cs: When retrieving the registry keys from file in a
+       unix system, if the value returned by a SecurityElement is null,
+       use String.Empty, since at this point we know that this registry key
+       *exists* and *cannot* have a null value, as specified in the public
+       api.
+       Fixes #543206.
+
+2009-11-21  Miguel de Icaza  <miguel@novell.com>
+
+       * RegistryKey.cs: Implement a GetValueKind and a handful of
+       methods. 
+
+2009-04-25  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * *.cs: Exclude the files for the NET_2_1 profile, since they are
+       unneeded and adds a bunch (23) [SecuritySafeCritical] to audit for
+       Moonlight
+
+2008-02-25  Robert Jordan  <robertj@gmx.net>
+
+       * Win32RegistryApi.cs (ToString): Don't emit the handle value
+       under NET_2_0.
+       See http://msdn2.microsoft.com/en-us/netframework/aa497241.aspx.
+
+2008-02-01  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * RegistryKey.cs: Added missing checks on length of subkey and value
+       names. On 2.0 profile, allow subkey <= 255 characters. Modified
+       ArgumentNullException argument names to match MS.
+       * UnixRegistryApi.cs: In SetValue (string, object, RegistryValueKind),
+       use a zero-length string for name if it is null. In OpenSubKey,
+       respect value of writable argument when creating well-known subkey.
+       Fixes bug #357883. Removed argument names for ArgumentException's to
+       match MS.
+
+2008-01-15  Zoltan Varga  <vargaz@gmail.com>
+
+       * RegistryKey.cs: Fix some argument names to be consistent with MS.
+
+2007-10-13  kevin.fitzgerald@soarce.us
+
+       * UnixRegistryApi.cs: Escape the strings before passing them to
+       SecurityElement.   This fixes bug #322839
+
+2007-08-30  Marek Habersack  <mhabersack@novell.com>
+
+       * UnixRegistryApi.cs: properly retrieve values of type
+       'bytearray'.
+
+2007-08-13  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * RegistryKeyPermissionCheck.cs: Do not include in 1.0 profile.
+       Removed extra using directive and empty lines.
+
+2007-05-01  Dick Porter  <dick@ximian.com>
+
+       * RegistryKeyPermissionCheck.cs: Not serializable
+
+2007-04-30  Dick Porter  <dick@ximian.com>
+
+       * Registry.cs: 
+       * RegistryHive.cs: 
+       * RegistryKey.cs: 
+       * RegistryValueKind.cs: 
+       * RegistryKeyPermissionCheck.cs: Updated for 2.0 profile
+
+2006-10-29  Miguel de Icaza  <miguel@novell.com>
+
+       * UnixRegistryApi.cs (KeyHandler.MachineStore): Add support for
+       loading/storing values from the system registry, instead of having
+       the system ones be user-based. 
+
+       (KeyHandler, Load): turn IO exceptions into Security exceptions.
+
+2006-09-03  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * IRegistryApi.cs: Added OpenRemoteBaseKey method.
+       * Win32ResultCode.cs: Added code for win32 error 53.
+       * RegistryKey.cs: Implemented support for OpenRemoteBaseKEy on
+       Windows. To achieve this, the handle of the remote hive must be
+       stored separately from the RegistryHive value. Removed isRoot field, as
+       we now determine whether we're a root key (hive) by checking if hive
+       is not null. Added internal ctor for registry hives that takes a 
+       RegistryHive, a key handle and a bool to indicate whether its a remote
+       hive. Renamed Data field to handle and added internal property to 
+       access it. Throw ObjectDisposedException in ToString if key is
+       closed/disposed. Added Hive property, which is used in UnixRegistryApi.
+       Added GetHiveName method which translates a RegistryHive value to its
+       (key) name.
+       * Win32RegistryApi.cs: Added pinvoke for RegConnectRegistry. GetHandle
+       no longer needs to know whether the key refers to a hive (base key) 
+       or not. Implemented OpenRemoteBaseKey.
+       * UnixRegistryApi.cs: Added OpenRemoteBaseKey implementation which
+       always throws NotImplementedException.
+       * Registry.cs: The key name of the base key no longer needs to be 
+       passed to the ctor, as it's looked up in the ctor itself. This avoids
+       having a different logical for local or remote base keys.
+
+2006-08-23  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * Win32RegistryApi.cs: Use a StringBuilder instead of byte [] for
+       RegEnumKey. Fixed issue in GetSubKeyNames where buffer was not cleared
+       while iterating over subkeys.
+
+2006-08-20  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * RegistryValueOptions.cs: Add the real one.
+
+2006-08-20  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * RegistryValueOptions.cs : build fix, easier than reverting all.
+
+2006-08-20  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * IRegistryApi.cs: Modified GetValue to take RegistryValueOptions enum
+       and removed obsolete return_default_value argument.
+       * RegistryKey.cs: Added missing ComVisible attribute on SetValue.
+       Use new GetValue method on IRegistryApi that takes RegistryValueOptions
+       enum. Added GetValue overload that takes RegistryValueOptions (2.0).
+       * Win32RegistryApi.cs: Modified GetValue to take RegistryValueOptions
+       enum, and removed obsolete returnDefaultValue argument. Added support
+       for ExpandString value type. Do no expand if DoNotExpand... is set.
+       * UnixRegistryApi.cs: Modified KeyHandler.GetValue to take
+       RegistryValueOptions enum, and do no expand environment variables in
+       an ExpandString if DoNotExpandEnvironmentNames is set. Modified
+       UnixRegistryApi.GetValue to take RegistryValueOptions enum, and 
+       removed obsolete return_default_value argument.
+
+2006-08-14  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * UnixRegistryApi.cs: Undo change for new eventlog implementation that
+       was not rolled back earlier this week, and which does not make sense
+       without that implementation anyway.
+
+2006-08-14  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * Win32ResultCode.cs: Added error code for attempting to perform an
+       operation on registry key that is marked for deletion.
+       * RegistryKey.cs: Keep writable state. Automatically flush changes to
+       disk when closing key (to match MS). Allow values to be set on root
+       keys. Throw UnauthorizedAccessException when attempting to set/delete
+       value or create/delete sub key on registry key that is openen 
+       read-only. Fixed DecodeString to only strip trailing nullchars (as
+       documented).
+       * Win32RegistryApi.cs: For a key that is marked for deletion, return
+       null when attempting to get a value of that key (and no default value
+       was specified) or open a subkey. Throw an IOException when attempting
+       to perform the following operation on a key that is marked for
+       deletion:
+               1) set value on key
+               2) obtain SubKeyCount
+               3) obtain ValueCount
+               4) create a sub key
+               5) obtain value names
+       and ignore deleting a value. Ignore flushing changes of a key and
+       closing a when the key is closed.
+       * UnixRegistryApi.cs: Maintain handler cache per directory instead of
+       caching registry keys. This allows both a single key to be in memory
+       in both read-only and read-write key configuration, while sharing the
+       KeyHandler. Use case-insensitive hashtable for mapping directory to
+       KeyHandler. Added support for keys that have been marked for deletion
+       by another operation (eg. DeleteSubKeyTree). Allow different file store
+       for machine-level and user-level hives (but have them use the same
+       file store, needs further discussion). Allow KeyHandler failure when
+       create directory, or saving values file to bubble up. Do not save
+       values file when key is marked for deletion. Encapsulate access to
+       values collection. When setting value with null name, use zero-length
+       name instead. Treat key name case-insensitive in DeleteKey to match
+       OpenSubKey.
+
+2006-08-14  Miguel de Icaza  <miguel@novell.com>
+
+       * RegistryValueKind.cs: Make this public in 2.0, and rename from
+       previous version.
+
+       * Win32RegistryApi.cs: Include version to check for version;
+       Eliminate old internal enum, and instead use the new 2.0 enum.
+
+       * UnixRegistryApi.cs: Add support for typed versions of values.
+
+       Add support for ExpandString.
+
+       * Registry.cs (SetValue): implement version with type arguments.
+
+2006-08-13  Miguel de Icaza  <miguel@novell.com>
+
+       * Registry.cs (SetValue, GetValue): implement.
+
+       * UnixRegistryApi.cs (KeyHandler.LoadKey, KeyHandler.Save): Add
+       support for qwords.
+
+       (KeyHandler.Save): Do not save the entries if they have been
+       deleted/dropped.   Fixes a crash.
+
+       (UnixRegistryApi.DeleteKey): bug fix, call ToUnix on the keyname.
+
 2006-08-12  Gert Driesen  <drieseng@users.sourceforge.net>
 
        * Registry.cs: Fixed copy/paste bug.
 
        * Registry.cs: Class should be sealed and have a private default ctor.
 
-2002-11-28  Alejandro Sánchez Acosta  <raciel@es.gnu.org>
+2002-11-28  Alejandro Sánchez Acosta  <raciel@es.gnu.org>
 
        * Registry.cs: Added missed field.