Por que no lo haces con el control MSCOMM.ocx nativo de VB, no t compliques, funciena 100%
encontraras ayuda de este control en el MSDN.
es complicada trabajar un evento en la DLL, y no cabra tiempo suficiente para explicartelo, ya q tendrias q trabajr las clases para crear un evento.