外部アプリケーションにアクセス


Microsoft Component Object Model(COM)は、アプリケーションがバイナリソフトウェアコンポーネントから構築されるソフトウェアアーキテクチャで、ソフトウェアの開発がより簡単で効率よく行うことができます。

Originは、COMクライアントプログラミングの機能を提供しており、OriginProでのみサポートされています。 このメカニズムは、すべてのCOM(オートメーションサーバ)オブジェクトを表すオブジェクトタイプを使用します。すべてのCOMオブジェクトは2つの方法で初期化することができます。

//CreateObjectメソッドによる
Object oExcel;
oExcel = CreateObject("Excel.Application");

//既存のCOMオブジェクトからの初期化による
Object oWorkBooks;
oWorkBooks = oExcel.Workbooks;

Origin Cは、Matlabにアクセスするクラスも提供しており、これを使ってOriginとMatlab間の通信を可能にします。

#include <Origin.h>
#include <externApps.h> //MATLABクラスに必要なヘッダ
void test_Matlab()
{
    Matlab matlabObj(true);
    if(!matlabObj)
    {
        out_str("No MATLAB found");
        return;
    }
 
    //maという3x5の行列を定義
    string strRet;
    strRet = matlabObj.Execute("ma=[1 2 3 4 5; 
        4 5 6 7 8;10.3 4.5 -4.7 -23.2 -6.7]"); 
    out_str(strRet);// MATLABからstrを表示
 
    // 行列をOrigin行列に配置
    MatrixLayer matLayer;
    matLayer.Create();
    Matrix mao(matLayer);
 
    //MATLABの行列(ma)をOriginのmao行列に変換
    BOOL bRet = matlabObj.GetMatrix("ma", &mao);
}

Origin CでのCOMクライアントプログラミングは、MS Officeアプリケーションとデータのやりとりを行うのに使用できます。Excelワークシートからデータを読み、Originでグラフを作成し、それをWord文書に配置するサンプルコードを用意しています。これは、Originの\Samples\COM Server and Client\MS Office\Clientサブフォルダにあります。

Origin CのCOMプログラミングは、ADO(ActiveX Data Object)にアクセスしてデータベースと接続するのに使用することができ、SQLとAccessデータベースをワークシートにインポートし、データの修正を行った後データベースに戻すサンプルファイルがあります。詳細は、OriginのSamples\COM Server and Client\ADO\Client サブフォルダのADOSample.cファイルをご覧ください。