MS Word插件无法在XP中接收消息
问题描述:
从我的COM插件中创建一个对话框,然后从外部进程向它发送消息。我使用HWND_BROADCAST
和RegisterWindowMessage
。MS Word插件无法在XP中接收消息
但是这些消息永远不会被COM插件的对话框过程接收到。我知道这一点,因为我记录了对话框proc收到的所有消息,以及由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;
}
答
我发现为什么我得到这个错误,HWND_BROADCAST
不会当对话框有一个父窗口工作。
通过NULL
到CreateDialog
为父母修复错误。