SendMessage始终返回ZERO?

为什么Windows SendMessage()总是返回ZERO,即使消息传递成功? 无论如何检查与SendMessage()消息传递失败?

编辑

忘了提及我在c + + DLL中使用SendMessage()

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 } 

Solutions Collecting From Web of "SendMessage始终返回ZERO?"

SendMessage为WM_COPYDATA返回0意味着目标应用程序不处理消息(FALSE = 0)。

该消息可能会成功传递,但是如果目标应用程序不能正确处理消息(即错误的返回值,或将其传递给默认的窗口过程),那么您的SendMessage调用将返回错误的结果。

如果可能的话,看看目标应用程序对WM_COPYDATA消息的处理可能是值得的。