Re: ActiveX: как добраться до IOleObject?
От: vav Россия  
Дата: 17.03.02 10:50
Оценка:
Здравствуйте Harley, Вы писали:

H>OnMyFunc(var MyObject : IDispatch (пробовал и с OleVariant — это все равно

H>то же самое))
H>В эту функцию Visual Basic передает ссылку на некоторый ActiveX контрол -

H>procedure OnMyFunc(MyObject as Object)

H>Private Sub Mycontrol_OnMyFunc(ByVal MyObject As Object)
H> Set MyObject = SomeActiveXcontrol
H>End Sub

H>после того как ссылка на ActiveX передана в тело функции, из него надо

H>получить интерфейс на стандартнейший интерфейс — IOleObject. Но его
H>MyObject.QueryInterface(IOleObject, FOleObject) не берет, возвращая ошибку
H>No such interface supported
мож действительно нет.. А в Object Viewer нужный интерфейс есть?


H>Экстрагирование из IDispatch интерфейса IUnknown и потом из него IoleObject — также не помогло.

H>Вопрос: что же на самом деле передает VB вот этой строкой Set MyObject =
H>SomeActiveXcontrol,
H>я так понимаю — ссылку на coclass, но как из него вытянуть этот интерфейс?
H>и как все таки выделить ссылку на IOleObject из того что передается?
H>Может быть надо заставлять каким-то образом VB передавать нужный интерфейс?

какая дельфя? IOleObject может оказаться IOleObject_D4
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.