binärer Registrywert
-
Hallo Leute,
wie kann ich einen binären Key aus der Registry einlesen bzw. einen erstellen?
-
// raus: void * p; int size; DWORD err = RegSetValueEx(baseKey, name, 0, REG_BINARY, (BYTE *) p, size); // rein: DWORD type = 0; DWORD size = 0; DWORD err = RegQueryValueEx(basekey, value, NULL, & type, NULL, &size); (if err == S_OK && type == REG_BINARY) { void * p = NULL; do { void * p = // buffer der größe size - realloc! err = RegQueryValueEx(basekey, value, NULL, & type, (BYTE *) p, &size); while (err == ERROR_MORE_DATA); }Hiweis: Wie auch beim lesen von Strings kann sih der Registry-Wert ja zwischen den beiden Aufrufen ändern - daher die do-while Schleife.
Wenn man die Größe der Binärdaten im vorraus kennt, ist das natürlich nicht nötig, und man kann sich auch den ersten Aufruf sparen.