LONGs and ULONGs are 32-bits on 64-bit Windows, so when porting the API to 64 bits, types that were typedef'd as such on 32-bit, but actually need to be 64-bits wide on 64-bit systems, were replaced with ULONG_PTR.
LONGs and ULONGs are 32-bits on 64-bit Windows, so when porting the API to 64 bits, types that were typedef'd as such on 32-bit, but actually need to be 64-bits wide on 64-bit systems, were replaced with ULONG_PTR.
So the equivalent to rust's usize?
(I don’t have it in me right now to track down the first developer releases of 64-bit SDKs or the first C99 draft to have uintptr_t, sorry.)
At the same time, the existence of those types is not really about application support (which, as you note, you can get even today), it is about toolchain support, and AFAIU the last Microsoft toolchain to be able to target Win16 is VC++ 1.52 as bundled with VC++ 4 (1995). I don’t know at which point you stopped being abls to graft new SDKs onto it. Of course, the Watcom and Digital Mars compilers can still do it, but they maintain their own headers I think.