mr ist vom Typ TMyRecord und somit weiß Delphi Bescheid. An dieser Stelle würde ich dann aber eher folgendes machen:
Delphi-Quellcode:
var
mr : PMyRecord;
begin
....
if ImportierteDLLFunktion(mr) = 0 then begin // mal angenommen 0 sagt aus: Alles OK
ShowMessage(mr^.lpName);
...
Imho ist es aber eher üblich, dass die Anwendung den Speicher reserviert. In diesem Beispiel ist es so, dass du eine Variable vom Typ Pointer übergibst. Die Funktion würde dir in dieser dann die Adresse zurückliefern die auf den Speicherbereich mit den Daten zeigt.
Da PMyRecord eine Zeigervariable auf einen Record vom Typ TMyRecord ist kannst du über den Referenzzeiger wie gewohnt auf die einzelnen Parameter zugreifen.
Gruß oki