﻿Imports ORiN2.ManagedCAO

Public Class Form1
    Private eng As CCaoEngine = Nothing
    Private ctrl As CCaoController = Nothing
    Private variable As CCaoVariable = Nothing

    Private Sub DisposeEngine()
        If Not IsNothing(eng) Then
            eng.Dispose()
            eng = Nothing
        End If
    End Sub

    Private Sub BtnConnect_Click(sender As Object, e As EventArgs) Handles BtnConnect.Click
        If Not IsNothing(eng) Then Return
        Try
            eng = New CCaoEngine()
            ctrl = eng.Workspaces(0).AddController( _
                "SampleController", _
                "CaoProv.DENSO.IoTDS", _
                "", _
                "Server=127.0.0.1")
            variable = ctrl.AddVariable("SampleItem", "")
        Catch ex As Exception
            MessageBox.Show(Me, ex.ToString(), Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
            DisposeEngine()
        End Try
    End Sub

    Private Sub BtnGetValue_Click(sender As Object, e As EventArgs) Handles BtnGetValue.Click
        If IsNothing(variable) Then Return
        Dim value As Object = variable.Value
        MessageBox.Show(Me, String.Format("{0}({1})", value, _
                        If(IsNothing(value), "Nothing", value.GetType().Name)))
    End Sub

    Private Sub Form1_FormClosed(sender As Object, e As FormClosedEventArgs) _
        Handles MyBase.FormClosed
        DisposeEngine()
    End Sub
End Class
