I'm not sure if this would be the best way. The idea is that if you parent the crosshair to the camera, it should allways have coordinates that are relative to the camera.
Then, on initializing your program, you could create a temp. Plane, move it at the same z-distance from the camera as the crosshair, set it's picking mode to 2 and use CameraPick to pick the 3d coordinates in each corner of the screen.
At runtime, you could use these the x and y of these 3d coordinates to limit the crosshairs movement.
Then, on initializing your program, you could create a temp. Plane, move it at the same z-distance from the camera as the crosshair, set it's picking mode to 2 and use CameraPick to pick the 3d coordinates in each corner of the screen.
At runtime, you could use these the x and y of these 3d coordinates to limit the crosshairs movement.