Main Content

COM オブジェクト インターフェイス

IUnknown および IDispatch インターフェイス

関数 actxserver を呼び出すと、MATLAB® はサーバーを作成し、プロパティとメソッドにアクセスする手段としてサーバー インターフェイスにハンドルを返します。ソフトウェアは次のプロセスを使用して、返すハンドルを決定します。

  1. まず、コンポーネントから IUnknown インターフェイスのハンドルを取得します。このインターフェイスを実装するにはすべての COM コンポーネントが必要です。

  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 ソフトウェアのバージョンによって異なります。

MATLAB での Excel の使用例は、以下の節を参照してください。

関連するトピック