Если приложение A вызывает SetWindowsHookEx () для вставки низкоуровневого хука мыши (WH_MOUSE_LL), а приложение B делает то же самое впоследствии, которое сначала получит сообщение?
Поведение описано в разделе Обзор хуков :
Функция SetWindowsHookEx всегда устанавливает процедуру перехвата в начале цепочки перехвата . Когда происходит событие, которое отслеживается определенным типом ловушек, система вызывает процедуру в начале цепочки ловушек, связанной с ловушкой. Каждая подключаемая процедура в цепочке определяет, следует ли передать событие следующей процедуре. Подключаемая процедура передает событие следующей процедуре, вызывая функцию CallNextHookEx .
В вашем примере ловушка B сначала получит сообщение, поскольку оно было установлено самым последним.