New test.
[mono.git] / mcs / class / corlib / Microsoft.Win32 / ChangeLog
1 2006-09-03  Gert Driesen  <drieseng@users.sourceforge.net>
2
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
15         (key) name.
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.
24
25 2006-08-23  Gert Driesen  <drieseng@users.sourceforge.net>
26
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.
30
31 2006-08-20  Gert Driesen  <drieseng@users.sourceforge.net>
32
33         * RegistryValueOptions.cs: Add the real one.
34
35 2006-08-20  Atsushi Enomoto  <atsushi@ximian.com>
36
37         * RegistryValueOptions.cs : build fix, easier than reverting all.
38
39 2006-08-20  Gert Driesen  <drieseng@users.sourceforge.net>
40
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.
54
55 2006-08-14  Gert Driesen  <drieseng@users.sourceforge.net>
56
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.
60
61 2006-08-14  Gert Driesen  <drieseng@users.sourceforge.net>
62
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
70         documented).
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
75         deletion:
76                 1) set value on key
77                 2) obtain SubKeyCount
78                 3) obtain ValueCount
79                 4) create a sub key
80                 5) obtain value names
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
95         OpenSubKey.
96
97 2006-08-14  Miguel de Icaza  <miguel@novell.com>
98
99         * RegistryValueKind.cs: Make this public in 2.0, and rename from
100         previous version.
101
102         * Win32RegistryApi.cs: Include version to check for version;
103         Eliminate old internal enum, and instead use the new 2.0 enum.
104
105         * UnixRegistryApi.cs: Add support for typed versions of values.
106
107         Add support for ExpandString.
108
109         * Registry.cs (SetValue): implement version with type arguments.
110
111 2006-08-13  Miguel de Icaza  <miguel@novell.com>
112
113         * Registry.cs (SetValue, GetValue): implement.
114
115         * UnixRegistryApi.cs (KeyHandler.LoadKey, KeyHandler.Save): Add
116         support for qwords.
117
118         (KeyHandler.Save): Do not save the entries if they have been
119         deleted/dropped.   Fixes a crash.
120
121         (UnixRegistryApi.DeleteKey): bug fix, call ToUnix on the keyname.
122
123 2006-08-12  Gert Driesen  <drieseng@users.sourceforge.net>
124
125         * Registry.cs: Fixed copy/paste bug.
126
127 2006-08-11  Gert Driesen  <drieseng@users.sourceforge.net>
128
129         * UnixRegistryApi.cs: Consider HKLM\SYSTEM\CurrentControlSet\Services\
130         EventLog a wellknown key. Required for new EventLog implementation. 
131         Added RegistryStore property.
132
133 2006-06-06  Miguel de Icaza  <miguel@novell.com>
134
135         * UnixRegistryApi.cs: Do not crash if there are no values stored.
136
137 2006-05-28  Gert Driesen <drieseng@users.sourceforge.net>
138
139         * UnixRegistryApi.cs: GetSubKeyNames returns only names of subkeys,
140         not the qualified name. Fixes bug #78519.
141
142 2006-04-20  Gert Driesen <drieseng@users.sourceforge.net>
143
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.
149
150 2006-04-18  Gert Driesen <drieseng@users.sourceforge.net>
151
152         * UnixRegistryApi.cs: Only consider the "software" subkey a well-known
153         key if the parent is either HKEY_USERS or HKEY_LOCAL_MACHINE.
154
155 2006-04-15  Robert Jordan <robertj@gmx.net>
156
157         * UnixRegistryApi.cs (DeleteValue): Avoid crash, fixes bug
158         #77772. Patch reapplied, since r57881 was not applied correctly.
159         
160 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
161
162         * UnixRegistryApi.cs: create well-known keys when trying to open them.
163
164 2006-03-12  Robert Jordan <robertj@gmx.net>
165
166         * UnixRegistryApi.cs (DeleteValue): Avoid crash, fixes bug
167         #77772
168
169 2006-01-14  Robert Jordan  <robertj@gmx.net>
170
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.
175
176 2005-12-02  Atsushi Enomoto  <atsushi@ximian.com>
177
178         * Win32RegistryApi.cs : fixed invalid cast. Now mono is not to blame
179           for not being able to run NAnt on Windows.
180         
181 2005-11-12  Miguel de Icaza  <miguel@novell.com>
182
183         * RegistryKey.cs: Add support for a Registry on Unix based on
184         files under ~/.mono/registry.
185
186         Vastly refactored the code, reworked the interface between the
187         frontend and the backends.  
188
189         If "RegistryKey" was not sealed, things could have been a lot
190         cleaner. 
191
192 2005-01-31  mei (mei@work.email.ne.jp)
193
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.
197
198 2004-04-10  Gert Driesen (driesen@users.sourceforge.net)
199
200         * RegistryKey.cs: explicit implementation of IDisposable to match 
201         MS corlib
202
203 2004-03-17  Jackson Harper  <jackson@ximian.com>
204
205         * Win32RegistryApi.cs: Fix typo. Patch by Gert Driesen.
206
207 2004-03-03  Jackson Harper  <jackson@ximian.com>
208
209         * Win32RegistryApi.cs: Specify entry points.
210         
211 2004-03-03  Jackson Harper <jackson@ximian.com>
212
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.
222         
223 2003-12-27  Nick Drochak  <ndrochak@gol.com>
224
225         * RegistryKey.cs: Add some missing overloads.
226
227 2003-02-10  Nick Drochak  <ndrochak@gol.com>
228
229         * Registry.cs: Class should be sealed and have a private default ctor.
230
231 2002-11-28  Alejandro Sánchez Acosta  <raciel@es.gnu.org>
232
233         * Registry.cs: Added missed field.
234
235 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
236
237         * RegistryHive.cs: patch from Jackson Harper that fixes compilation.
238
239 2002-11-27  DennisHayes <dennish@raytek.com>    
240
241         * checkin for Alexandre Pigolkine (pigolkine@gmx.de) with minor changes
242         * needed for System.Windows.Forms
243         
244         * RegistryHive.cs
245         * Registry.cs
246         * added files, fully implmented?
247         
248         * RegistryKey.cs
249         * added more iplmentation
250
251 2002-11-20  Nick Drochak  <ndrochak@gol.com>
252
253         * RegistryKey.cs: Fix typo.