MATLAB интегрирование COM

Концепции и терминология

В то время как идеи позади технологии COM являются прямыми, терминология не. Значение условий COM изменялось в зависимости от времени, и существуют немного кратких определений. Вот некоторые условия, с которыми необходимо быть знакомы. Это не всесторонние определения. Для полного описания COM необходимо будет консультироваться с внешними ресурсами.

COM-объекты, клиенты и серверы

object COM является компонентом программного обеспечения, который соответствует Объектной модели программных компонентов. COM осуществляет инкапсуляцию объекта, предотвращая прямой доступ его данных и реализацию. COM-объекты представляют интерфейсы, которые состоят из свойств, методов и событий.

client COM является программой, которая использует COM-объекты. COM-объекты, которые представляют функциональность для использования, называются servers COM. Серверы COM могут быть в процессе или из процесса. Примером сервера из процесса является программа электронной таблицы Microsoft® Excel®.

Microsoft ActiveX® control является типом внутрипроцессорного COM-сервера, который требует контейнера управления. Элементы управления ActiveX обычно имеют пользовательский интерфейс. Примером является управление Microsoft Calendar. Контейнер управления является приложением, способным к хостингу элементов управления ActiveX. Окно рисунка MATLAB® или модель Simulink® являются примерами контейнеров управления.

MATLAB может использоваться или в качестве COM-клиента или в качестве Сервера автоматизации COM.

Интерфейсы

Функциональность компонента задана одним или несколькими интерфейсами. Чтобы использовать COM-компонент, необходимо узнать о его интерфейсах, и методах, свойствах и событиях, реализованных компонентом. Поставщик компонента предоставляет эту информацию.

Существует два стандартных COM-интерфейса:

  • IUnknown — Интерфейс требуется всеми COM-компонентами. Все другие COM-интерфейсы выведены от IUnknown.

  • IDispatch — Интерфейс, который представляет объекты, методы и свойства к приложениям та Автоматизация поддержки.

COM-клиент MATLAB

COM-клиент является программой, которая управляет COM-объектами. Эти объекты могут запуститься в приложении MATLAB или могут быть частью другого приложения, которое представляет его объекты как программируемый интерфейс к приложению.

Используя MATLAB, когда COM-клиент обеспечивает два метода для разработки программ в MATLAB:

  • Можно включать COM-компоненты в приложение MATLAB (например, электронная таблица).

  • Можно получить доступ к существующим приложениям, которые представляют объекты через Автоматизацию.

В типичном сценарии MATLAB создает элементы управления ActiveX в окнах рисунка, которыми управляет MATLAB через свойства средств управления, методы и события. Это полезно, потому что там существует большое разнообразие компонентов графического интерфейса пользователя, реализованных как элементы управления ActiveX. Например, программа Microsoft Internet Explorer® представляет объекты, которые можно включать в фигуру, чтобы отобразить файл HTML. Также существует treeviews, электронные таблицы и календари, доступные от множества источников.

COM-клиенты MATLAB могут получить доступ к приложениям, которые поддерживают Автоматизацию, такую как программа электронной таблицы Excel. В этом случае MATLAB создает Сервер автоматизации, в котором можно запустить приложение и можно возвратить указатель на первичный интерфейс для созданного объекта.

Сервер автоматизации COM MATLAB

Automation обеспечивает инфраструктуру, посредством чего приложения вызвали контроллеры автоматизации, может получить доступ и управлять (т.е. установить свойства или обратиться к методам), совместно использованные объекты автоматизации, которые экспортируются другими приложениями, названными Серверами автоматизации. Любая программа Windows®, которая может быть сконфигурирована как контроллер Автоматизации, может управлять MATLAB.

Например, с помощью языка программирования Microsoft Visual Basic®, можно запустить скрипт MATLAB в представлении Microsoft PowerPoint®. В этом случае PowerPoint является контроллером, и MATLAB является сервером.

Похожие темы