In Delphi sind ENUM standardmäßig so klein wie möglich.
In C sind sie standardmäßig (glaub ich) so groß wie ein Register.
(früher Integer, aber weil irgendein Arsch meinte Integer/Cardinal einfriehren zu müssen NativeInt/NativeUInt)
Also COM_Return entweder als NativeUInt
oder als ENUM, aber mit MinimumEnumSize = RegisterSize.
Die Strings als AnsiString/AnsiChar/PAnsiChar.
COM_Handle als
var COM_Handle: THandle;
.
Tipp: Das iparray als AnsiString ... läßt sich dann leichter verwenden.
Und siehst du ... gleich alle wichtigen Infos rausrücken und schon geht es schneller.