But the communication is sent through stdin/stdout to the program, which may or may not be useful. I don't know about Calibre...
An alternative is to develop a launch script/program which you could execute from ADS AEL using the system() function. The launch script/program could then invoke Calibre in the desired way.
There is an AEL function that allows the user to invoke a non-EEsof tool. Invoking a non-EEsof tool is about the only IPC protocol we support--meaning that the non-EEsof tool will run as a stand-alone process, and cannot send any message back to PDE. Here is the AEL function:
stat = de_nongemx_exec (progName[, progArgs, mapStdErr, invokeDir]);
progName is a string specifying the name of the non-EEsof tool to be spawned. This is a required argement for this function.
progArgs is a string containing the program arguments to be used when the non-EEsof tool is spawned. This is an optional argument.
mapStrErr is an integer of 0 or 1 denoting whether or not to map StdErr. This is an optional argument.
invokeDir is a string for specifying the startup directory for the non-EEsof tool. This is an optional argument.
This function is used by PDE when it invokes non-EESof tool, and therefore will be supported by EEsof.
create_server()
send_server_command()
send_server_data()
send_server_interrupt()
send_server_kill()
But the communication is sent through stdin/stdout to the program, which may or may not be useful. I don't know about Calibre...
An alternative is to develop a launch script/program which you could execute from ADS AEL using the system() function. The launch script/program could then invoke Calibre in the desired way.
This document may provide some other ideas:
How to control ADS from another application?