I a have a multithread application (MIDAS) that makes uses of windows messages to communicate with itself.
MAIN FORM
The main form receives windows messages
OmniThreadLibrary contains very efficient message queue in OtlComm.pas unit.
OtlComm.pas
Documentation is not very good at the moment (start here) but you can always use the forum.