Taillieu.Info

More Than a Hobby..

eID Reader

 

 Code examples that worked before on Ms Access 2010 on Windows 7 before update to eID-QuickInstaller-407-7466-signed_tcm227-258853.exe

info:

https://code.google.com/p/eid-mw/

In je VBA project moet je bij verwijzingen de "beidlibaxctrl 1.1 Type Library" aanvinken, die zul je pas vinden in je systeem na het installeren van de BEId Middelware software (35Mb) of runtime (13 of 12 Mb) en herstarten van je PC.

 http://www.helpmij.nl/forum/showthread.php/598653-Belgian-identity-card-uitlezen

 Option Compare Database

Private Sub cmdEID_Click()

Dim EIDlib1 As New EIDLIBCTRLLib.EIDlib
Dim lhandle As Long
Dim RetStatus As New EIDLIBCTRLLib.RetStatus
Dim MapColPicture As New EIDLIBCTRLLib.MapCollection
Dim MapColID As New EIDLIBCTRLLib.MapCollection
Dim MapColAddress As New EIDLIBCTRLLib.MapCollection
Dim CertifCheck As New EIDLIBCTRLLib.CertifCheck

'BEID Persoons Info
Dim strName As String
Dim strFirstName1 As String
Dim strBirthPlace As String
Dim strConvertedBirthDate As String
Dim strGender As String
Dim strNationality As String
Dim strNationalNumber As String

'BEID Adres Info
Dim strStreet As String
Dim strZipCode As String
Dim strMunicipality As String

'BEID_ Kaart Info
Dim strCardNumber As String
Dim strChipNumber As String
Dim strBegValDag, strBegVal, strBegValMaand As Object
Dim strBegValJaar As String
Dim strEndValDag, strEndVal, strEndValMaand As Object
Dim strIssuingMunicipality As String
'Dim strBegVal As String
'Dim strEndVal As String

Dim strDate As String, dteConvertedDate As Date


'BEID pasfoto Info
Dim Pasfoto_Temp() As Byte
Dim strFileName As String

' Omdat het uitlezen wel even kan duren cursor even op de zandloper zetten.
' Misschien is er een mogelijkheid te zoeken om hier een progressbar in de plaats te zetten.
DoCmd.Hourglass True

Set RetStatus = EIDlib1.Init("", 0, 0, lhandle)
Set RetStatus = EIDlib1.GetID(MapColID, CertifCheck)

strName = MapColID.GetValue("Name")
strFirstName1 = MapColID.GetValue("FirstName1")
strBirthPlace = MapColID.GetValue("BirthPlace")
strBirthDate = MapColID.GetValue("BirthDate")
strConvertedBirthDate = CDate(Mid$(strBirthDate, 5, 2) & "/" & Right$(strBirthDate, 2) & "/" & Left$(strBirthDate, 4))
strGender = MapColID.GetValue("Gender")
strNationality = MapColID.GetValue("Nationality")
strNationalNumber = MapColID.GetValue("NationalNumber")

Set RetStatus = EIDlib1.GetAddress(MapColAddress, CertifCheck)

strStreet = MapColAddress.GetValue("Street")
strZipCode = MapColAddress.GetValue("ZIPCode")
strMunicipality = MapColAddress.GetValue("Municipality")

strCardNumber = MapColID.GetValue("CardNumber")
strChipNumber = MapColID.GetValue("ChipNumber")
strIssuingMunicipality = MapColID.GetValue("IssuingMunicipality")
strBegVal = MapColID.GetValue("BeginValidityDate")
strConvertedBegVal = CDate(Mid$(strBegVal, 5, 2) & "/" & Right$(strBegVal, 2) & "/" & Left$(strBegVal, 4))
strEndVal = MapColID.GetValue("EndValidityDate")
strConvertedEndVal = CDate(Mid$(strEndVal, 5, 2) & "/" & Right$(strEndVal, 2) & "/" & Left$(strEndVal, 4))

'Haal eID foto op
Set RetStatus = EIDlib1.GetPicture(MapColPicture, CertifCheck)
Pasfoto_Temp = MapColPicture.GetValue("Picture")
'Schrijf eID foto weg naar een bestand
FileName = GetPath & strNationalNumber & ".jpg"
SavePicture PictureFromRes(Pasfoto_Temp), FileName
'Laad bestand in image control
ImageFrame.Picture = FileName

Set RetStatus = EIDlib1.Exit
If Me.NewRecord Then
Me.TxtNaam = strName
Me.TxtVoornaam = strFirstName1
Me.TxtGeboorteplaats = strBirthPlace
Me.TxtGeboortedatum = strConvertedBirthDate
Me.TxtGeslacht = strGender
Me.TxtNationaliteit = strNationality
Me.TxtRijksregisterNummer = strNationalNumber
Me.TxtAdres = strStreet
Me.TxtPostcode = strZipCode
Me.TxtWoonplaats = strMunicipality
Me.TxtWoonplaats.Requery
Me.TxtKaartnummer = strCardNumber
Me.TxtChipnummer = strChipNumber
Me.TxtUitreikingsplaats = strIssuingMunicipality
Me.TxtGeldigvan = strConvertedBegVal
Me.TxtGeldigtot = strConvertedEndVal

Else ' Update record information with new info from eID
If Me.TxtRijksregisterNummer = strNationalNumber Then
Me.TxtNaam = strName
Me.TxtVoornaam = strFirstName1
Me.TxtGeboorteplaats = strBirthPlace
Me.TxtGeboortedatum = strConvertedBirthDate
Me.TxtGeslacht = strGender
Me.TxtNationaliteit = strNationality
Me.TxtAdres = strStreet
Me.TxtPostcode = strZipCode
Me.TxtWoonplaats = strMunicipality
Me.TxtWoonplaats.Requery
Me.TxtKaartnummer = strCardNumber
Me.TxtChipnummer = strChipNumber
Me.TxtUitreikingsplaats = strIssuingMunicipality
Me.TxtGeldigvan = strConvertedBegVal
Me.TxtGeldigtot = strConvertedEndVal
Else
If Me.Naam = strName And Me.Voornaam = strFirstName1 Then
Me.TxtGeboorteplaats = strBirthPlace
Me.TxtGeboortedatum = strConvertedBirthDate
Me.TxtGeslacht = strGender
Me.TxtNationaliteit = strNationality
Me.TxtRijksregisterNummer = strNationalNumber
Me.TxtAdres = strStreet
Me.TxtPostcode = strZipCode
Me.TxtWoonplaats = strMunicipality
Me.TxtWoonplaats.Requery
Me.TxtKaartnummer = strCardNumber
Me.TxtChipnummer = strChipNumber
Me.TxtUitreikingsplaats = strIssuingMunicipality
Me.TxtGeldigvan = strConvertedBegVal
Me.TxtGeldigtot = strConvertedEndVal
Else
DoCmd.Hourglass False
If strName = "" Then
MsgBox "Geen eID kaart in lezer!" & _
vbCrLf & "Plaats de eID van de bewoner in de lezer.", vbCritical, "FOUT"
Else
MsgBox "De bewoner fiche en de eID kaart komen niet overeen!" & _
vbCrLf & "Zoek de juiste fiche die bij deze kaart hoort of maak een nieuwe fiche.", vbCritical, "FOUT"
End If
End If
End If
End If
Me.TxtNationaliteit = StrConv(Me.TxtNationaliteit, vbProperCase)
DoCmd.Hourglass False
End

Exit_cmdEID_Click:
Exit Sub
End Sub

Private Sub cmdVerwijderen_Click()
On Error GoTo Err_cmdVerwijderen_Click

Dim db As Database
Dim stDocName As String
Dim stLinkCriteria As String
DoCmd.SetWarnings False
If MsgBox("Bent U zeker deze pas EId met nummer " & Me.TxtId.Value & " terug te verwijderen?", vbInformation + vbYesNo) = vbYes Then
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE * FROM [Tbl_Eid] WHERE([Tbl_Eid].[Id_EID] = " & Me.TxtId.Value & ")"
Me.ImageFrame.Requery
Me.Form.Requery

DoCmd.SetWarnings True
Else
DoCmd.SetWarnings True
Exit Sub
End If
MsgBox "Dit EId werd verwijderd."
DoCmd.Requery
Exit_cmdVerwijderen_Click:
Exit Sub

Err_cmdVerwijderen_Click:
MsgBox Err.Description
Resume Exit_cmdVerwijderen_Click

End Sub

 
 
Sub TestEID()
'
' TestEID Macro
'
'
Dim EIDlib1 As New EIDLIBCTRLLib.EIDlib
 
Dim lhandle As Long
 
Dim RetStatus As New EIDLIBCTRLLib.RetStatus
Dim MapColPicture As New EIDLIBCTRLLib.MapCollection
Dim MapColID As New EIDLIBCTRLLib.MapCollection
Dim MapColAddress As New EIDLIBCTRLLib.MapCollection
Dim CertifCheck As New EIDLIBCTRLLib.CertifCheck
 
Dim strName As String
Dim strFirstName1 As String
Dim strBirthPlace As String
Dim strBirthDate As String
Dim strGender As String
Dim strNationality As String
Dim strNationalNumber As String
 
Dim strStreet As String
Dim strZipcode As String
Dim strMunicipality As String
 
Dim Pasfoto_Temp As Variant
 
Set RetStatus = EIDlib1.Init("", 0, 0, lhandle)
 
Set RetStatus = EIDlib1.GetID(MapColID, CertifCheck)
 
strName = MapColID.GetValue("Name")
strFirstName1 = MapColID.GetValue("FirstName1")
strBirthDate = MapColID.GetValue("BirthDate")
strBirthPlace = MapColID.GetValue("BirthPlace")
strGender = MapColID.GetValue("Gender")
strNationality = MapColID.GetValue("Nationality")
strNationalNumber = MapColID.GetValue("NationalNumber")
 
Set RetStatus = EIDlib1.GetAddress(MapColAddress, CertifCheck)
 
strStreet = MapColAddress.GetValue("Street")
strZipcode = MapColAddress.GetValue("ZIPCode")
strMunicipality = MapColAddress.GetValue("Municipality")
 
Set RetStatus = EIDlib1.GetPicture(MapColPicture, CertifCheck)
Pasfoto_Temp = MapColPicture.GetValue("Picture")
 
Set RetStatus = EIDlib1.Exit
 
MsgBox strName & ", " & strFirstName1 & vbCrLf & _
                      strStreet & vbCrLf & _
                      strZipcode & "        " & strMunicipality & vbCrLf,
vbOKOnly
End Sub
 
Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click
	' Written by Sylvain Kusters 
	' Free to use to everyone
	' If you come with better solution (quicker) please let me also profit from your code.
	' Dit e-mailadres wordt beveiligd tegen spambots. JavaScript dient ingeschakeld te zijn om het te bekijken. 
	' Visit also www.filmclub.info     

    Dim lHandle As Integer

        'BEID_ Kaart Info
        Dim strCardNumber As String
        Dim strBegValDag, strBegVal, strBegValMaand As Object
        Dim strBegValJaar As String
        Dim strEndValDag, strEndVal, strEndValMaand As Object
        Dim strEndValJaar As String
        Dim strIssuingMunicipality As String
        'BEID Persoons Info
        Dim strName As String
        Dim strFirstName1 As String
        Dim strBirthPlace As String
        Dim strBirthDate As String
        Dim strGender As String
        Dim strNationality As String
        Dim strNationalNumber As String
        'BEID Adres Info
        Dim strStreet As String
        Dim strZIPCode As String
        Dim strMunicipality As String
        'BEID PICTURE
        Dim PictureFileName As String
        Dim FirstPath As String
        Dim EndPath As String
        Dim Path As String

        Dim RetStatus As EIDLIBCTRLLib.RetStatus
        Dim MapColPicture As New EIDLIBCTRLLib.MapCollection
        Dim MapColID As New EIDLIBCTRLLib.MapCollection
        Dim MapColAddress As New EIDLIBCTRLLib.MapCollection
        Dim CertifCheck As New EIDLIBCTRLLib.CertifCheck

        RetStatus = EIDlib1.Init("", 0, 0, lHandle)
        If (RetStatus.GetGeneral = 0) Then
            RetStatus = EIDlib1.GetID(MapColID, CertifCheck)
            strChipNumber = MapColID.GetValue("ChipNumber")
            strCardNumber = MapColID.GetValue("CardNumber")
            strBegVal = MapColID.GetValue("BeginValidityDate")
            strEndVal = MapColID.GetValue("EndValidityDate")
            strIssuingMunicipality = MapColID.GetValue("IssuingMunicipality")
            strName = MapColID.GetValue("Name")
            strFirstName1 = MapColID.GetValue("FirstName1")
            strBirthDate = MapColID.GetValue("BirthDate")
            strBirthPlace = MapColID.GetValue("BirthPlace")
            strGender = MapColID.GetValue("Gender")
            strNationality = MapColID.GetValue("Nationality")
            strNationalNumber = MapColID.GetValue("NationalNumber")

            'Opsplitsen begindatum

            strBegValDag = VB.Right(strBegVal, 2)
            strBegValMaand = Mid(strBegVal, 5, 2)
            strBegValJaar = VB.Left(strBegVal, 4)
            'Opsplitsen einddatum

            strEndValDag = VB.Right(strEndVal, 2)
            strEndValMaand = Mid(strEndVal, 5, 2)
            strEndValJaar = VB.Left(strEndVal, 4)
            txtbxCardNumber.Text = strCardNumber
            txtbxBeginValidityDate.Text = strBegValDag & "/" & strBegValMaand & "/" & strBegValJaar
            txtbxEndValidityDate.Text = strEndValDag & "/" & strEndValMaand & "/" & strEndValJaar
            txtbxIssuingMunicipality.Text = strIssuingMunicipality
            txtbxName.Text = strName
            txtbxFirstName1.Text = strFirstName1
            txtbxBirthDate.Text = strBirthDate
            txtbxBirthPlace.Text = strBirthPlace
            txtbxGender.Text = strGender
            txtbxNationality.Text = strNationality
            txtbxNationalNumber.Text = strNationalNumber

        End If

        RetStatus = EIDlib1.GetAddress(MapColAddress, CertifCheck)

        strStreet = MapColAddress.GetValue("Street")

        strZIPCode = MapColAddress.GetValue("ZIPCode")

        strMunicipality = MapColAddress.GetValue("Municipality")

        txtbxStreet.Text = strStreet
        txtbxZIPCode.Text = strZIPCode
        txtbxMunicipality.Text = strMunicipality
        ' Picture inladen

        FirstPath = "(unknown)_BELPIC_"
        EndPath = "_4035"
        Path = "c:\Documents and settings\gebruiker\eid-cache"
        PictureFileName = FirstPath & strChipNumber & EndPath
        RetStatus = EIDlib1.GetPicture(MapColPicture, CertifCheck)
        Picture1.Image = System.Drawing.Image.FromFile(Path & "\" & PictureFileName)

        RetStatus = EIDlib1.Exit()

    End Sub

 

 
this is the code (working) for excel:
Option Explicit

'---------------------------------------------------------------------------------------
' Procedure : TestEID
' Author : Charlizenne ... and the website with e-id info
' Date : 19/06/2010
' Purpose : read info from passport-chip with cardreader
' the e-id software needs to be installed because you need a reference
' to beidlibaxctrl 1.1 type
'---------------------------------------------------------------------------------------
'
Sub TestEID()
'
' TestEID Macro
'
' You need to make a reference to * beidlibaxctrl 1.1 type * library
' it's on your system if you install the e-id software
'
Dim EIDlib1 As New EIDLIBCTRLLib.EIDlib

Dim lhandle As Long

Dim RetStatus As New EIDLIBCTRLLib.RetStatus
Dim MapColPicture As New EIDLIBCTRLLib.MapCollection
Dim MapColID As New EIDLIBCTRLLib.MapCollection
Dim MapColAddress As New EIDLIBCTRLLib.MapCollection
Dim CertifCheck As New EIDLIBCTRLLib.CertifCheck

Dim strName As String
Dim strFirstName1 As String
Dim strBirthPlace As String
Dim strBirthDate As String
Dim strGender As String
Dim strNationality As String
Dim strNationalNumber As String

Dim strStreet As String
Dim strZipcode As String
Dim strMunicipality As String

'this one holds the picture data in byte format
Dim Pasfoto_Temp() As Byte
'this one is the path for saving the picture
Dim mypathfoto As String

mypathfoto = "c:\temp\"

Set RetStatus = EIDlib1.Init("", 0, 0, lhandle)
If lhandle = 0 Then
MsgBox "Please insert your id-card ...", vbOKOnly, "Reading id-card ..."
Set RetStatus = EIDlib1.Exit
Exit Sub
End If

Set RetStatus = EIDlib1.GetID(MapColID, CertifCheck)

strName = MapColID.GetValue("Name")
strFirstName1 = MapColID.GetValue("FirstName1")
strBirthDate = MapColID.GetValue("BirthDate")
strBirthPlace = MapColID.GetValue("BirthPlace")
strGender = MapColID.GetValue("Gender")
strNationality = MapColID.GetValue("Nationality")
strNationalNumber = MapColID.GetValue("NationalNumber")

Set RetStatus = EIDlib1.GetAddress(MapColAddress, CertifCheck)

strStreet = MapColAddress.GetValue("Street")
strZipcode = MapColAddress.GetValue("ZIPCode")
strMunicipality = MapColAddress.GetValue("Municipality")

Set RetStatus = EIDlib1.GetPicture(MapColPicture, CertifCheck)

Pasfoto_Temp = MapColPicture.GetValue("Picture")

'here we pass the array of the picture to the function PictureFromRes
'and save it on the hard drive with the nationalnumber as filename
'I suppose this one is unique for everyone

SavePicture PictureFromRes(Pasfoto_Temp), mypathfoto & strNationalNumber & ".jpg"

Set RetStatus = EIDlib1.Exit

With ActiveWorkbook.ActiveSheet
.Cells(1, 2).Value = strName
.Cells(2, 2).Value = strFirstName1
.Cells(3, 2).Value = strBirthDate
.Cells(4, 2).Value = strBirthPlace
.Cells(5, 2).Value = strGender
.Cells(6, 2).Value = strNationality
.Cells(7, 2).Value = strNationalNumber
.Cells(8, 2).Value = strStreet
.Cells(9, 2).Value = strZipcode
.Cells(10, 2).Value = strMunicipality
.Cells(1, 3).Select
.Pictures.Insert mypathfoto & strNationalNumber & ".jpg"
.Cells(1, 1).Select
End With
End Sub

this is supposebly the code for VBA acces:
Sub TestEID()
'
' TestEID Macro
'
'
Dim EIDlib1 As New EIDLIBCTRLLib.EIDlib

Dim lhandle As Long

Dim RetStatus As New EIDLIBCTRLLib.RetStatus
Dim MapColPicture As New EIDLIBCTRLLib.MapCollection
Dim MapColID As New EIDLIBCTRLLib.MapCollection
Dim MapColAddress As New EIDLIBCTRLLib.MapCollection
Dim CertifCheck As New EIDLIBCTRLLib.CertifCheck

Dim strName As String
Dim strFirstName1 As String
Dim strBirthPlace As String
Dim strBirthDate As String
Dim strGender As String
Dim strNationality As String
Dim strNationalNumber As String

Dim strStreet As String
Dim strZipcode As String
Dim strMunicipality As String

Dim Pasfoto_Temp As Variant

Set RetStatus = EIDlib1.Init("", 0, 0, lhandle)

Set RetStatus = EIDlib1.GetID(MapColID, CertifCheck)

strName = MapColID.GetValue("Name")
strFirstName1 = MapColID.GetValue("FirstName1")
strBirthDate = MapColID.GetValue("BirthDate")
strBirthPlace = MapColID.GetValue("BirthPlace")
strGender = MapColID.GetValue("Gender")
strNationality = MapColID.GetValue("Nationality")
strNationalNumber = MapColID.GetValue("NationalNumber")

Set RetStatus = EIDlib1.GetAddress(MapColAddress, CertifCheck)

strStreet = MapColAddress.GetValue("Street")
strZipcode = MapColAddress.GetValue("ZIPCode")
strMunicipality = MapColAddress.GetValue("Municipality")

Set RetStatus = EIDlib1.GetPicture(MapColPicture, CertifCheck)
Pasfoto_Temp = MapColPicture.GetValue("Picture")

Set RetStatus = EIDlib1.Exit

MsgBox strName & ", " & strFirstName1 & vbCrLf & _
strStreet & vbCrLf & _
strZipcode & " " & strMunicipality & vbCrLf,
vbOKOnly
End Sub
 
'EIDLIBCTRLLib

Public Class Form1

    Private Sub btnClose_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnClose.Click
        'Close the application
        Me.Close()
        Application.Exit()

    End Sub

    Private Sub btnRead_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnRead.Click
        'Open the File dialog and save the file name
        Me.dlgopenFile.Filter = "Eid files (*.eid)|*.eid"
        Me.dlgopenFile.FileName = ""

        If Me.dlgopenFile.ShowDialog() <> Windows.Forms.DialogResult.OK Then
            Return
        End If

        Me.txtPath.Text = Me.dlgopenFile.FileName

        'Read the File, parse it, then fill the rawData structure and get the field value
        If Not System.IO.File.Exists(Me.txtPath.Text) Then
            MessageBox.Show("File does not exist!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return
        End If

        Dim FullCOntent As Byte()
        FullCOntent = System.IO.File.ReadAllBytes(Me.txtPath.Text)

        'Parse the file and fill the raw structure
        Dim raw As New EIDLIBCTRLLib.Raw
        ParseFile(FullCOntent, raw)

        Dim lhandle As Long
        Dim retStatus As EIDLIBCTRLLib.RetStatus

        Dim eidlib As New EIDLIBCTRLLib.EIDlib
        retStatus = eidlib.Init("VIRTUAL", 0, 0, lhandle)

        Dim MapColID As New EIDLIBCTRLLib.MapCollection
        Dim MapColAddress As New EIDLIBCTRLLib.MapCollection
        Dim MapColPicture As New EIDLIBCTRLLib.MapCollection
        Dim CertifCheck As New EIDLIBCTRLLib.CertifCheck

        'Set the raw structure into the virtual reader
        retStatus = eidlib.SetRawData(raw)
        If (retStatus.GetGeneral <> 0) Then
            MessageBox.Show("Bad file format.", "Error : " & retStatus.GetGeneral, MessageBoxButtons.OK, MessageBoxIcon.Error)
            eidlib.Exit()
            Return
        End If

        'Get the field Value
        retStatus = eidlib.GetID(MapColID, CertifCheck)
        If (retStatus.GetGeneral = 0) Then
            Me.txtName.Text = ConvertCodePage(MapColID.GetValue("Name"))
            Me.txtFirstName.Text = ConvertCodePage(MapColID.GetValue("FirstName1"))
        Else
            MessageBox.Show("Bad file format.", "Error : " & retStatus.GetGeneral, MessageBoxButtons.OK, MessageBoxIcon.Error)
            eidlib.Exit()
            Return
        End If

        retStatus = eidlib.GetAddress(MapColAddress, CertifCheck)
        If (retStatus.GetGeneral = 0) Then
            Me.txtStreet.Text = ConvertCodePage(MapColAddress.GetValue("Street"))
            Me.txtZip.Text = ConvertCodePage(MapColAddress.GetValue("ZIPCode"))
            Me.txtCity.Text = ConvertCodePage(MapColAddress.GetValue("Municipality"))
        Else
            MessageBox.Show("Bad file format.", "Error : " & retStatus.GetGeneral, MessageBoxButtons.OK, MessageBoxIcon.Error)
            eidlib.Exit()
            Return
        End If

        Dim picture As Byte() = Nothing
        Dim photo As Image

        retStatus = eidlib.GetPicture(MapColPicture, CertifCheck)
        If (retStatus.GetGeneral = 0) Then
            picture = MapColPicture.GetValue("Picture")

            Dim ms As System.IO.MemoryStream
            ms = New System.IO.MemoryStream()
            ms.Write(picture, 0, picture.Length)

            photo = Image.FromStream(ms, True)
            Me.imgPicture.Image = photo
        Else
            MessageBox.Show("Bad file format.", "Error : " & retStatus.GetGeneral, MessageBoxButtons.OK, MessageBoxIcon.Error)
            eidlib.Exit()
            Return
        End If

        eidlib.Exit()

    End Sub

    Private Sub ParseFile(ByVal FullCOntent As Byte(), ByRef raw As EIDLIBCTRLLib.Raw)

        Dim FileContent As Byte() = Nothing

        'File ID
        FileContent = GetTagValue(FullCOntent, 1)
        raw.SetIDData(FileContent)

        'File Sig ID
        FileContent = GetTagValue(FullCOntent, 2)
        raw.SetIDSigData(FileContent)

        'File Address
        FileContent = GetTagValue(FullCOntent, 3)
        raw.SetAddrData(FileContent)

        'File Sig Address
        FileContent = GetTagValue(FullCOntent, 4)
        raw.SetAddrSigData(FileContent)

        'File Picture
        FileContent = GetTagValue(FullCOntent, 5)
        raw.SetPictureData(FileContent)

        'File CardData
        FileContent = GetTagValue(FullCOntent, 6)
        raw.SetCardData(FileContent)

        'File TokenInfo
        FileContent = GetTagValue(FullCOntent, 7)
        raw.SetTokenInfoData(FileContent)

        'File RN
        FileContent = GetTagValue(FullCOntent, 8)
        raw.SetRNData(FileContent)

        'File Challenge
        FileContent = GetTagValue(FullCOntent, 9)
        raw.SetChallengeData(FileContent)

        'File Response
        FileContent = GetTagValue(FullCOntent, 10)
        raw.SetResponseData(FileContent)

    End Sub

    Private Function GetTagValue(ByVal FullContent As Byte(), ByVal TagID As Int32) As Byte()

        Dim result As Byte() = Nothing
        Dim bStop As Boolean = False
        Dim bFound As Boolean = False
        Dim count As Int32
        Dim i As Int32
        Dim CurrentTagID As Int32
        Dim CurrentTagLength As Int32
        count = 0

        Do
            If count >= FullContent.Length() Then
                bStop = True
            Else
                CurrentTagID = FullContent(count)
                CurrentTagLength = 0
                Do
                    count += 1
                    CurrentTagLength = CurrentTagLength * 128 + FullContent(count) Mod 128
                Loop While (FullContent(count) > 128)
            End If

            count += 1

            If TagID = CurrentTagID Then
                If count + CurrentTagLength - 1 < FullContent.Length() Then
                    bFound = True
                End If
                bStop = True
            Else
                count += CurrentTagLength
            End If

        Loop Until (bStop)

        If bFound Then
            ReDim result(CurrentTagLength - 1)
            For i = 0 To CurrentTagLength - 1
                result(i) = FullContent(count + i)
            Next
            Return result
        End If

        MessageBox.Show("Bad file format.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Return Nothing
    End Function

    Function ConvertCodePage(ByVal strSrc As String) As String
        Const CP_UTF8 = 65001
        Const CP_WIN = 1252

        Dim bytesSrc As Byte() = System.Text.Encoding.UTF8.GetBytes(strSrc)

        'Define the encoding
        Dim encodingSrc As System.Text.Encoding = System.Text.Encoding.GetEncoding(CP_UTF8)
        Dim encodingDest As System.Text.Encoding = System.Text.Encoding.GetEncoding(CP_WIN)

        'Convert the data To destination code page/charset
        Dim bytesDest As Byte() = System.Text.Encoding.Convert(encodingSrc, encodingDest, bytesSrc)

        Dim strDest As String = System.Text.Encoding.UTF8.GetString(bytesDest)
        Return strDest

    End Function

End Class
 
Private Sub btnReadEid_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadEid.Click

        Dim lHandle As Integer

        'BEID_ Kaart Info
        Dim strCardNumber As String
        Dim strChipNumber As String
        Dim strBegValDag, strBegVal, strBegValMaand As Object
        Dim strBegValJaar As String
        Dim strEndValDag, strEndVal, strEndValMaand As Object
        Dim strEndValJaar As String
        Dim strIssuingMunicipality As String
        'BEID Persoons Info
        Dim strName As String
        Dim strFirstName1 As String
        Dim strBirthPlace As String
        Dim strBirthDate As String
        Dim strGender As String
        Dim strNationality As String
        Dim strNationalNumber As String
        'BEID Adres Info
        Dim strStreet As String
        Dim strZIPCode As String
        Dim strMunicipality As String

        Dim RetStatus As EIDLIBCTRLLib.RetStatus
        Dim MapColPicture As New EIDLIBCTRLLib.MapCollection
        Dim MapColID As New EIDLIBCTRLLib.MapCollection
        Dim MapColAddress As New EIDLIBCTRLLib.MapCollection
        Dim CertifCheck As New EIDLIBCTRLLib.CertifCheck

        'voor de img
        Dim bytes() As Byte
        'Dim ms As System.IO.MemoryStream()


        Try
            RetStatus = EIDlib1.Init("", 0, 0, lHandle)
            If (RetStatus.GetGeneral = 0) Then
                RetStatus = EIDlib1.GetID(MapColID, CertifCheck)
                strChipNumber = MapColID.GetValue("ChipNumber").ToString
                strCardNumber = MapColID.GetValue("CardNumber").ToString
                strBegVal = MapColID.GetValue("BeginValidityDate")
                strEndVal = MapColID.GetValue("EndValidityDate")
                strIssuingMunicipality = MapColID.GetValue("IssuingMunicipality").ToString
                strName = MapColID.GetValue("Name").ToString
                strFirstName1 = MapColID.GetValue("FirstName1").ToString
                strBirthDate = MapColID.GetValue("BirthDate").ToString
                strBirthPlace = MapColID.GetValue("BirthPlace").ToString
                strGender = MapColID.GetValue("Gender").ToString
                strNationality = MapColID.GetValue("Nationality").ToString
                strNationalNumber = MapColID.GetValue("NationalNumber").ToString

                'Opsplitsen begindatum

                strBegValDag = VB.Right(strBegVal.ToString, 2)
                strBegValMaand = Mid(strBegVal.ToString, 5, 2)
                strBegValJaar = VB.Left(strBegVal.ToString, 4)
                'Opsplitsen einddatum

                strEndValDag = VB.Right(strEndVal.ToString, 2)
                strEndValMaand = Mid(strEndVal.ToString, 5, 2)
                strEndValJaar = VB.Left(strEndVal.ToString, 4)


            End If

            RetStatus = EIDlib1.GetAddress(MapColAddress, CertifCheck)

            strStreet = MapColAddress.GetValue("Street").ToString

            strZIPCode = MapColAddress.GetValue("ZIPCode").ToString

            strMunicipality = MapColAddress.GetValue("Municipality").ToString

            lblName.Text = strName
            lblFirstName.Text = strFirstName1
            lblBirthplace.Text = strBirthPlace
            lblBirthDate.Text = strBirthDate
            lblGender.Text = strGender
            lblNat.Text = strNationality
            lblNatNr.Text = strNationalNumber

            lblStreet.Text = strStreet
            lblPostCode.Text = strZIPCode
            lblGemeente.Text = strMunicipality
            lblLand.Text = "Belgiƫ"

            lblChipNr.Text = strChipNumber
            lblCardNr.Text = strCardNumber

            lblBegVal.Text = strBegVal.ToString
            lblEndVal.Text = strEndVal.ToString

            lblUitreikGemeente.Text = strIssuingMunicipality

            RetStatus = EIDlib1.GetPicture(MapColPicture, CertifCheck)

            bytes = DirectCast(MapColPicture.GetValue("Picture"), Byte())

            'ms = DirectCast(bytes, System.IO.MemoryStream)
            Dim ms As New System.IO.MemoryStream(bytes)

            PbFoto.Image = System.Drawing.Image.FromStream(ms)
            deelnemer = New EidData(strCardNumber, strChipNumber, strBegValDag, strBegVal, strBegValMaand, strBegValJaar, strEndValDag, strEndVal, strEndValMaand, strEndValJaar, strIssuingMunicipality, strName, strFirstName1, strBirthPlace, strBirthDate, strGender, strNationality, strNationalNumber, strStreet, strZIPCode, strMunicipality, bytes)

            kaartGelezen = 1

        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try


    End Sub