и дальше спокойно вызывается метод Method1()
сейчас мне надо вызвать метод Method2()... но у меня никак не получается взять интерфейс IMyInterface2, подскажите пожалуйста как это надо сделать
Здравствуйте, Аноним, Вы писали:
А>и дальше спокойно вызывается метод Method1() А>сейчас мне надо вызвать метод Method2()... но у меня никак не получается взять интерфейс IMyInterface2, подскажите пожалуйста как это надо сделать
Никак. VB не работает с dispinterface, он работает с IDispatch, который у объекта ОДИН.
Здравствуйте, Vi2, Вы писали:
Vi2>Здравствуйте, Аноним, Вы писали:
А>>и дальше спокойно вызывается метод Method1() А>>сейчас мне надо вызвать метод Method2()... но у меня никак не получается взять интерфейс IMyInterface2, подскажите пожалуйста как это надо сделать
Vi2>Никак. VB не работает с dispinterface, он работает с IDispatch, который у объекта ОДИН.
как это не работает, если MyInterface1 я могу спокойно получить?
Здравствуйте, Vi2, Вы писали:
Vi2>Здравствуйте, Аноним, Вы писали:
А>>как это не работает, если MyInterface1 я могу спокойно получить?
Vi2>VB просит интерфейс IDispatch и работает с ним. Значит, возвращается dispinterface IMyInterface, ведь он тоже IDispatch!
Vi2>Попробуй ввести переменную MyInterfase2 As MyLib.IMyInterface2 и присвоить ей Set MyInterfase2 = MyInterfase. Авось сработает.
Vi2>Никак. VB не работает с dispinterface, он работает с IDispatch, который у объекта ОДИН.
Не. ЕМНИП VB работает как с ранним, так и с поздним связыванием и через Vtable нормально работает с интерфейсами, не унаследованными от IDispatch, если они опубликованы в IDL.
Vi2>Попробуй ввести переменную MyInterfase2 As MyLib.IMyInterface2 и присвоить ей Set MyInterfase2 = MyInterfase. Авось сработает.
Это и есть раннее связывание.