Hello everyone!
I've just finished
the tutorial on how to let a DLL, which is Interop.Call()ed by scripts, interface with Plus! scripting objects.
This tutorial guides script developers to have their native Win32 DLLs manipulate scripting objects (MsgPlus, Messenger, ChatWnd, Contact, PlusWnd, ...) as in JScript. We know that DLLs are crucial to implement asynchronous callbacks, which are in term crucial to subclassing non-Plus! windows
(aside from machine-code-injection). However, before this tutorial, it was never
(I think) disclosed how DLLs can interact with scripting objects in their native C++ codes. This is also the very technique that enables HopperLive to change Messenger's status and create a PlusWnd in its DLL.
If you're interested, please take a look! And tell me what you think about it, especially if you feel something is left unsaid, is not clear, or if you want more detail on specific topics. Requests for specific examples are welcome too!
Happy reading!