super... da hätte ich ja auch mal selber drauf kommen können
Damit wäre der Typ REG_SZ schonmal geklärt... vielen Dank.
Aber wie funktioniert das ganze nun bei REG_DWORD?
Str(lpData^, Result);
liefert immer nur Werte zw. 0 und 255.
und ein Typcast mittels DWORD() vor dem lpData^ liefert dasselbe Ergebnis.
Nachtrag:
Delphi-Quellcode:
var b1, b2, b3, b4: Byte;
...
REG_DWORD : begin
b1 := lpData^;
b2 := PByte(DWORD(lpData) + 1 * SizeOf(Byte))^;
b3 := PByte(DWORD(lpData) + 2 * SizeOf(Byte))^;
b4 := PByte(DWORD(lpData) + 3 * SizeOf(Byte))^;
Str(b1 + b2*256 + b3*65536 + b4*16777216, Result);
end;
Dabei verlasse ich mich aber darauf, dass cbData beim Typ REG_DWORD immer 4 ist... was ja eigentlich auch der Fall sein müsste, oder? Ausserdem würde mich interessieren, ob es auch eine elegantere Lösung für das Problem gibt.
Dennoch einen herzlichen Dank an ste_ett für deine Hilfe.
Gruss Markus