I personally have only scratched the surface of the (poorly documented) API's.
I've noticed the following:
extern DECL_EXP wxString GetSelectedWaypointGUID_Plugin( );
extern DECL_EXP wxString GetSelectedRouteGUID_Plugin( );
extern DECL_EXP wxString GetSelectedTrackGUID_Plugin( );
extern "C" DECL_EXP bool GetActiveRoutepointGPX( char *buffer, unsigned int buffer_length );
My assumption was that the first two functions would return valid GUIDs if a route
Of course assumptions are the mother of all f....ups and the two functions only returned an empty string. I had a quick peruse of the openCPN source, but it's late at night and I'm not going to attempt to debug this now. In anycase, I am unsure of what they are meant to return and under what circumstances.
The last function returns the GPX (XML) text representing the active waypoint on the active route
If you cannot get the API's to return anything meaningful it may be appropriate to file a bug.