Ahh... so MSDN has [UINT](http://msdn.microsoft.com/en-us/library/cc230383.aspx)

```
A UINT is a 32-bit unsigned integer (range: 0 through 4294967295 decimal). Because a UINT is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.
This type is declared as follows:
typedef unsigned int UINT; 
```

The same as a [ULONG](http://msdn.microsoft.com/en-us/library/cc230390.aspx)

```
A ULONG is a 32-bit unsigned integer (range: 0 through 4294967295 decimal). Because a ULONG is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.
This type is declared as follows:
typedef unsigned long ULONG, *PULONG; 
```

Sweet -- super intuitive.

If I wasn't so C++ rusty I probably would have remembered that.  But I still think we should probably just define `DWORD` as `:uint32` so there's no ambiguity.

My 2c.