Re[2]: ошибка DISP_E_ARRAYISLOCKED в AddPolyline()
От: Hedge  
Дата: 01.08.05 13:23
Оценка:
Здравствуйте, Vi2, Вы писали:

Vi2>Возможные ошибочные действия в том, что создается VARIANT и массив в нем с рассогласованием типов данных в них — vcoords.vt=VT_ARRAY|VT_VARIANT и vcoords.parray = SafeArrayCreate(VT_I4,...). Выделенные коды должны быть одинаковыми.


Vi2>Также есть подозрение, что PowerPoint не работает с массивами, у которых нижний предел равен 0. Также возможно, что PowerPoint не работает с типом данных VT_I4. Последние подозрения основываются на MSDN примере (Dim triArray(1 To 4, 1 To 2) As Single ... ActivePresentation.Slides(1).Shapes.AddPolyline SafeArrayOfPoints:=triArray).


Vi2>Хотя возможно, что должно сработать и с типом данных long (вместо float) и VT_I4 (вместо VT_R4), и с нижним индексом 0.


Заработало!
Изменение нижнего индекса на 1 видимого эффекта не оказало.
Сменил тип тип элемента на VT_R4 в vcoords.vt и SafeArrayCreate().

Спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.