Der Typ TGUID aus der System.pas ist schon ein record und kein String.
Man definiert zwar
GUID-Konstanten in der Art von Strings, es wird aber zur Kompilierzeit umgewandelt.
Delphi-Quellcode:
var
vt: TVarType;
cDims: Integer;
rgsabound: PSafeArrayBound;
pvExtra: pointer;
GuidOfInterface: TGUID;
ArrayResult: PSafeArray;
begin
GuidOfInterface := TGUID.NewGuid;
pvExtra := @GuidOfInterface;
ArrayResult := SafeArrayCreateEx(vt, cDims, rgsabound, pvExtra);
end;