Russian Qt Forum

Qt => ActiveX => Тема начата: RankoR от Январь 15, 2010, 21:13



Название: Проблема с ActiveX
Отправлено: RankoR от Январь 15, 2010, 21:13
Здравствуйте. Не первый день мучаюсь с такой проблемой
Есть активИкс-сервер. Использую его в QAxWidget

Код:
axObj = new QAxWidget;
axObj ->setControl("<GUID>");

С этим проблем нет. У сервера есть метод А() (со своим GUID'ом), и у него, в свою очередь, есть метод B(). В делфи я делал так: Object.A.B;
Пытаюсь в Qt:
qDebug() << axObj->dynamicCall("A().B()");
В ответ получаю сообщение о несуществовании метода А()
qDebug() << axObj->dynamicCall("A()"); 
А вот это прекрасно работает, и возвращает указатель на Dispatch

Вопрос: Как мне вызвать метод В() ?

Заранее спасибо.


Название: Re: Проблема с ActiveX
Отправлено: Dendy от Январь 15, 2010, 21:27
Прикастировать результат вызова A() к QAxObject и потом вызвать B()?


Название: Re: Проблема с ActiveX
Отправлено: RankoR от Январь 15, 2010, 21:34
Поподробнее можно, если не трудно?


Название: Re: Проблема с ActiveX
Отправлено: Dendy от Январь 15, 2010, 21:39
Что пишет qDebug() << axObj->dynamicCall("A()"); ?


Название: Re: Проблема с ActiveX
Отправлено: RankoR от Январь 15, 2010, 21:55
QVariant(IDispatch*, )


Название: Re: Проблема с ActiveX
Отправлено: Dendy от Январь 15, 2010, 22:48
С ActiveX я работал мало, сложно сказать. Попробуйте как-нибудь дёрнуть из этого IDispatch метод B().


Название: Re: Проблема с ActiveX
Отправлено: RankoR от Январь 15, 2010, 22:58
Спасибо, попробую =)