HOOK高手请指点,有关HOOK和其它软件的兼容问题
HOOK安装
hhMouseHook = SetWindowsHookEx(WH_MOUSE, (HOOKPROC)MouseHookProc, hDllHinstance, 0);
if (hhMouseHook == NULL)
{
return 2;
}
//Mouse HOOK回调函数
LRESULT CALLBACK MouseHookProc(int iCode, WPARAM wParam, LPARAM lParam)
{
try
{
if(iCode == HC_ACTION)
{
/*
TSharedMemory sharedMemory(false);
if (sharedMemory.HookInfo != NULL)
{
//从共享内存中取出线程ID
DWORD parentThreadID = sharedMemory.HookInfo->ParentThreadID;
if (parentThreadID != NULL)
{
PostThreadMessage(parentThreadID, MOUSE_HOOK_MSG, 0, 0);
}
}
*/
}
}
catch (...)
{}
return CallNextHookEx(hhMouseHook, iCode, wParam, lParam);
}
以上有安装和HOOK的回调,在90%的软件上发现没有问题,但是在Microsoft Virtual PC 和Sylpheed(一个开源的Mail Client)上,只要安装了HOOK,那两个程序就启动报错,Sylpheed这个软件是使用GTK+,报错或许可以理解,但是不明白为什么MS的软件Microsoft Virtual PC也会有问题,请高手指点?