Moin Chewie,
was die letzten drei Paramter angeht unterliegst Du einem Irrtum.
Es werden die Adressen übergeben, und somit kann die Funktion an die Stelle auf die diese Pointer verweisen sehr wohl Daten schreiben.
Du bräuchtest var nur, wenn diese Adresse geändert werden soll.
Prinzipiell können bei
API Funktionen alle Parameter als Const deklariert werden (mir fällt so auf Anhieb jedenfalls keine Ausnahme ein), da, für den Fall, dass die Funktion über einen der Parameter einen Wert zurückgeben soll dieser als Pointer deklariert ist. (siehe auch oben)
Mal ein kleines stilisiertes Beispiel:
Code:
var
pBuffer : Pointer;
dwValueType : DWord;
dwBufferLen : DWord;
hOpenKey : hKey;
RegQueryValueEx(hOpenKey, PChar('VALUENAME'),nil,@dwValueType,pBuffer,@dwBufferLen)
Die ganzen Initialisierungen habe ich weggelassen.
Kommst Du so damit klar?