2010-06-28 1 views
0

В MSDN говорится, что RegEnumValue не следует использовать при вызове функции, которая меняет перечисленные ключи реестра.Удаление значений ключа реестра

Это также относится к удалению значений ключа реестра?

Как этот код делает:

if (RegOpenKeyEx(m_hkey,m_path.c_str(),0,KEY_ALL_ACCESS,&key) == ERROR_SUCCESS) 
{ 
    bool error=false; 
    idx=0; 
    while (RegEnumValue(key,idx,name,&namesize,NULL,NULL,NULL,NULL) == ERROR_SUCCESS && !error) 
    { 
    error=(RegDeleteValue(key,name)!=ERROR_SUCCESS); 
    idx++; 
    } 
    RegCloseKey(key); 
} 

ответ

2

Ваш код не работает. Когда вы удаляете индекс 0, следующий элемент становится индексом 0, и вы не удаляете его.

Да, это относится к удалению значений ключа.