2 weeks ago
I am currently trying to develop a plugin for Stereo Analyst application and am struggling to understand how to obtain instances to the eml parts which are initialised outside my code in order to programatically interact with them (e.g querying checkbox value, programatically adding menu buttons).
There are examples of interacting with the User Interface and retrieving eml part values but these are typically standalone applications where the same bit of code initialises the application context, parses the eml and displays the eeml frame using the pointer returned during parsing. I cannot find any examples of interacting with eeml frames which are owned by a third party (in this case the main stereo analyst application)
I have tried two main routes, both of which have failed
In terms of interacting with the eml I would be grateful if you could clarify :
Appreciate this is several questions but I imagine they all have a fairly common solution so seemed clearer to contain them in a single post.
Any help would be greatly appreciated.
I am using Stereo Analyst packaged with ERDAS IMAGINE 2020 and the SMSDK 2020.
There is no correct way to interact with the parts in an EML application from an external DLL. As you have noted all of the scripts parsed by an EML application do get registred in an internal tree and this tree can be accessed from an external DLL. When your DLL parses one of the application scripts it gets a handle to a separate version of the parsed script and not the one used by the application, so interacting with this handle does not affect the application. You have also noted that you can search the internal tree and get a handle, for example, to a frame from the script. Most applications, though, clone the frame pointed to by the handle, using it as a template. This means that using this handle also has no affect on the application.