by
allistar >> Wed, 6 Dec 2006 3:07:54 GMT
Further update:
After spending several hours looking at this I've found the following:
Call required is Shell32 Notify_IconA. It's not easy to use this as the call uses a struct which we have to emulate in a Binary, and we can't pass a pointer to the Binary from a presentationClient, so the purpose of what I want to do is defeated.
Even if you define the external function as "presentationClientExecution"? I would expect Jade to marshall the binary data down to the thin client before calling the external function call. If not, you could write an external function call that takes the individual members of the struct as Strings and Integers, which then combine these into the struct (in C++) and calls the external function from there. Seems like overkill but it should work.
Also, the call requires a handle to the application icon, which Jade doesn't appear to be able to supply.
You should be able to enumerate the system tray icons and find the one that relates to your Jade process in an external function call in C++. It could be tricky associating the particular Jade process for a particular system tray icon if more than one Jade process is running on the workstation.
Take a look at this link for a starting point on doing this:
http://www.codeproject.com/tools/ShellTrayInfo.asp
Finally, a PAR has been raised to put this functionality in Jade. It seems to me that using external calls like this is un-necessarily heavy work and this shouldn't really need a PAR. Could there be some sort of support for implementing external calls with structs?
This could be simulated by defining a class that represents the struct (with properties relating to the struct members as appropriate) and an "output" or "serialise" method that returns a binary representation of the struct. You'd have to hand code the ordering (and sizes) of the struct members in this method.
Allistar.