VadimM Там идет маппирование в адресное пространство процесса (в данном случае Explorer) Dll с глобальным хуком.
Так что общая причина в последней цитате
The global hooks are a shared resource, and installing one affects all applications in the same desktop as the calling thread.
Кроме того, я уже приводил цитату в предыдущем посте (в предпоследней цитате), если отказываетесь обрабатывать сообщение, то надо вернуть значение результата вызова CallNextHookEx.
И еще "маленькое" дополнение: Dll должна иметь разделяемую секцию. Иначе внедриться в процесс не получиться (а как же передавать параметры хука?).
Повторю, все это есть в msdn.