Das was du an Source gepostet hast, ist Delphi Syntax!
Ja den Zeiger hast du doch jetzt. Übergib ihn doch einfach.
Delphi-Quellcode:
type
TDaten = record
...: ...;
...: ...;
end;
PDaten = ^TDaten;
var
Daten: PDaten;
fnResult: Byte;
begin
// Speicher anfordern
New(Daten);
try
fnResult := foo('bar', Daten);
finally
// Speicher wieder freigeben
Dispose(Daten);
end;