SetWindowsHookEx中当dwThreadId为0时表示使用系统全局钩子,此时hMod绝对不能为NULL,而且必须是一个DLL的Instance handle,不能是EXE,当然,此时的HookProc也必须位于该DLL中。
当dwThreadId为当前进程的一个线程时,hMod必须为NULL,HookProc也必须在当前进程的地址范围内(EXE或DLL),但此时只能Hook本进程线程的mouse消息。An error may occur if the hMod parameter is NULL and the dwThreadId parameter is zero or specifies the identifier of a thread created by another process.