Интерфейсы COM-объектов

Интерфейсы IUnknown и IDispatch

Когда вы вызываете actxserver функция, MATLAB® создает сервер и возвращает указатель на интерфейс сервера как средство доступа к его свойствам и методам. Программное обеспечение использует следующий процесс, чтобы определить, какой указатель возвращать:

  1. Сначала получите указатель на интерфейс IUnknown из компонента. Для реализации этого интерфейса требуются все компоненты.

  2. Попытка получить интерфейс IDispatch. Если IDispatch реализован, верните указатель на этот интерфейс. Если IDispatch не реализован, верните указатель в IUnknown.

Дополнительные интерфейсы

Компоненты часто обеспечивают дополнительные интерфейсы, основанные на IDispatch, которые реализованы как свойства. Как и любое другое свойство, вы получаете эти интерфейсы с помощью MATLAB get функция.

Для примера, Microsoft® Excel® компонент содержит многочисленные интерфейсы. Чтобы перечислить эти интерфейсы, наряду со свойствами Excel, введите:

h = actxserver('Excel.Application');
get(h)

MATLAB отображает такую информацию, как:

    Application: [1x1 Interface.Microsoft_Excel_9.0_
Object_Library._Application]
        Creator: 'xlCreatorCode'
         Parent: [1x1 Interface.Microsoft_Excel_9.0_
Object_Library._Application]
     ActiveCell: []
    ActiveChart: [1x50 char]
                 .
                 .

Чтобы увидеть, Workbooks является интерфейсом, тип:

w = h.Workbooks

MATLAB отображает:

w =
   Interface.Microsoft_Excel_9.0_Object_Library.Workbooks

Отображаемая информация зависит от версии программного обеспечения Excel, имеющейся в системе.

Для примеров, использующих Excel в MATLAB, смотрите:

Похожие темы