'!TITLE "<ICCard>"

Sub Main 

	Dim caoCtrl as Object	' CaoControllerオブジェクト用
	Dim caoExt as Object	' CaoExensionオブジェクト用

	Dim vntRnd1 As Variant	' 認証用乱数１
	Dim vntRnd2 As Variant	' 認証用乱数２

	' 接続
	caoCtrl = cao.AddController("IC", "CaoProv.DENSO.ICCard", "", "Port=1")
	caoExt = m_Ctrl.AddExtension("@Mifare")

	' カードアクセスの前処理
	caoCtrl.Execute "ResetMain"          ' リーダライタの初期化
	caoExt.Execute "SetCarrierState", 2  ' カードへの電源供給開始

	' リーダライタを相互認証モードに設定
	vntRnd1 = m_Ext.Execute("Authentication1")  ' 認証用乱数１の取得
	vntRnd2 = Array(&HFF, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF)  ' 認証用乱数２(任意の値)
	caoExt.Execute "Authentication2", Array(vntRnd1, vntRnd2)

	' ICカードの活性化
	caoExt.Execute "AutoSelect", 1

	' Value値の読込み
	Dim vntData As Variant
	vntData = caoExt.Execute("Read", txtBlock.Text)
	I10 = vntData(3) * &H1000000 + vntData(2) * &H10000 + vntData(1) * &H100 + vntData(0)

	' Value値の書き込み
	caoExt.Execute "ValueWrite", Array(txtBlock.Text, I10)

	' 切断
	caoCtrl.Extensions.Remove caoExt.Index
	cao.Controllers.Rmove caoCtrl.Index

End Sub


