In linea di massima prova così:
codice:
'Dichiarazione della API CopyMemory
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
'Dichiarazione della struttura
Type tMsgMaterial
matID As String * 20
materialCode As String * 20
thick As Double
width As Double
time As String * 8
End Type
'Dichiarazione della routine di gestione eventi:
Private Sub AConn_DataArrival(ByVal lMsgCode As Long, ByVal sMsg As String, ByVal lMsgLength As Long)
Dim msg As tMsgMaterial
'Copia i dati
CopyMemory msg, sMsg, Len(tMsgMaterial)
'Prova ad estrarre le singole proprietà
MsgBox(msg.matID)
'...
End Sub
Importante, importantissimo: non sono sicuro che questo giochetto funzioni correttamente, perché non mi ricordo con esattezza come si comporta VB in queste situazioni; prima di eseguire il codice assicurati di avere salvato tutto, perché c'è la possibilità che il programma (e quindi l'IDE di VB, che ne interpreta il codice) vada in crash. Se stai lavorando su un PC con un sistema NT (tipo Windows 2000 o XP) non dovrebbero esserci altri effetti collaterali (al massimo un messaggio di errore di Windows, ma la cosa si dovrebbe risolvere lì).
Per poterti dare dei consigli più sensati comunque ho bisogno di sapere esattamente che genere di oggetto è "AConn", da cui si verifica l'evento DataArrival in questione.