Показать сообщение отдельно
Старый 30.11.2004, 05:14   #10  
Alks is offline
Alks
Участник
 
336 / 41 (2) +++
Регистрация: 23.07.2004
Адрес: г. Новокузнецк
Re: Как получить конкретный интерфейс COM объекта
Цитата:
Изначально опубликовано Tony Green
Приветствую всех!

Вопрос из области интеграции с внешними приложениями. От этого внешнего приложения есть COM объект с толпой методов в различных интерфейсах.

Нужный метод находится в одном из них. Вопрос, как заполучить экземпляр класса COM в аксапте именно с нужным мне интерфейсом, а не с тем, который получается в результате команды new COM(....) ?
Если коротко: НИКАК.
Если поподробнее: Аксапта поддерживает только COM-объекты автоматизации, или по другому объекты диспетчеризации. Работа с такими COM-объектами происходит через один и единственный интерфейс IDispatch, который в специальной манере реализует метод Invoke через который и происходит вызов методов с заранее неизвестными именами и неизвестным количеством параметров.
Напрямую работать с любыми другими COM-интерфейсами Аксапта (насколько мне известно) не умеет, ибо это предполагает наличие поддержки раннего связывания в компиляторе и много другого.
Замечу в этом Аксапта в этом не одинока - это подход всех скриптовых языков (VBScript, JavaScript, внутренний язык 1С и пр.), для которых в общем то IDispatch и разрабатывался.
За это сообщение автора поблагодарили: Logger (1).