I think adding Win98 support to that is indeed a lot of dirty work and I don't know if it's worth the effort.
Currently I'm looking at two possibilities: local networking and creating an ActiveX control (using PerlCtrl) that emulates OLE events.
by the way: the author of Device::ParallelPort asked me how to get Win32 support for his module and got my code, based upon jcwren's code... :)