Основная программа вызывает функцию SetHook в wi.dll для установки глобального хука WH_CBT.
bool WI_API SetHook()
{
if (!g_hHook)
{
g_hHook = SetWindowsHookEx(WH_CBT, (HOOKPROC) CBTProc, g_hInstDll, 0);
}
return g_hHook != NULL;
}
Полагаю, что после установки глобального хука wi.dll должен быть загружен в адресное пространство каждого процесса. Однако wi.dll загружается только в некоторые процессы. Например, если я запускаю Skype, MS Word, я вижу, что wi.dll также загружается в эти процессы (с помощью Process Explorer), однако, если я запускаю Firefox, uTorrent, Adobe Reader, то wi.dll не загружается в эти процессы. .
Я использую W7 64-bit, основная программа и wi.dll 32-битные, все программы, упомянутые здесь, также 32-битные.
Есть идеи, почему это происходит?
Заранее спасибо.