2011-05-06 35 views
0

我的應用程序注入dll(用C++編寫)到另一個進程併發送一些信息到接口窗體。接口是使用MFC製作的。注入的代碼通過發送消息WM_COPYDATA像這樣用接口通信:c#接口應用程序和注入到另一個進程之間的通信dll

::SendMessage(hWnd, WM_COPYDATA, 0, (LPARAM) &cd); 

和接口形式有方法recieving消息: BOOL CInterfaceDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)

我將使用WPF作出接口形式。 我怎樣才能在WPF接口和注入到另一個進程的DLL之間進行通信? 一些信息,這應該從dll發送到接口,我將存儲在xml文件中。但我應該如何指示接口從XML接收信息?

回答

1

WPF處理消息和處理有點不同於你習慣。 Read this article瞭解什麼是可能的,什麼是不可能的。

這篇文章的一個重要組成部分:

屏幕上的所有WPF元素最終是由一個HWND支持。在創建WPF窗口時,WPF會創建頂級HWND,並使用HwndSource將Window及其WPF內容放入HWND中。應用程序中剩餘的WPF內容共享單數HWND。例外是菜單,組合框下拉菜單和其他彈出窗口。這些元素創建自己的頂級窗口,這就是爲什麼WPF菜單可能會通過包含它的窗口HWND的邊緣。當您使用HwndHost在WPF中放置HWND時,WPF會通知Win32如何將新子HWND相對於WPF窗口HWND放置。

相關問題