I thought it wasn't safe to do GUI stuff inside a SYNCPROC callback, but now I see that the VB NetRadio example does it:
Sub EndSync(ByVal handle As Long, ByVal channel As Long, ByVal data As Long, ByVal user As Long)
With frmNetRadio
.lblName.Caption = "not playing"
.lblBPS.Caption = ""
.lblSong.Caption = ""
End With
End Sub
Sub DoMeta()
'...
frmNetRadio.lblSong.Caption = TmpNameHold
'...
End Sub
Sub MetaSync(ByVal handle As Long, ByVal channel As Long, ByVal data As Long, ByVal user As Long)
Call DoMeta
End Sub
Maybe it depends on the type of sync? I briefly tried this with the BASS_SYNC_END and it doesn't seem to crash the IDE.