16 сент. 2010 г.

RegReplaceKey

Функция RegReplaceKey замещает резервный файл ключа и всех его подключей другим файлом, так что, при следующей загрузке системы, ключ и подключи будут иметь значения, записанные в другом файле.
LONG RegReplaceKey(
    HKEY hKey,  // дескриптор открытого ключа
    LPCTSTR lpSubKey, // адрес имени подключа 
    LPCTSTR lpNewFile, // адрес имени файла с новыми данными
    LPCTSTR lpOldFile  // адрес имени резервного файла 
);
Параметры:

hKey Идентифицирует открытый в текущий момент ключ или один из следующих предопределенных значений дескрипторов:

HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG
lpSubKey Адрес нульзаканчивающейся строки, содержащей имя ключа, подключи и значения которого замещаются этой функцией. Этот ключ должен быть подключем ключа hKey и не может быть равным NULL.

Выбранный ключ должен быть корнем улья; это значит, что он должен непосредственно происходить от HKEY_LOCAL_MACHINE или HKEY_USERS.
lpNewFile Адрес нульзаканчивающейся строки, содержащей имя файла с информацией реестра. Обычно, этот файл – это файл, созданный при помощи функции RegSaveKey.
lpOldFile Адрес нульзаканчивающейся строки, содержащей имя файла, который получил резервную копию информации реестра, и будет замещен.
Возвращаемые значения:
Если функция успешно, возвращается значение ERROR_SUCCESS.

При ошибке, возвращаемое значение – это код ошибки, объявленный в WINERROR.H. Вы можете использовать функцию FormatMessage с флагом FORMAT_MESSAGE_FROM_SYSTEM для получения общего описания ошибки.
Замечания:
Файл, указанный в параметре lpNewFile, остается открытым до перезапуска системы.

Если hKey – это дескриптор, возвращенный функцией RegConnectRegistry, тогда пути, указанные в lpNewFile и lpOldFile, являются относительными удаленному компьютеру.

Windows NT/2000/XP: Вызывающий процесс должен иметь привилегию SE_RESTORE_NAME.