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