更新:这是一个.NET客户端调用常规DLL。我还得到了另一个扩展DLL,它导出一些类并在常规DLL中使用。.NET客户端 - MFC规则DLL和用户定义的消息
我有一个第三方DLL,它将WindowHandle和用户定义的消息作为参数,并开始将消息发送到传递的窗口,但我没有看到任何消息传到我的窗口。下面是API调用格式:
StartMessaging(<WindowHandle>,WM_MESSAGE_API);
我需要经常MFC规则DLL,这将只用于接收邮件创建一个隐藏的CFrameWnd窗口。 我也在使用AFX_MANAGE_STATE()的DLL的所有入口点。
构造函数的代码在我的CFrameWnd派生类:
创建(NULL, “mywindow的”); hWndFrame = this-> m_hWnd;
消息映射:
LRESULT CMyDerivedWnd::OnMsgApi(WPARAM wParam, LPARAM lParam)
{
OutputDebugString("OnMsgApi");
return (LRESULT)0;
}
我的主类,其中StartMessaging叫做: 在构造我实例化的CFrameWnd对象:
myDerivedWnd =新CMyDerivedWnd(本);
,然后InitiateMessaging被称为:
void CMain::InitiateMessaging()
{
TCHAR szBuf[80];
::GetWindowText(myDerivedWnd->m_hWnd,szBuf,80);
OutputDebugString((LPSTR)(LPCTSTR)szBuf); //This displays MYWINDOW
StartMessaging(myDerivedWnd->m_hWnd,WM_MESSAGE_API);
}
我GetWindowText时函数返回正确的窗口名字,但我无法陷阱WM_MESSAGE_API消息在这个类。 我也尝试过使用扩展DLL,但结果相同。
我有一个示例MFC对话框的应用程序,它使用相同的API。 – cloudnine 2010-12-03 00:00:25