我正在向某个进程注入DLL,该DLL具有运行消息循环的工作线程。
我想要正确地退出线程,即发布一个退出消息(PostThreadMessage),然后等待它(WaitForSingleObject)。
我应该在哪里等待这个线程关闭呢?我不能在DLL_PROCESS_DETACH上这样做,因为那时所有线程都已关闭或终止,并且我不知道进程何时即将关闭。
我唯一的想法是,有没有一种方法拦截主线程的消息循环并寻找WM_CLOSE\DESTROY消息?
我很乐意听取任何其他想法或解决方案。
编辑:
尝试使用WH_CALLWNDPROC和SetWindowsHookEx钩住主线程,但效果不太好,我设法钩住并接收了线程的消息。 但是,我没有收到WM_QUIT消息,只有WM_DESTROY和WM_NCDESTROY,它们都与窗口相关。
谢谢,
Omer