// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
+#if !NET_2_1
+
using System;
using System.Text;
using System.Runtime.InteropServices;
+using Microsoft.Win32.SafeHandles;
namespace Microsoft.Win32 {
internal interface IRegistryApi {
+ RegistryKey CreateSubKey (RegistryKey rkey, string keyname);
+ RegistryKey OpenRemoteBaseKey (RegistryHive hKey, string machineName);
+ RegistryKey OpenSubKey (RegistryKey rkey, string keyname, bool writtable);
+ void Flush (RegistryKey rkey);
+ void Close (RegistryKey rkey);
+
+ object GetValue (RegistryKey rkey, string name, object default_value, RegistryValueOptions options);
+ RegistryValueKind GetValueKind (RegistryKey rkey, string name);
+ void SetValue (RegistryKey rkey, string name, object value);
+
+ int SubKeyCount (RegistryKey rkey);
+ int ValueCount (RegistryKey rkey);
- int OpenRegKeyRead { get; }
- int OpenRegKeyWrite { get; }
-
-
- // type values for registry value data
- int RegStringType { get; }
- int RegEnvironmentString { get; }
- int RegBinaryType { get; }
- int RegDwordType { get; }
- int RegStringArrayType { get; }
-
- int RegCreateKey (IntPtr keyBase,
- string keyName, out IntPtr keyHandle);
-
- int RegCloseKey (IntPtr keyHandle);
-
- int RegFlushKey (IntPtr keyHandle);
-
- int RegOpenKeyEx (IntPtr keyBase,
- string keyName, IntPtr reserved, int access,
- out IntPtr keyHandle);
-
- int RegDeleteKey (IntPtr keyHandle,
- string valueName);
-
- int RegDeleteValue (IntPtr keyHandle,
- string valueName);
-
- int RegEnumKey (IntPtr keyBase, int index,
- [Out] byte[] nameBuffer, int bufferLength);
-
- int RegEnumValue (IntPtr keyBase,
- int index, StringBuilder nameBuffer,
- ref int nameLength, IntPtr reserved,
- ref int type, IntPtr data, IntPtr dataLength);
-
- int RegSetValueEx (IntPtr keyBase,
- string valueName, IntPtr reserved, int type,
- StringBuilder data, int rawDataLength);
-
- int RegSetValueEx (IntPtr keyBase,
- string valueName, IntPtr reserved, int type,
- string data, int rawDataLength);
-
- int RegSetValueEx (IntPtr keyBase,
- string valueName, IntPtr reserved, int type,
- byte[] rawData, int rawDataLength);
-
- int RegSetValueEx (IntPtr keyBase,
- string valueName, IntPtr reserved, int type,
- ref int data, int rawDataLength);
-
- int RegQueryValueEx (IntPtr keyBase,
- string valueName, IntPtr reserved, ref int type,
- IntPtr zero, ref int dataSize);
-
- int RegQueryValueEx (IntPtr keyBase,
- string valueName, IntPtr reserved, ref int type,
- [Out] byte[] data, ref int dataSize);
-
- int RegQueryValueEx (IntPtr keyBase,
- string valueName, IntPtr reserved, ref int type,
- ref int data, ref int dataSize);
+ void DeleteValue (RegistryKey rkey, string value, bool throw_if_missing);
+ void DeleteKey (RegistryKey rkey, string keyName, bool throw_if_missing);
+ string [] GetSubKeyNames (RegistryKey rkey);
+ string [] GetValueNames (RegistryKey rkey);
+ string ToString (RegistryKey rkey);
+
+ void SetValue (RegistryKey rkey, string name, object value, RegistryValueKind valueKind);
+
+#if NET_4_0
+ RegistryKey CreateSubKey (RegistryKey rkey, string keyname, RegistryOptions options);
+ RegistryKey FromHandle (SafeRegistryHandle handle);
+ IntPtr GetHandle (RegistryKey key);
+#endif
}
}
+#endif // NET_2_1
+