using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using ORiN2.interop.CAO; namespace CSharp { public partial class Form1 : Form { private CaoEngine caoEng; private CaoWorkspaces caoWss; private CaoWorkspace caoWs; private CaoControllers caoCtrls; private CaoController caoCtrl; private CaoVariable caoVar; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { try { // CAOエンジン生成 caoEng = new CaoEngine(); caoWss = caoEng.Workspaces; caoWs = caoWss.Item(0); // コントローラコレクションの取得 caoCtrls = caoWs.Controllers; // コントローラに接続 caoCtrl = caoCtrls.Add("RC1", "CaoProv.Dummy", "", ""); // 変数オブジェクト取得 caoVar = caoCtrl.AddVariable("S11", ""); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void Form1_FormClosed(object sender, FormClosedEventArgs e) { try { // 変数オブジェクトの解放 if (caoVar != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(caoVar); caoVar = null; } // コントローラオブジェクトの解放 if (caoCtrl != null) { caoCtrls.Remove(caoCtrl.Name); System.Runtime.InteropServices.Marshal.ReleaseComObject(caoCtrl); caoCtrl = null; } System.Runtime.InteropServices.Marshal.ReleaseComObject(caoCtrls); caoCtrls = null; System.Runtime.InteropServices.Marshal.ReleaseComObject(caoWs); caoWs = null; System.Runtime.InteropServices.Marshal.ReleaseComObject(caoWss); caoWss = null; System.Runtime.InteropServices.Marshal.ReleaseComObject(caoEng); caoEng = null; } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void cmdPut_Click(object sender, EventArgs e) { try { caoVar.Value = txtValue.Text; } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void cmdGet_Click(object sender, EventArgs e) { try { txtValue.Text = caoVar.Value.ToString(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void cmdExit_Click(object sender, EventArgs e) { this.Close(); } } }