This was surprising to me as well, but apparently we are using long for HWND in spec files.
It'd be nice to hear about why we do this (and why it's safe for us to do this) when HWND is a pointer-sized type, instead of a repeated assertion of "this is wrong", when it was a reasonable thing for someone unaware of this rule to expect. I have some guesses, but I'd rather hear from someone who knows about it.