VadimM Совершенно верно. Windows спроецирует dll на адресное пространство процесса. Именно с этим и связано то, что глобальный хук нужно помещать в dll.
Все это становиться очевидным, если воспользоваться советом, данным в моем предыдущем посте (последний абзац

) - надо учить мат. часть