LONG_PTR - это тип данных, который используется для хранения адреса памяти. Он является 64-битным целым числом на 64-разрядных платформах и 32-битным целым числом на 32-разрядных платформах.
LONG_PTR используется в следующих случаях:
Для хранения адресов объектов в памяти.
Для передачи адресов функций в качестве параметров.
Для возвращения адресов из функций.
Следует отметить, что LONG_PTR является устаревшим типом данных. Вместо него рекомендуется использовать std::uintptr_t.
std::uintptr_t - это тип данных, который гарантированно будет иметь размер указателя на платформе, на которой выполняется код.
В ассемблере x86 бывают короткие и длинные указатели. Это делает код компактнее.
Короткий указатель - относительный от регистра PC, длинный - абсолютный.
В 32-битных системах эта проблема уже была решена, так что если программа компилируется под i386, то думать об этом уже не приходится.