PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RegQueryMultipleValues


Format C:
09.08.2002, 18:48
moin



HKEY hKey;
static VALENT values[2];
DWORD dwSize;

BOOL bError = 0;
char test[200]="";
int i;


values[0].ve_valuename = "REG_KEY1";
values[1].ve_valuename = "REG_KEY2";

// Pfad öffnen
if(!RegOpenKeyEx (HKEY_LOCAL_MACHINE, REG_PFAD, 0, KEY_ALL_ACCESS, &hKey))
{
if(i = RegQueryMultipleValues(hKey, values, 2, NULL, &dwSize))
{
char *lpBuf;

sprintf(test, "%d", i);
MessageBox(0, test, "", 0);

lpBuf = (char*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwSize);
RegQueryMultipleValues(hKey, values, 2, lpBuf, &dwSize);

MessageBox(0, (char*)values[0].ve_valueptr, "", 0);

HeapFree(GetProcessHeap(), 0, lpBuf);
}
RegCloseKey(hKey);
}

RegQueryMultipleValues gibt den wert 87 zurück.

87 steht für ERROR_INVALID_PARAMETER
In der MSDN steht noch drinn das RegQueryMultipleValues 3 Feher Codes zurückgeben kann, u.a: ERROR_TRANSFER_TOO_LONG, dieser ist jedoch in Winerror.h nicht Definiert. auch in keiner anderen *.h Datei.

Watt is da los ? Wieso gibt RegQueryMultipleValues 87 zurück ?


Format C:
09.08.2002, 20:00
moin
Problem hat sich erledigt.....
dwSize muß vor dem 1. Aufruf auf 0 gesetzt werden, dann gibt auch die Funktion ERROR_MORE_DATA zurück.

Aber trotzdem hätte ich mal gerne gewußt welchen Wert ERROR_TRANSFER_TOO_LONG hat

xOOn
12.08.2002, 08:35
ERROR_TRANSFER_TOO_LONG ist sogar VS.NET nicht bekannt

Format C:
12.08.2002, 08:54
jo

Der Fehler dürfte ziemlich selten auftreten. Wann liest man schon mal 1MB aus der Regi aus ? :D

xOOn
12.08.2002, 10:20
ich vermute der fehler tritt nie auf error im sdk!!