For all of these constants I tried to go back to original Windows source -- I think in this case this comes from `winbase.h`.  Here's a quick copy from the Googles -- http://www.csee.umbc.edu/~squire/download/WinBase.h

Technically it's 

```
#define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)
```

So I believe pointer width does change from x86 to x64 as you would suspect to match OS bitness.

FYI, MSDN has a canonical list of windows data types [here on MSDN](http://msdn.microsoft.com/en-us/library/aa383751\(VS.85\).aspx)