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

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

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

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

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

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

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

Например, компонент 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 см.:

Похожие темы