1 2006-09-03 Gert Driesen <drieseng@users.sourceforge.net>
3 * IRegistryApi.cs: Added OpenRemoteBaseKey method.
4 * Win32ResultCode.cs: Added code for win32 error 53.
5 * RegistryKey.cs: Implemented support for OpenRemoteBaseKEy on
6 Windows. To achieve this, the handle of the remote hive must be
7 stored separately from the RegistryHive value. Removed isRoot field, as
8 we now determine whether we're a root key (hive) by checking if hive
9 is not null. Added internal ctor for registry hives that takes a
10 RegistryHive, a key handle and a bool to indicate whether its a remote
11 hive. Renamed Data field to handle and added internal property to
12 access it. Throw ObjectDisposedException in ToString if key is
13 closed/disposed. Added Hive property, which is used in UnixRegistryApi.
14 Added GetHiveName method which translates a RegistryHive value to its
16 * Win32RegistryApi.cs: Added pinvoke for RegConnectRegistry. GetHandle
17 no longer needs to know whether the key refers to a hive (base key)
18 or not. Implemented OpenRemoteBaseKey.
19 * UnixRegistryApi.cs: Added OpenRemoteBaseKey implementation which
20 always throws NotImplementedException.
21 * Registry.cs: The key name of the base key no longer needs to be
22 passed to the ctor, as it's looked up in the ctor itself. This avoids
23 having a different logical for local or remote base keys.
25 2006-08-23 Gert Driesen <drieseng@users.sourceforge.net>
27 * Win32RegistryApi.cs: Use a StringBuilder instead of byte [] for
28 RegEnumKey. Fixed issue in GetSubKeyNames where buffer was not cleared
29 while iterating over subkeys.
31 2006-08-20 Gert Driesen <drieseng@users.sourceforge.net>
33 * RegistryValueOptions.cs: Add the real one.
35 2006-08-20 Atsushi Enomoto <atsushi@ximian.com>
37 * RegistryValueOptions.cs : build fix, easier than reverting all.
39 2006-08-20 Gert Driesen <drieseng@users.sourceforge.net>
41 * IRegistryApi.cs: Modified GetValue to take RegistryValueOptions enum
42 and removed obsolete return_default_value argument.
43 * RegistryKey.cs: Added missing ComVisible attribute on SetValue.
44 Use new GetValue method on IRegistryApi that takes RegistryValueOptions
45 enum. Added GetValue overload that takes RegistryValueOptions (2.0).
46 * Win32RegistryApi.cs: Modified GetValue to take RegistryValueOptions
47 enum, and removed obsolete returnDefaultValue argument. Added support
48 for ExpandString value type. Do no expand if DoNotExpand... is set.
49 * UnixRegistryApi.cs: Modified KeyHandler.GetValue to take
50 RegistryValueOptions enum, and do no expand environment variables in
51 an ExpandString if DoNotExpandEnvironmentNames is set. Modified
52 UnixRegistryApi.GetValue to take RegistryValueOptions enum, and
53 removed obsolete return_default_value argument.
55 2006-08-14 Gert Driesen <drieseng@users.sourceforge.net>
57 * UnixRegistryApi.cs: Undo change for new eventlog implementation that
58 was not rolled back earlier this week, and which does not make sense
59 without that implementation anyway.
61 2006-08-14 Gert Driesen <drieseng@users.sourceforge.net>
63 * Win32ResultCode.cs: Added error code for attempting to perform an
64 operation on registry key that is marked for deletion.
65 * RegistryKey.cs: Keep writable state. Automatically flush changes to
66 disk when closing key (to match MS). Allow values to be set on root
67 keys. Throw UnauthorizedAccessException when attempting to set/delete
68 value or create/delete sub key on registry key that is openen
69 read-only. Fixed DecodeString to only strip trailing nullchars (as
71 * Win32RegistryApi.cs: For a key that is marked for deletion, return
72 null when attempting to get a value of that key (and no default value
73 was specified) or open a subkey. Throw an IOException when attempting
74 to perform the following operation on a key that is marked for
81 and ignore deleting a value. Ignore flushing changes of a key and
82 closing a when the key is closed.
83 * UnixRegistryApi.cs: Maintain handler cache per directory instead of
84 caching registry keys. This allows both a single key to be in memory
85 in both read-only and read-write key configuration, while sharing the
86 KeyHandler. Use case-insensitive hashtable for mapping directory to
87 KeyHandler. Added support for keys that have been marked for deletion
88 by another operation (eg. DeleteSubKeyTree). Allow different file store
89 for machine-level and user-level hives (but have them use the same
90 file store, needs further discussion). Allow KeyHandler failure when
91 create directory, or saving values file to bubble up. Do not save
92 values file when key is marked for deletion. Encapsulate access to
93 values collection. When setting value with null name, use zero-length
94 name instead. Treat key name case-insensitive in DeleteKey to match
97 2006-08-14 Miguel de Icaza <miguel@novell.com>
99 * RegistryValueKind.cs: Make this public in 2.0, and rename from
102 * Win32RegistryApi.cs: Include version to check for version;
103 Eliminate old internal enum, and instead use the new 2.0 enum.
105 * UnixRegistryApi.cs: Add support for typed versions of values.
107 Add support for ExpandString.
109 * Registry.cs (SetValue): implement version with type arguments.
111 2006-08-13 Miguel de Icaza <miguel@novell.com>
113 * Registry.cs (SetValue, GetValue): implement.
115 * UnixRegistryApi.cs (KeyHandler.LoadKey, KeyHandler.Save): Add
118 (KeyHandler.Save): Do not save the entries if they have been
119 deleted/dropped. Fixes a crash.
121 (UnixRegistryApi.DeleteKey): bug fix, call ToUnix on the keyname.
123 2006-08-12 Gert Driesen <drieseng@users.sourceforge.net>
125 * Registry.cs: Fixed copy/paste bug.
127 2006-08-11 Gert Driesen <drieseng@users.sourceforge.net>
129 * UnixRegistryApi.cs: Consider HKLM\SYSTEM\CurrentControlSet\Services\
130 EventLog a wellknown key. Required for new EventLog implementation.
131 Added RegistryStore property.
133 2006-06-06 Miguel de Icaza <miguel@novell.com>
135 * UnixRegistryApi.cs: Do not crash if there are no values stored.
137 2006-05-28 Gert Driesen <drieseng@users.sourceforge.net>
139 * UnixRegistryApi.cs: GetSubKeyNames returns only names of subkeys,
140 not the qualified name. Fixes bug #78519.
142 2006-04-20 Gert Driesen <drieseng@users.sourceforge.net>
144 * UnixRegistryApi.cs: In KeyHandler.SetValue, immediately convert
145 instances of non-native registry types (meaning int, string, string[]
146 or byte[]) to string. This avoids returning an instance of a non-native
147 registry type in calls to UnixRegistryApi.GetValue. Allow instances of
148 non-native registry types in UnixRegistryApi.SetValue. Fixes bug #78132.
150 2006-04-18 Gert Driesen <drieseng@users.sourceforge.net>
152 * UnixRegistryApi.cs: Only consider the "software" subkey a well-known
153 key if the parent is either HKEY_USERS or HKEY_LOCAL_MACHINE.
155 2006-04-15 Robert Jordan <robertj@gmx.net>
157 * UnixRegistryApi.cs (DeleteValue): Avoid crash, fixes bug
158 #77772. Patch reapplied, since r57881 was not applied correctly.
160 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
162 * UnixRegistryApi.cs: create well-known keys when trying to open them.
164 2006-03-12 Robert Jordan <robertj@gmx.net>
166 * UnixRegistryApi.cs (DeleteValue): Avoid crash, fixes bug
169 2006-01-14 Robert Jordan <robertj@gmx.net>
171 * RegistryKey.cs: Added internal IsRoot accessor.
172 * Win32RegistryApi.cs: Fixed access to RegistryKey.Data.
173 Fixes bug #77212. Thanks to Don Edvalson (don@edvalson.net)
174 for spotting this out.
176 2005-12-02 Atsushi Enomoto <atsushi@ximian.com>
178 * Win32RegistryApi.cs : fixed invalid cast. Now mono is not to blame
179 for not being able to run NAnt on Windows.
181 2005-11-12 Miguel de Icaza <miguel@novell.com>
183 * RegistryKey.cs: Add support for a Registry on Unix based on
184 files under ~/.mono/registry.
186 Vastly refactored the code, reworked the interface between the
187 frontend and the backends.
189 If "RegistryKey" was not sealed, things could have been a lot
192 2005-01-31 mei (mei@work.email.ne.jp)
194 * RegistryKey.cs: Fixes bug 70451: When the key doesn't exist, and
195 the default value is not specified, it is necessary to return
196 null. and DecodeString function's bug is fixed.
198 2004-04-10 Gert Driesen (driesen@users.sourceforge.net)
200 * RegistryKey.cs: explicit implementation of IDisposable to match
203 2004-03-17 Jackson Harper <jackson@ximian.com>
205 * Win32RegistryApi.cs: Fix typo. Patch by Gert Driesen.
207 2004-03-03 Jackson Harper <jackson@ximian.com>
209 * Win32RegistryApi.cs: Specify entry points.
211 2004-03-03 Jackson Harper <jackson@ximian.com>
213 * Win32RegistryApi.cs: New file - pinvokes to the win32
214 registry. Patch by Erik LeBel.
215 * IRegistryApi.cs: New file - Interface to a registry backend
216 (win32 on windows, no implementation on unix). This interface will
217 probably change when we write a Linux backend.
218 * Win32ResultCode.cs: New file - Win32 result codes needed to
219 check pinvoke. Patch by Erik LeBel.
220 * Registry.cs: Create the keys. Patch by Erik LeBel.
221 * RegistryKey.cs: Implement. Patch by Erik LeBel.
223 2003-12-27 Nick Drochak <ndrochak@gol.com>
225 * RegistryKey.cs: Add some missing overloads.
227 2003-02-10 Nick Drochak <ndrochak@gol.com>
229 * Registry.cs: Class should be sealed and have a private default ctor.
231 2002-11-28 Alejandro Sánchez Acosta <raciel@es.gnu.org>
233 * Registry.cs: Added missed field.
235 2002-11-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
237 * RegistryHive.cs: patch from Jackson Harper that fixes compilation.
239 2002-11-27 DennisHayes <dennish@raytek.com>
241 * checkin for Alexandre Pigolkine (pigolkine@gmx.de) with minor changes
242 * needed for System.Windows.Forms
246 * added files, fully implmented?
249 * added more iplmentation
251 2002-11-20 Nick Drochak <ndrochak@gol.com>
253 * RegistryKey.cs: Fix typo.