есть COM объект у которого есть метод [id(5), helpstring("method SetArrayValue")] HRESULT SetArrayValue([in] VARIANT Value, [in] VARIANT Args, [in, out] VARIANT *RetVal);
Value — значение
Args — куда (индексы по измереням)
RetVal — сам массив
фишка в следующем: на возврате из метода происходит исключение Invalid procedure call or argument или Method .... of ..... Failed...
причём что самое ваще странное: у safearray есть поле fFeatures, которое указывает что и как лежит в массиве... так вот значение, которое я там вижу в отладчике — отсутствует в msdn-е! — тобишь получчается, что так не бывает! хм... (fFeatures=0x00a)
помогите, плз...
и ещё.. присылайте свои ответы, плз на _alexi_@rambler.ru
1. Out of topic.
2. На такие вопросы без исходника ответить очень сложно.
PS
Создайте маленький пример. Создайте навую тему в COM/DCOM/ActiveX где дайте ссылку на этот пример. И объясните зачем вы испльзуете Variant-ы вместо нармальных типов?
PPS
Если есть проблемы с тем кде разместить пример мыльте сюда tsc@optim.ru брошу его на свою FTP-иху (и заоодно гляну сам).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Полностью согласен с VladD2 без внутринности ф-и тяжеловато,
учитывая что я запихивал VARIANT в SafeArray и все было нормално
VD>И объясните зачем вы испльзуете Variant-ы вместо нармальных типов?
использование типа VARIANT просто необходимо, для того что бы
люди могли нормально работать с COM из VB и VB Script.