Доброе время суток- я опять в замешательстве.
void Fill_KeyValue(HKEY hKey_FillValue)
{
char ValueName[255];
DWORD szValueName,Type,szData;
BYTE Data;
LONG ReturnValue;
memset(ValueName,0,256);
for(int i=0,u=0;i<5 && !u;i++)
{
if(RegEnumValue(hKey_FillValue,i,ValueName,&szValueName,NULL,&Type,&Data,&szData)==ERROR_SUCCESS)
MessageBox(NULL,ValueName,ValueName,0);
else if(RegEnumValue(hKey_FillValue,i,ValueName,&szValueName,NULL,&Type,&Data,&szData)==ERROR_NO_MORE_ITEMS) u++;
}
}
Функция записывает в ValueName- имя переменной ключа с i-м индексом, размер имени, идентификатор типа, значение, размер значения.
Проблема в том, что в случае вызова функции
RegEnumValue(hKey_FillValue,i,ValueName,&szValueName,NULL,&Type,&Data,&szData)
в цикле, то на экран выводится только 1 окно с именем первой переменной и всё.
Другими словами если вызывать функцию без цикла, с явным значением индекса( например RegEnumValue(hKey_FillValue,3...)), то выводится окно с именем 3-ей переменной ключа, а в цикле- нет.
2Как я понимаю,- не происходит перезапись переменных или их надо как-то обнулять каждую итерацию