ID Number: Q74857
3.00
WINDOWS
Summary:
A hook filter function should not call SendMessage() to pass intertask
messages because this behavior can create a deadlock condition in
Windows. If a hook filter function is called as a result of an
intertask SendMessage(), and if the hook function then yields control
with an intertask SendMessage(), a message deadlock condition may
occur. For this reason, hook filters should use PostMessage() rather
than SendMessage to pass messages to other applications.
Note that a hook filter can use SendMessage() to pass a message to the
current task because this will not yield the control.
Section 1.1.5 of the "Microsoft Windows Software Development Kit
Reference Volume 1" has more information on message deadlocks.