using ORiN2.ManagedCAO; using System; using System.Windows.Forms; namespace Message { public partial class frmMessage : Form { private CCaoEngine caoEng; private CCaoWorkspaces caoWss; private CCaoWorkspace caoWs; private CCaoControllers caoCtrls; private CCaoController caoCtrl; public frmMessage() { InitializeComponent(); } private void frmMessage_Load(object sender, EventArgs e) { try { // Create CAO Engine caoEng = new CCaoEngine(); caoWss = caoEng.Workspaces; caoWs = caoWss[0]; // Get Controller Collection caoCtrls = caoWs.Controllers; // Create CAO Controller caoCtrl = caoCtrls.Add("RC1", "CaoProv.Dummy", "", ""); // Register Event Handler caoCtrl.OnMessage += new OnMesssageEventHandler(OnMessage); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void frmMessage_FormClosed(object sender, FormClosedEventArgs e) { try { if (caoCtrl != null) { caoCtrl.OnMessage -= new OnMesssageEventHandler(OnMessage); Application.DoEvents(); } if (caoEng != null) { caoEng.Dispose(); } caoCtrl = null; caoCtrls = null; caoWs = null; caoWss = null; caoEng = null; } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void cmdExecute_Click(object sender, EventArgs e) { try { caoCtrl.Execute("", ""); } catch (Exception ex) { MessageBox.Show(ex.Message); } } // OnMessage Event private void OnMessage(object sender, OnMessageEventArgs e) { Action act = () => { textBox1.Text = e.Message.Value.ToString(); }; if (InvokeRequired) { Invoke(act); } else { act(); } } } }