If I remember correctly, all integer parameters in the Win32 API are 4 bytes long. Short, long... even boolean: all are padded to 4 bytes. And as Windows/Intel is in Little Endian mode, lowest byte first, you just have to use long for every integer.
That's also why "N" is the only integer prototype in Win32::API (old school style).