Hmm, as a side note, I just noticed that at least the WinSDK 6.0 <WinSock2.h> (or rather <ws2def.h> (of 2007-09-27) has replaced the #define of IPPROTO_IPV6 with a corresponding enum. The file also requires the #define _WIN32_WINNT to be >= 0x0501 to add the symbol to the enum. This means that the (quite a few) places in the Pike code that use #if defined(IPPROTO_IPV6) need to be fixed as well.
Yea, that seems to be what's in my headers (SDK 6.0A).