3-4 sata muke i evo koda kome treba! Prosto je bilo, samo sam se spetljao sa imenom Card Readera, a moglo je i da se pusti kao parametar prazan string

Ajd u zdravlje!
----------------------------------------------------
'ovo je VB.net kod, ali radice i C# istom logikom
Imports eVehicleRegistrationCOM
Imports System.Runtime.InteropServices
Public Class Form1
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim vd As New eVehicleRegistrationCOM.Registration
Try
Dim procitano As Integer 'ovo je promenljiva koja prihvata povratnu vrednost
'ovde sam instancirao strukture
Dim ddata As New _DOCUMENT_DATA
Dim rdata As New _REGISTRATION_DATA
Dim vhData As New _VEHICLE_DATA
'smatram da je Initialize isto sto i sdStartup po dokumentaciji
'takodje, u ovom trenutku zasvetli citac kartice
procitano = vd.Initialize() 'ovde vrati vrednost 0
procitano = vd.GetReaderName(0, "") 'ovde vrati vrednost 0
procitano = vd.SelectReader("") 'ovde vrati vrednost -2146435063 ako se ne pusti ovaj prazan string
'ovako se pokupe podaci sa kartice i spremni su za iscitavanje preko ReadXXXX metode
procitano = vd.ProcessNewCard() 'ovde vrati vrednost 0 ako je ok
procitano = vd.ReadDocumentData(ddata) 'ako ovde vrati vrednost 12 - to bi znacilo greska ERROR_INVALID_ACCESS, treba da vraca 0
'jasno je da sledecem kodu treba proslediti prvi parametar 1, 2 ili 3, ali sam probao i sa 0 i dobio:
procitano = vd.ReadRegistration(0, rdata) 'ovde vrati vrednost 87 - to bi znacilo greska ERROR_INVALID_PARAMETER
procitano = vd.ReadRegistration(1, rdata) 'ovde vrati vrednost 0, to je OK
procitano = vd.ReadRegistration(2, rdata) 'ovde vrati vrednost 0, to je OK
procitano = vd.ReadRegistration(3, rdata) 'ovde vrati vrednost 0, to je OK
procitano = vd.ReadVehicleData(vhData) 'ako ovde vrati vrednost 12 - to bi znacilo greska ERROR_INVALID_ACCESS, treba da vraca 0
MessageBox.Show(ddata.serialNumber.ToString) 'ako ovde javi gresku {"Object reference not set to an instance of an object."} onda natrag na projektovanje

Catch ex As Exception
MessageBox.Show(ex.Message.ToString)
Finally
'Finalize je isto sto i sdCleanup po dokumentaciji
vd.Finalize()
End Try
End Sub
End Class
-----------------------------------------------------