title: Usage of uintptr_t vs DWORD_PTR
body: <p>Both are used for storing addresses and doing pointer arithmetic, both are defined in WinAPI, when should I use a <code>uintptr_t</code> (cstdint) vs a <code>DWORD_PTR</code> (Windows.h)? Both are 32bits and 64bits in x86 and x86_64 respectively</p>
  
  <blockquote>
    <p>A <code>DWORD_PTR</code> is an <code>unsigned long</code> type used for pointer precision. It is used when casting a pointer to an <code>unsigned long</code> type to perform pointer arithmetic. <code>DWORD_PTR</code> is also commonly used for general 32-bit parameters that have been extended to 64 bits in 64-bit Windows.</p>
  </blockquote>
  
  <p>I do not intend for my code to be portable, I'm stuck with WinAPI.
  What type is the best use case?</p>