Документация для SetWindowsHookEx гласит:
Если приложение требует использования хуков в других процессах, требуется, чтобы 32-битное приложение вызывало SetWindowsHookEx для внедрения 32-битной DLL в 32 -битные процессы и 64-битное приложение вызывают SetWindowsHookEx для внедрения 64-битной DLL в 64-битные процессы.
Это строго подразумевает, что когда вызывается обратный вызов фильтра хука, это код внутри копии подключенного приложения библиотеки DLL перехвата.
Однако, когда я устанавливаю перехватчик, мне нужно передать указатель на функцию обратного вызова фильтра. Это сильно подразумевает, что именно код внутри приложения устанавливает хук, который запускается при вызове хука. Это связано с тем, что указатель на функцию в адресном пространстве одного процесса недопустим в адресном пространстве другого процесса.
Так что же это? Когда вызывается обратный вызов фильтра ловушек, какой код фактически выполняется, код внутри целевого (перехваченного) приложения или код внутри приложения, которое установило ловушку?
Спасибо