dyn. Arrays und (Long)Strings dürfen nicht als OUT definiert werden, da hier die Compilermagic, bzw. das delphieigene Speichermanagement umgangen werden könnte.
Aber diese Typen sollte man eh nicht in einem externen Interface verwenden.
Und bei Interfaces/
COM-Objekten würde ich es auch nicht machen, da hier die Referenzzählung Probleme bereiten könnte.
(Wo das endet, sieht man beim
WMI, wo der Result-Parameter als OUT definiert ist, welches ein nettes Speicherleck erzeugt, wenn man da einen "gefüllten" / referenzierenden Variant übergibt.
Denn dessen alter Inhalt wird nicht freigegeben, sondern nur die Referenzen überschrieben.)