在我的 COM 插件中,我创建了一个对话框,然后从外部进程向它发送消息。我使用HWND_BROADCAST
和RegisterWindowMessage
。
但是 COM 插件的对话过程永远不会收到这些消息。我知道这一点,因为我记录了对话过程接收到的所有消息,以及RegisterWindowMessage
.
从外部过程:
static UINT nCloseMessage = 0;
if (!nCloseMessage)
nCloseMessage = RegisterWindowMessage(_T("MyCloseMessage"));
PostMessage(HWND_BROADCAST, nCloseMessage, 0, 0);
从 COM 加载项:
INT_PTR CALLBACK ProgressDialogProc(__in HWND hwndDlg,__in UINT uMsg,__in WPARAM wParam,__in LPARAM lParam)
{
static UINT nCloseMessage = 0;
if (!nCloseMessage)
nCloseMessage = RegisterWindowMessage(_T("MyCloseMessage"));
if (uMsg == nCloseMessage)
MessageBox(0,_T("Caught"),0,0);
return FALSE;
}