O.P. RE: Ambitious new plugin
OK guys just a quick update here. It seems that what Patchou does and others is use a hook on LoadLibrary and intercept the loading of richedit20.dll. I've also seem a more crude attempt where a dummy version of richedit20.dll is placed in the messenger directory.
Either way results in the ability to intercept the call to CreateTextServices which gets back an IUnknown. Query interface on this IUnknown can give you an interface to ITextServices.
What we can do is just pass through the ITextServices pointer back to messenger but remember its address and re-write its VTable so that calls to ITextServices::TxSendMessage for example are routed though our code. This then is very similar to MessageHooking as we can intercept messages as they go to the rich text edit control.
I'm going to code all this up and hopefully post it to the thread so we all have access to this trick.
Any help again most welcome and if people out there who have done this know I'm not on the right lines can they please let me know!
|