MS Word COM надстройка не может получать сообщения в XP

Внутри моего COM-надстройки я создаю диалог и затем отправляю ему сообщения от внешнего процесса. я использую HWND_BROADCAST а также RegisterWindowMessage,

Но эти сообщения никогда не поступают в диалоговый процесс надстройки 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;
}

0

Решение

Я нашел, почему я получаю эту ошибку, HWND_BROADCAST не работает, когда диалог имеет родительское окно.

Переходя NULL в CreateDialog для родителя исправлена ​​ошибка.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector