Quote:
Originally Posted by
randomizer 
Well the 16-bit environment had to die off at some point. Eventually it's all got to go the way of the dodo. You can't maintain old code forever, otherwise you just end up leaving security holes all over the place when it no longer gets properly maintained.
The 16-bit environment is still there in 32-bit Windows

On 64-bit, that environment wasn't ditched just because Microsoft decided to ditch it. No, the main reason is that a HANDLE has 32 significant bits on 64-bit Windows (even though they are 64-bit pointers). This means they cannot be truncated and given to 16-bit applications without loss off data in the truncated bits.
32-bit Windows, however, a HANDLE is only 16 bits significant (but are 32-bit pointers). They can pass the whole thing down to the 16-bit subsystem (with 16-bit pointers, so it fits perfectly) and everyone is happy.
Edited by tompsonn - 7/24/12 at 4:25am