SendMessage Всегда возвращает НУЛЬ?

Почему делает Windows SendMessage (), всегда возвращают НУЛЬ, даже доставка сообщений является успехом? Там должен так или иначе проверить отказ доставки сообщений с SendMessage ()?

Править

Забыл упоминать, что я использую SendMessage () в C++ DLL

LRESULT result = ::SendMessage(hwndOtherWindow,WM_COPYDATA, NULL/*(WPARAM)this->GetSafeHwnd()*/,(LPARAM)&structCDS);

"результатом" всегда является нуль :(, но сообщение поставляет к другому окну успешно

Править

BOOL CDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
    return /*CDialog::OnCopyData(pWnd, pCopyDataStruct)*/ true;  //true is the trick
 }
5
задан MSalters 22 February 2010 в 10:32
поделиться

1 ответ

Нулевой возврат из SendMessage для WM_COPYDATA означает, что целевое приложение не обработало сообщение (FALSE = 0).

Сообщение может быть доставлено успешно, но если целевое приложение не обработает сообщение должным образом (т.е. неверное возвращаемое значение или передача его в процедуру окна по умолчанию), то ваш вызов SendMessage вернется с неверным результатом.

Возможно, стоит посмотреть, как целевое приложение обрабатывает сообщение WM_COPYDATA, если это возможно.

3
ответ дан 15 December 2019 в 06:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: