Здравствуйте, Flamer, Вы писали:
F>Здравствуйте, Sash, Вы писали:
F>
S>>Но, как значения положить в параметр типа VARIANT*, имея массив типа Variant? Вручную меняю все VARIANT на Variant и тогда все нормально. Но это неудобно. Буду благодарен за помощь.
F>Все просто и не надо нервничать
У класса TVariant, помимо всего прочего, определен
F>
F>F>operator VARIANT*
F>
F>Ничего не напоминает?
К тому-же, у этого самого TVariant есть метод ChangeType, который по ходу меняет vt. Так что — TVariant в зубы и вперед!
F>З.Ы. Кстати, к слову: тот-же operator = у TVariant кюшает практически все...
F>
<Большое спасибо за помощь. Сделал я так:
STDMETHODIMP TmakeImpl::getVar(VARIANT Energy, VARIANT* Result)
{
TVariant EnergyPtr(Energy);
TVariant ResultPtr;
ResultPtr.operator =(Result);
Variant vResult = (Variant) ResultPtr;
vResult.PutElement(1., 0); vResult.PutElement(3., 2);
}
Клиент получает значения из Result. Но почему замена
TVariant ResultPtr;
ResultPtr.operator =(Result);
на TVariant ResultPtr(Result);
не проходит ?
Какие могут быть варианты?