In the example I posted I declared the 3 position ints as an array of 4 bytes. Then in the handler, multiplied them to get an unsigned result (0 to 4,278,190,080 I think). They actually should be declared As Long (signed) so the result can be negative (-2,147,483,648 to 2,147,483,647). My mistake on that part. Readme.txt says 3 ints, and an int in C++ is 4-byte signed (according to InSim.txt)
This may be why you're getting problems with the position. Again, my mistake but don't say I didn't warn ya, as I did in my last post
You would probably still get the shape of the track, it would just be shifted in some way. Better to make them Longs for accuracy and a tiny bit of speed since it doesn't have to convert and multiply.