Проблема с RegReplaceKey()
От: bergy Украина  
Дата: 23.07.09 22:44
Оценка:
Чего хочу добиться: есть у меня запись в реестре

[HKEY_LOCAL_MACHINE\SOFTWARE\MySoft]
[HKEY_LOCAL_MACHINE\SOFTWARE\MySoft\Test] (*)

(мной созданный ключ MySoft, в нём подключ Test)
на этом этапе я делаю сохранение с помощью RegSaveKey(), потом создаю в подключе Test переменную типа REG_SZ Test со значением "test":

[HKEY_LOCAL_MACHINE\SOFTWARE\MySoft]
[HKEY_LOCAL_MACHINE\SOFTWARE\MySoft\Test] (**)
"Test"="test"

Теперь делаю RegReplaceKey() чтобы в результате получить в реестре вариант (*). Код следующий:

SetPrivilege(SE_BACKUP_NAME, TRUE); // функции подключают нужные привилегии для сохранения/замены в реестре
SetPrivilege(SE_RESTORE_NAME, TRUE);

if(RegCreateKeyEx(
                  HKEY_LOCAL_MACHINE,
                  TEXT("SOFTWARE\\MySoft"),
                  0,
                  NULL,
                  REG_OPTION_BACKUP_RESTORE,
                  KEY_ALL_ACCESS,
                  NULL,
                  &m_hKey,
                  &m_dwDisposition 
                  )!= ERROR_SUCCESS 
{
// Сообщаем об ошибке
}
else
{
// Сообщаем об успешно проделанной операцией
}

//Далее создаем подключ Test

//Сохранение провожу следюущим образом:
LONG return_code = RegSaveKey(m_sub_hKey, TEXT("d:\\Test\\reg.bin"), NULL); // где m_sub_hKey хендл ссылается на подключ Test
// обрабатываем return_code 

//Создаю в подключе переменную типа REG_SZ Test со значением "test"

// ну и:

LONG return_code = RegReplaceKey(m_hKey,
                    TEXT("Test"), 
                    TEXT("d:\\Test\\reg.bin"),
                    NULL
                    );
// обрабатываем return_code


Говорит, что неправильный параметр функции. Не могу понять какой именно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.