ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

COM のご利用の前に

COM の紹介

COM クライアントは、COM オブジェクトを操作するプログラムです。これらのオブジェクトは、MATLAB® アプリケーション内で実行することができ、またオブジェクトをプログラム インターフェイスとしてアプリケーションに公開する別のアプリケーションの一部とすることもできます。

この節では、MATLAB を COM クライアントとして使用する方法の例を示します。

    メモ:   MATLAB には、Microsoft® Visual Basic® プログラミング言語で作成されたアプリケーションなど、他のアプリケーションからオートメーション サーバーとしてアクセスすることもできます。この手法については、MATLAB COM オートメーション サーバー インターフェイスを参照してください。

基本的な COM 関数

COM オブジェクトの使用を開始するには、オブジェクトを作成し、それに関する情報を得る必要があります。この節では、次のトピックについて説明します。

COM オブジェクトのインスタンスの作成

以下の 2 つの MATLAB 関数を使って、COM オブジェクトを作成できます。

  • actxcontrol — MATLAB figure にコントロールのインスタンスを作成します。

  • actxserver — オートメーションをサポートするアプリケーションで公開されるオブジェクトを MATLAB から作成、操作します。

各関数は、オブジェクトのメイン インターフェイスに "ハンドル" を返します。これを使ってオブジェクトのメソッド、プロパティ、イベントおよびその他のインターフェイスにアクセスします。

特定の COM コントロールに関する情報の取得

一般的に、オブジェクトを使って何ができるかは、関数 methods、関数 get および関数 events を使って判断できます。

メソッドに関する情報-  handle オブジェクトによってサポートされるメソッドを一覧表示するには、次を入力します。

methods(handle)

プロパティに関する情報-  handle オブジェクトのプロパティを一覧表示するには、次を入力します。

get(handle)

PropertyName プロパティの値を確認するには、次を入力します。

get(handle,'PropertyName')

プロパティの値を変更するには、関数 set を使用します。

イベントに関する情報-  handle オブジェクトによってサポートされるイベントを一覧表示するには、次を入力します。

events(handle)

呼び出し構文の詳細は、COM オブジェクトへのインターフェイスの取得およびオブジェクトでのメソッドの呼び出しを参照してください。イベントの詳細は、イベントの使用を参照してください。

オブジェクトの ProgID の取得

既にコンピューターに登録されている COM コントロールのプログラム識別子 (ProgID) を入手するには、actxcontrollist コマンドを使用します。actxcontrolselect コマンドと共に表示されている [ActiveX Control Selector] を使用することもできます。このインターフェイスは、コンピューターにインストールされているコントロールのインスタンスを表示します。

これらのコマンドの使い方の詳細は、ActiveX コントロールの作成を参照してください。

カスタム コントロールの登録

MATLAB プログラムでカスタム コントロール (例、ご使用のアプリケーションに特別に作成したもの) を使用する場合、それを使用する前に、Microsoft Windows® オペレーティング システムにそれを登録しなければなりません。これは、次のオペレーティング システム コマンドを発行することにより、MATLAB プログラムから行うことができます。

!regsvr32 /s filename.ocx

ここで、filename とはコントロールが入っているファイルの名前です。プログラムでこのコマンドを使うと、他のユーザーが MATLAB プログラムを実行したときに、そのコンピューターに登録することで利用できるようになるカスタム コントロールを提供できます。また、Microsoft ActiveX® コントロールの複数のバージョンを供給して、すべてのユーザーが同じバージョンをもつようにします。

登録に関する詳細は、コントロールとサーバーの登録を参照してください。

この情報は役に立ちましたか?