Posting Registered message to another process?
I want to communicate between two SDI processes with something like:
PostMessage(HWND_BROADCAST, gMyRegMsgId, 123, 321);
The "Poster" and "Postee" both have calls in OnInitialUpdate for:
gMyRegMsgId=
::RegisterWindowMessage("BB_FIND_8DB23EEF_B705_44BE_A58A_EBA6481A5038");
***** Poster code ****
void CPosterRegMsgView::OnClickPostButton()
{
BOOL flag = ::PostMessage(HWND_BROADCAST, gBbFindMsgId, 1234, 4321);
}
***** Postee code ****
BEGIN_MESSAGE_MAP(CPosteeRegMsgView, CFormView)
//{{AFX_MSG_MAP(CPosteeRegMsgView)
ON_REGISTERED_MESSAGE (gMyRegMsgId, OnBbFindMsgId)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
LRESULT CPosteeRegMsgView::OnBbFindMsgId(WPARAM wParam, LPARAM lParam)
{
CString msg;
msg.Format("W: %d L: %d", wParam, lParam);
::MessageBox(NULL, msg, "CPosteeRegMsgView", MB_OK);
return 0;
}
***********
With the above, I can step through each of the programs and check that
gMyRegMsgId is the same. However, when I click on the button of the "Poster"
program, nothing seems to be received by the "Postee" program. I'm expecting
the MessageBox to show up, confirming the desired communication.
What am I doing wrong? Is the HWND_BROADCAST argument to PostMessage
incorrect?