Дескриптор окна определяется как целое число собственного размера указателя машины . Это так, что они могут тайно быть указателем, если они должны быть. (Дескриптор, вероятно, не является указателем , но разрешено быть единым, если разработчики операционной системы сочтут это необходимым. Обычно они не являются указателями по соображениям безопасности; это делает его людям слишком легко злоупотреблять системой, если они на самом деле являются указателями.)
Int в C # определяется как 32-разрядное целое число, которое будет слишком маленьким на 64-разрядной машине. IntPtr определяется как целое число, которое может содержать указатель размера машины. Вот почему вы всегда используете IntPtr при взаимодействии с дескрипторами.