Windows: Fix GCC printf format warnings due to DWORD/ULONG types
The Visual Studio compiler considers a long to always be 32-bits, so the
official Windows API headers define the DWORD and ULONG types as
unsigned long proper. GCC (and possibly other compilers) vary the width
of a long to match the build target, so this complicates printf format
strings for these two types because the underlying type is inconsistent.
Address this mess by introducing a macro that casts as necessary for the
compiler.
Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>