#if (ULONG_MAX < UINTPTR_MAX) && !defined (SUPPRESS_TRUNCATION_ERROR) #error Truncating pointers to long is a bad idea here #endif
static_assert(sizeof(DWORD) == sizeof(void*), "assume 32-bit pointers");