ну если в COM ваша функция объявлена типа так
function GetVersionDev(DevNum: Byte; out VersionDev: WideString): WordBool;
тогда скорее всего вот так будет работать:
X++:
COMVariant ver = new COMVariant(COMVariantInOut::Out, COMVariantType::VT_BSTR);
COMVariant varWrapper = new COMVariant(COMVariantInOut::In, ComVariantType::VT_VARIANT);
varWrapper.variant(ver);
met.GetVersionDev(1, varWrapper );
return ver.bStr();
хотя да, для верности лучше глянуть IDL
а то на Delphi оно как то не то