2011-05-06 2 views
0

내 응용 프로그램은 dll (C++로 작성)을 다른 프로세스에 주입하고 인터페이스 양식에 정보를 보냅니다. 인터페이스는 MFC를 사용하여 만들었습니다.C# 인터페이스 응용 프로그램과 다른 프로세스 dll에 주입

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

및 인터페이스 형태는 메시지를 잡위한 방법이 있습니다 : 삽입 된 코드는 다음과 같이 메시지 WM_COPYDATA를 보내기를 통해 인터페이스와 통신 내가 WPF를 사용하여 인터페이스 양식을 만들려고하고 BOOL CInterfaceDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)

. 어떻게 WPF 인터페이스와 다른 프로세스 dll에 주입 할 수 있습니까? dll에서 인터페이스로 보내는 정보 중 일부는 xml 파일에 저장하려고합니다. 하지만 XML에서 정보를 받기 위해 인터페이스에 신호를 보내야하는 방법은 무엇입니까?

답변

1

WPF는 사용자가 익숙하지 않은 메시지와 핸들을 처리합니다. Read this article을 사용하여 가능한 내용과 그렇지 않은 내용을 이해하십시오.

이 문서의 중요한 부분 : 화면에

모든 WPF 요소가 궁극적으로 HWND에 의해 백업됩니다. WPF 창을 만들면 WPF는 최상위 HWND를 만들고 HwndSource를 사용하여 HWND 내부에 창과 WPF 내용을 배치합니다. 응용 프로그램의 나머지 WPF 콘텐트는 그 단일 HWND를 공유합니다. 예외는 메뉴, 콤보 상자 드롭 다운 및 기타 팝업입니다. 이러한 요소는 고유 한 최상위 창을 만듭니다. 따라서 WPF 메뉴가이 창을 포함하는 HWND 창의 가장자리를 지나갈 수 있습니다. HwndHost를 사용하여 HWND를 WPF 안에 넣으면 WPF는 Win32에게 새로운 자식 HWND를 WPF 창 HWND를 기준으로 배치하는 방법을 알려줍니다.

관련 문제