Eliminar valores clave del registro

En MSDN dice que RegEnumValue no debe usarse cuando se llama a una función que cambia las claves de registro que se enumeran.

Entonces, ¿esto también se aplica a la eliminación de valores de clave de registro?

Como hace este código:

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);
 }

Respuestas a la pregunta(1)

Su respuesta a la pregunta