Здравствуйте 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