Il problema è che con il codice che hai creato tu vuoi interagire direttamente con la porta parallela, tramite un processo in esecuzione in modo utente e questo non è permesso dalla maggior parte dei sistemi operativi. In generale sia IN che OUT sono istruzioni privilegiate che possono essere eseguite solo da processi del sistema operativo!

Con le dll, che si usano per esempio anche col vb6, il problema non si pone perchè la gestione della comunicazione diretta è passata al sistema operativo e se ne occupa lui.