7b55e88c4fc7df29cb7a9316d79879f0f1360f4c
[mono.git] / mcs / class / corlib / Microsoft.Win32 / ChangeLog
1 2008-02-01  Gert Driesen  <drieseng@users.sourceforge.net>
2
3         * RegistryKey.cs: Added missing checks on length of subkey and value
4         names. On 2.0 profile, allow subkey <= 255 characters. Modified
5         ArgumentNullException argument names to match MS.
6         * UnixRegistryApi.cs: In SetValue (string, object, RegistryValueKind),
7         use a zero-length string for name if it is null. In OpenSubKey,
8         respect value of writable argument when creating well-known subkey.
9         Fixes bug #357883. Removed argument names for ArgumentException's to
10         match MS.
11
12 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
13
14         * RegistryKey.cs: Fix some argument names to be consistent with MS.
15
16 2007-10-13  kevin.fitzgerald@soarce.us
17
18         * UnixRegistryApi.cs: Escape the strings before passing them to
19         SecurityElement.   This fixes bug #322839
20
21 2007-08-30  Marek Habersack  <mhabersack@novell.com>
22
23         * UnixRegistryApi.cs: properly retrieve values of type
24         'bytearray'.
25
26 2007-08-13  Gert Driesen  <drieseng@users.sourceforge.net>
27
28         * RegistryKeyPermissionCheck.cs: Do not include in 1.0 profile.
29         Removed extra using directive and empty lines.
30
31 2007-05-01  Dick Porter  <dick@ximian.com>
32
33         * RegistryKeyPermissionCheck.cs: Not serializable
34
35 2007-04-30  Dick Porter  <dick@ximian.com>
36
37         * Registry.cs: 
38         * RegistryHive.cs: 
39         * RegistryKey.cs: 
40         * RegistryValueKind.cs: 
41         * RegistryKeyPermissionCheck.cs: Updated for 2.0 profile
42
43 2006-10-29  Miguel de Icaza  <miguel@novell.com>
44
45         * UnixRegistryApi.cs (KeyHandler.MachineStore): Add support for
46         loading/storing values from the system registry, instead of having
47         the system ones be user-based. 
48
49         (KeyHandler, Load): turn IO exceptions into Security exceptions.
50
51 2006-09-03  Gert Driesen  <drieseng@users.sourceforge.net>
52
53         * IRegistryApi.cs: Added OpenRemoteBaseKey method.
54         * Win32ResultCode.cs: Added code for win32 error 53.
55         * RegistryKey.cs: Implemented support for OpenRemoteBaseKEy on
56         Windows. To achieve this, the handle of the remote hive must be
57         stored separately from the RegistryHive value. Removed isRoot field, as
58         we now determine whether we're a root key (hive) by checking if hive
59         is not null. Added internal ctor for registry hives that takes a 
60         RegistryHive, a key handle and a bool to indicate whether its a remote
61         hive. Renamed Data field to handle and added internal property to 
62         access it. Throw ObjectDisposedException in ToString if key is
63         closed/disposed. Added Hive property, which is used in UnixRegistryApi.
64         Added GetHiveName method which translates a RegistryHive value to its
65         (key) name.
66         * Win32RegistryApi.cs: Added pinvoke for RegConnectRegistry. GetHandle
67         no longer needs to know whether the key refers to a hive (base key) 
68         or not. Implemented OpenRemoteBaseKey.
69         * UnixRegistryApi.cs: Added OpenRemoteBaseKey implementation which
70         always throws NotImplementedException.
71         * Registry.cs: The key name of the base key no longer needs to be 
72         passed to the ctor, as it's looked up in the ctor itself. This avoids
73         having a different logical for local or remote base keys.
74
75 2006-08-23  Gert Driesen  <drieseng@users.sourceforge.net>
76
77         * Win32RegistryApi.cs: Use a StringBuilder instead of byte [] for
78         RegEnumKey. Fixed issue in GetSubKeyNames where buffer was not cleared
79         while iterating over subkeys.
80
81 2006-08-20  Gert Driesen  <drieseng@users.sourceforge.net>
82
83         * RegistryValueOptions.cs: Add the real one.
84
85 2006-08-20  Atsushi Enomoto  <atsushi@ximian.com>
86
87         * RegistryValueOptions.cs : build fix, easier than reverting all.
88
89 2006-08-20  Gert Driesen  <drieseng@users.sourceforge.net>
90
91         * IRegistryApi.cs: Modified GetValue to take RegistryValueOptions enum
92         and removed obsolete return_default_value argument.
93         * RegistryKey.cs: Added missing ComVisible attribute on SetValue.
94         Use new GetValue method on IRegistryApi that takes RegistryValueOptions
95         enum. Added GetValue overload that takes RegistryValueOptions (2.0).
96         * Win32RegistryApi.cs: Modified GetValue to take RegistryValueOptions
97         enum, and removed obsolete returnDefaultValue argument. Added support
98         for ExpandString value type. Do no expand if DoNotExpand... is set.
99         * UnixRegistryApi.cs: Modified KeyHandler.GetValue to take
100         RegistryValueOptions enum, and do no expand environment variables in
101         an ExpandString if DoNotExpandEnvironmentNames is set. Modified
102         UnixRegistryApi.GetValue to take RegistryValueOptions enum, and 
103         removed obsolete return_default_value argument.
104
105 2006-08-14  Gert Driesen  <drieseng@users.sourceforge.net>
106
107         * UnixRegistryApi.cs: Undo change for new eventlog implementation that
108         was not rolled back earlier this week, and which does not make sense
109         without that implementation anyway.
110
111 2006-08-14  Gert Driesen  <drieseng@users.sourceforge.net>
112
113         * Win32ResultCode.cs: Added error code for attempting to perform an
114         operation on registry key that is marked for deletion.
115         * RegistryKey.cs: Keep writable state. Automatically flush changes to
116         disk when closing key (to match MS). Allow values to be set on root
117         keys. Throw UnauthorizedAccessException when attempting to set/delete
118         value or create/delete sub key on registry key that is openen 
119         read-only. Fixed DecodeString to only strip trailing nullchars (as
120         documented).
121         * Win32RegistryApi.cs: For a key that is marked for deletion, return
122         null when attempting to get a value of that key (and no default value
123         was specified) or open a subkey. Throw an IOException when attempting
124         to perform the following operation on a key that is marked for
125         deletion:
126                 1) set value on key
127                 2) obtain SubKeyCount
128                 3) obtain ValueCount
129                 4) create a sub key
130                 5) obtain value names
131         and ignore deleting a value. Ignore flushing changes of a key and
132         closing a when the key is closed.
133         * UnixRegistryApi.cs: Maintain handler cache per directory instead of
134         caching registry keys. This allows both a single key to be in memory
135         in both read-only and read-write key configuration, while sharing the
136         KeyHandler. Use case-insensitive hashtable for mapping directory to
137         KeyHandler. Added support for keys that have been marked for deletion
138         by another operation (eg. DeleteSubKeyTree). Allow different file store
139         for machine-level and user-level hives (but have them use the same
140         file store, needs further discussion). Allow KeyHandler failure when
141         create directory, or saving values file to bubble up. Do not save
142         values file when key is marked for deletion. Encapsulate access to
143         values collection. When setting value with null name, use zero-length
144         name instead. Treat key name case-insensitive in DeleteKey to match
145         OpenSubKey.
146
147 2006-08-14  Miguel de Icaza  <miguel@novell.com>
148
149         * RegistryValueKind.cs: Make this public in 2.0, and rename from
150         previous version.
151
152         * Win32RegistryApi.cs: Include version to check for version;
153         Eliminate old internal enum, and instead use the new 2.0 enum.
154
155         * UnixRegistryApi.cs: Add support for typed versions of values.
156
157         Add support for ExpandString.
158
159         * Registry.cs (SetValue): implement version with type arguments.
160
161 2006-08-13  Miguel de Icaza  <miguel@novell.com>
162
163         * Registry.cs (SetValue, GetValue): implement.
164
165         * UnixRegistryApi.cs (KeyHandler.LoadKey, KeyHandler.Save): Add
166         support for qwords.
167
168         (KeyHandler.Save): Do not save the entries if they have been
169         deleted/dropped.   Fixes a crash.
170
171         (UnixRegistryApi.DeleteKey): bug fix, call ToUnix on the keyname.
172
173 2006-08-12  Gert Driesen  <drieseng@users.sourceforge.net>
174
175         * Registry.cs: Fixed copy/paste bug.
176
177 2006-08-11  Gert Driesen  <drieseng@users.sourceforge.net>
178
179         * UnixRegistryApi.cs: Consider HKLM\SYSTEM\CurrentControlSet\Services\
180         EventLog a wellknown key. Required for new EventLog implementation. 
181         Added RegistryStore property.
182
183 2006-06-06  Miguel de Icaza  <miguel@novell.com>
184
185         * UnixRegistryApi.cs: Do not crash if there are no values stored.
186
187 2006-05-28  Gert Driesen <drieseng@users.sourceforge.net>
188
189         * UnixRegistryApi.cs: GetSubKeyNames returns only names of subkeys,
190         not the qualified name. Fixes bug #78519.
191
192 2006-04-20  Gert Driesen <drieseng@users.sourceforge.net>
193
194         * UnixRegistryApi.cs: In KeyHandler.SetValue, immediately convert
195         instances of non-native registry types (meaning int, string, string[]
196         or byte[]) to string. This avoids returning an instance of a non-native
197         registry type in calls to UnixRegistryApi.GetValue. Allow instances of
198         non-native registry types in UnixRegistryApi.SetValue. Fixes bug #78132.
199
200 2006-04-18  Gert Driesen <drieseng@users.sourceforge.net>
201
202         * UnixRegistryApi.cs: Only consider the "software" subkey a well-known
203         key if the parent is either HKEY_USERS or HKEY_LOCAL_MACHINE.
204
205 2006-04-15  Robert Jordan <robertj@gmx.net>
206
207         * UnixRegistryApi.cs (DeleteValue): Avoid crash, fixes bug
208         #77772. Patch reapplied, since r57881 was not applied correctly.
209         
210 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
211
212         * UnixRegistryApi.cs: create well-known keys when trying to open them.
213
214 2006-03-12  Robert Jordan <robertj@gmx.net>
215
216         * UnixRegistryApi.cs (DeleteValue): Avoid crash, fixes bug
217         #77772
218
219 2006-01-14  Robert Jordan  <robertj@gmx.net>
220
221         * RegistryKey.cs: Added internal IsRoot accessor.
222         * Win32RegistryApi.cs: Fixed access to RegistryKey.Data.
223         Fixes bug #77212. Thanks to Don Edvalson (don@edvalson.net)
224         for spotting this out.
225
226 2005-12-02  Atsushi Enomoto  <atsushi@ximian.com>
227
228         * Win32RegistryApi.cs : fixed invalid cast. Now mono is not to blame
229           for not being able to run NAnt on Windows.
230         
231 2005-11-12  Miguel de Icaza  <miguel@novell.com>
232
233         * RegistryKey.cs: Add support for a Registry on Unix based on
234         files under ~/.mono/registry.
235
236         Vastly refactored the code, reworked the interface between the
237         frontend and the backends.  
238
239         If "RegistryKey" was not sealed, things could have been a lot
240         cleaner. 
241
242 2005-01-31  mei (mei@work.email.ne.jp)
243
244         * RegistryKey.cs: Fixes bug 70451: When the key doesn't exist, and
245         the default value is not specified, it is necessary to return
246         null. and DecodeString function's bug is fixed.
247
248 2004-04-10  Gert Driesen (driesen@users.sourceforge.net)
249
250         * RegistryKey.cs: explicit implementation of IDisposable to match 
251         MS corlib
252
253 2004-03-17  Jackson Harper  <jackson@ximian.com>
254
255         * Win32RegistryApi.cs: Fix typo. Patch by Gert Driesen.
256
257 2004-03-03  Jackson Harper  <jackson@ximian.com>
258
259         * Win32RegistryApi.cs: Specify entry points.
260         
261 2004-03-03  Jackson Harper <jackson@ximian.com>
262
263         * Win32RegistryApi.cs: New file - pinvokes to the win32
264         registry. Patch  by Erik LeBel.
265         * IRegistryApi.cs: New file - Interface to a registry backend
266         (win32 on windows, no implementation on unix). This interface will
267         probably change when we write a Linux backend.
268         * Win32ResultCode.cs: New file - Win32 result codes needed to
269         check pinvoke. Patch by Erik LeBel.
270         * Registry.cs: Create the keys. Patch by Erik LeBel.
271         * RegistryKey.cs: Implement. Patch by Erik LeBel.
272         
273 2003-12-27  Nick Drochak  <ndrochak@gol.com>
274
275         * RegistryKey.cs: Add some missing overloads.
276
277 2003-02-10  Nick Drochak  <ndrochak@gol.com>
278
279         * Registry.cs: Class should be sealed and have a private default ctor.
280
281 2002-11-28  Alejandro Sánchez Acosta  <raciel@es.gnu.org>
282
283         * Registry.cs: Added missed field.
284
285 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
286
287         * RegistryHive.cs: patch from Jackson Harper that fixes compilation.
288
289 2002-11-27  DennisHayes <dennish@raytek.com>    
290
291         * checkin for Alexandre Pigolkine (pigolkine@gmx.de) with minor changes
292         * needed for System.Windows.Forms
293         
294         * RegistryHive.cs
295         * Registry.cs
296         * added files, fully implmented?
297         
298         * RegistryKey.cs
299         * added more iplmentation
300
301 2002-11-20  Nick Drochak  <ndrochak@gol.com>
302
303         * RegistryKey.cs: Fix typo.