更新:這是一個.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