I decided to use your VB6 example as a start, seems like a good decision so far

One thing that made me wonder was the "verifyid" of each packet. I turned on race tracking and guaranteed delivery, thus I had to send an ACK packet for each received packet with the verifyID of the received packet.
I basically created a CASE for each packet in the ParseMessage function so I have eg:
Case "PLL"
Dim udtPLL As IS_PLL
CopyMemory udtPLL, bytRecvData(0), LenB(udtPLL)
Call removeid(udtPLL)
and another function which deals with the packet, in this case removeid() :
Private Sub removeid(udtPLL As IS_PLL)
MsgBox (udtPLL.bytVerifyId)
End Sub
It outputs "?".
I'm not even sure what "bytVerifyId" contains in this example... something like an array of bytes maybe?
my VB days are so long gone
