/// функцию RegCloseKey для его закрытия.
/// [out] Переменная, которая
/// получает значение 1 (REG_CREATED_NEW_KEY),
/// если раздел был создан
/// и значение 2 (REG_OPENED_EXISTING_KEY), если был открыт уже
/// существующий раздел
///
///
/// В случае ошибки возвращается ненулевое значение
///
[DllImport("coredll.dll", SetLastError = true)]
public static extern int RegCreateKeyEx(
UIntPtr hkey, String lpSubKey, uint Reserved, StringBuilder lpClass,
uint dwOptions, KeyAccess samDesired, IntPtr lpSecurityAttributes,
ref UIntPtr phkResult, ref uint lpdwDisposition);
///
/// Функция для удаления раздела реестра
///
/// [in] Дескриптор к удаляемому разделу или
/// одна из ветвей реестра: HKCR, HKCU, HKLM.
///
/// [in] Имя удаляемого раздела.
/// Нельзя использовать NULL
///
///
/// В случае ошибки возвращается ненулевое значение
///
[DllImport("coredll.dll", SetLastError = true)]
public static extern int RegDeleteKey(UIntPtr hkey, string subkeyName );
///
/// Функция для открытия заданного раздела реестра.
///
/// [in] Дескриптор к открываемому разделу
/// или одна из ветвей реестра HKCR, HKCU, HKLM.
/// [in] Имя открываемого раздела
///
/// [in] Зарезервированный параметр.
/// Установлен равным 0
/// [in] He поддерживается. Установите
/// в 0.
/// [out] Переменная, получаемая от
/// дескриптора открытого раздела. Если вы больше не нуждаетесь
/// в дескрипторе, то вызовите функцию RegCloseKey для его
/// закрытия
///
/// В случае ошибки возвращается ненулевое значение
///
[DllImport("coredll.dll", SetLastError = true)]
public static extern int RegOpenKeyEx(
UIntPtr hkey, String lpSubKey, uint ulOptions, KeyAccess samDesired,
ref UIntPtr phkResult);
///
/// Функция получает тип и данные из заданного раздела реестра
///
/// [in] Дескриптор к открываемому разделу
/// или одна из ветвей реестра: HKCR, HKCU, HKLM.
/// [in] Значение параметра.
///
/// [in] Зарезервированный параметр.
/// Установите в NULL.
/// [out] Тип данных
///
/// [out] Буфер, получающий данные.
/// Данный параметр может быть NULL, если данные не требуются.
///
/// [in/out] Размер буфера в байтах
///
///
/// В случае ошибки возвращается ненулевое значение
///
[DllImport("coredll.dll", SetLastError = true)]
public static extern int RegQueryValueEx(
UIntPtr hkey, String lpValueName, IntPtr lpReserved, ref KeyType lpType,
byte[] lpData, ref uint lpcbData);
///