Congrats, you managed to find one of the most challenging things possible in C4D. :grinning:
I have written the alternative SpaceNavigator controller CollieMouse for C4D (Windows...) so I was faced with similar issues.
First, C4D does not give you access to the message queue of the OS (or any proper windows functionality). C4D provides an abstraction layer for all GUI functionality so it will work on both Windows and MacOS, but it does not lay open sufficient functions for window control, much less internal OS stuff. I had to link to the Windows API itself, then open my own invisible window to process messages from the SpaceNavigator driver, all in its own thread to prevent deadlocks and busy waits. This ended up very OS dependent.
The issue in communicating with external devices is that you need a listener within C4D, no matter what kind of events you pipe. A listener means you need to access some message queue which waits for events in a non-blocking way. Usually, under Windows you use the standard windows messaging system. I suppose there are other ways, esp. on MacOS. As I have no experience in this OS, I need to leave it to you to look for a proper cross-application queueing approach. C4D does not have any such system and hides the actual OS GUI windows and their messaging system from you.
Second, there are no direct Pan/Zoom/Rotate functions. The position of the camera is controlled by its matrix. Moving the camera means you change the matrix appropriately. (For a scene camera, you will need to take into account that it may be part of a hierarchy with inherited position/rotation through the parent objects.)
But beware! There are different views which need to be handled all on their own - Perspective, Parallel, Axonometric... The behavior of the camera depends on the selected view. Furthermore, there are scene cameras and viewport cameras (internally the same data structure but you need to know what camera you are working with); then there is the pivot that is needed for rotations (which by the way is still not supported by the built-in space mouse controller). I suppose you will not want to support all these details.
Third, I'm not sure what you mean here... a GUI simulator that sends OS messages to the application, like in webapp testing? Imitating mouse input? This is certainly possible, although I'm not sure about the effectivity. C4D can check the viewport size and position, but as for how to send this to another application, you will again need to look for OS level messaging.
Anyway, this first thing to look for is definitely a way to send and receive messages across applications, whether it be the windows system or some other library. (If anybody reading this has experience in novel ideas, I'll be happy to hear them.)