Очевидные варианты:
1) пассивный: просигналить какой-нибудь объект (напр., event), или создать FileMapping, и ждать, пока главная программа это поймет. А та, стало быть, или в WaitForMultipleObjects сидит, или просто периодически проверят, как там дела.
2) активный: перед установкой хука главное приложение создает маппинг и кидает туда хендл окна или какую-то другую контактную информацию, чтобы dll могла ее найти. dll при срабатывании хука шлет по полученному адресу сообщение / выполняет APC / что больше нравится.
3) извращенский: главная прога ставит дебагный хук и тот срабатывает перед срабатыванием собственно интересующего.
Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Здравствуйте, MystiX, Вы писали:
MX>Есть длл с глобальным хуком, как передоть программе, что хук сработал?
Раз уж он глобальный, "срабатывать" он будет единожды.
Если нужны результаты его работы, то проще всего WM_COPYDATA.
Хендл окна получателя, можно держать в именованном файлмаппинге.
Ну, или передавать его, например, для WH_GETMESSAGE, WH_CALL*,
в параметрах условленного сообщения.