Bonjour,

J'essaie de réaliser un petit outil permettant de lire des cartes sans contact à partir d'un lecteur. Pour cela j'utilise une API sous forme de dll.
Pour le moment j'ai créé une IHM avec un bouton, lorsque je clique sur ce bouton ca permet d'executer le polling sur le lecteur de carte.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Sub Button1Click(sender As Object, e As EventArgs)
		MyReader.CSCReaderStartPollingEx()
	End Sub
Lorsque je pose une carte sur le lecteur, le lecteur fait appel à la fonction de callback et permet de récuperer des infos sur le status du lecteur (carte détecté, type de carte,...)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Public Class CscApi
 
Property CscReaderStatus As StatusCSC = Nothing
 
<UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)>
Private Delegate Sub fCallBackEx (ByVal hCsc As System.UInt32, byref pxStatusCSC As StatusCSC)
 
Public Sub CallBackExFunc (ByVal hCsc As System.UInt32, byref pxStatusCSC As StatusCSC)
	Me.CscReaderStatus = pxStatusCSC
End Sub
 
End Class
Tout fonctionne bien, le problème est que je ne sais pas quoi faire une fois que le lecteur fait appel à la fonction de callback, par exemple je devrais une fois la carte détecté , lire le contenu de la carte avec une fonction de l'api, mais dans la documentation de l'api il est conseillé de ne pas faire appel à une autre fonction de l'api dans la fonction de callback elle meme.

Pour le moment dans la fonction de callback je stocke le contenu de l'état du lecteur (comme conseillé dans la documentation), mais apres je ne sais pas comment déclencher un évenement ou autre chose pour pouvoir executer une autre fonction.

Voici ce qui est écrit dans la doc de l'API sur la fonction de callback

Here, you should save the content pointed to by <pxStatusCSC >
* and set a synchronization object with your application
Je ne sais comprend pas du tout ce que l'on entend par "set a synchronization object with your application ? Si quelqu'un pouvait m'aiguiller ou me donner un exemple, ca m'aiderait beaucoup

Merci par avance.

cdt,
yaume