DLL中设置局部钩子

1.新建线程(注意DllMain中要返回TRUE,否则会内存引用出错)

2.设置钩子          //g_hDll 这个参数为NULL,子程也能被调用
    g_Hook = SetWindowsHookEx(WH_CALLWNDPROC, CallWndProc,  g_hDll,
      ::GetWindowThreadProcessId(g_hWndFull, NULL)); 
   //注意最后一个参数的设置!! 要不即使设置成功,子程也不会被调用.

3.触发钩子
   如果是钩子设置成功后,应该调用下,触发钩子,要不线程就退出去了!!
   MSG msg;
   GetMessage(&msg, 0, 0);

你可能感兴趣的:(DLL中设置局部钩子)