Hello,
Pointers are 32 bit on a x86 app and 64 bit on a x64 app, so I would use UINT_PTR data type to hold a pointer.
size_t is basically the type that sizeof operator returns and, as I remember, it used to be guaranteed to be at least 16 bits. I don't know what is its maximum size on modern compilers.