Fix for overflow exception (multi monitor)

If ```X``` and ```Y``` are both ```-1```, the packed integer is ```0xFFFFFFFF``` which is not a valid ```Int32```, thus a ```System.OverflowException``` is thrown in ```IntPtr.ToInt32()```.

To fix this, ```IntPtr.ToInt64()``` is used instead.

Fixes #624