为什么Windows SendMessage()总是返回ZERO,即使邮件传递成功?有没有用SendMessage()检查邮件传递失败?
编辑
忘记提到我在c ++ DLL中使用SendMessage()
LRESULT result = ::SendMessage(hwndOtherWindow,WM_COPYDATA, NULL/*(WPARAM)this->GetSafeHwnd()*/,(LPARAM)&structCDS);
Run Code Online (Sandbox Code Playgroud)
"结果"始终为零:(,但消息成功传递到其他窗口
编辑
BOOL CDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
return /*CDialog::OnCopyData(pWnd, pCopyDataStruct)*/ true; //true is the trick
}
Run Code Online (Sandbox Code Playgroud)
WM_COPYDATA的 SendMessage 返回零意味着目标应用程序未处理该消息 (FALSE = 0)。
消息可能会成功传递,但如果目标应用程序没有正确处理消息(即错误的返回值,或将其传递给默认窗口过程),那么您的 SendMessage 调用将返回错误的结果。
如果可能的话,可能值得您花时间查看目标应用程序对 WM_COPYDATA 消息的处理方式。