I've already stomped one bug. In one function, I'm passing a reference to a pointer. Unfortunately, what gets back is not my an updated pointer, but a pointer to random memory. Worked fine under 95 and NT. Go figure.
Ugh. I imagine this is gonna break a lot of stuff, and not just mine. Be interesting if my games magically start working again a couple of service-packs down the road. Until then, though, I'll be putting together a patch.