Il codice che hai preso non va bene, è per VB6 e non per VB.NET. Dai un'occhiata a questa classe, mi pare piuttosto ben fatta.