Com, мАССИВЫ с сЕРВЕРА
В интерфейсе COM-сервера определяю HRESULT IMyIntf::func(VARIANT* pvar /*out,retval*/). При вызове она создает psa=safearray, забивает массив данными, pvar->vt = VT_ARRAY|VT_I4, pvar->parray = psa.
А на клиенте бардак.
При вызове серверной функции func(..) массив действительно перекачивается к клиенту - массив 4 метра хорошо виден в Task Manager когда проходишь все дебагером. Но при завершении функции-оболочки IMyIntfDist::func(VARIANT* pvar) вызывается деструктор класса TAutoArgs, через который по Borland'у передаются все параметры, и полученный массив грохается. Виной этому TVariantT::~TVariant() {::ClearVariant(this); } вызываемый попутно кодом борландовского шаблона.
Но это-же не правильно. Или это я неправильный :)