The type “unsigned int” has a different size depending on the platform you’re building on. I expect this to normally be 32 bits, however it could be 16 or 64 (or something else — depending on the platform).
Library-specific types are often created to be typedef’d according to platform-specific rules. This allows a generic application to use the right type without having to be aware of the platform it will be built for. Instead, the platform-specific knowledge is constrained to a single common header file.