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ファイルをご覧ください。