2011-03-09 4 views
0

우리는 터치 스크린 오버레이 역할을하는 응용 프로그램을 가지고 있습니다. 키보드 입력이 필요한 다른 응용 프로그램의 맨 위에있는 사용자 정의 터치 스크린 키보드와 숫자 패드를 제공합니다.프록시 클래스 라이브러리와 VB6 클라이언트를 사용하여 WCF 콜백을 구현하는 방법

독립 실행 형 VB6 ActiveX EXE로 작성되며 필요한 경우 응용 프로그램이 키보드 등을 요구할 수있는 COM 인터페이스를 제공합니다. 버튼 누름은 SendInput API를 사용하여 터치 서버의 애플리케이션으로 다시 제공됩니다.

필자는 WPF를 사용하여이 오버레이를 재 작업하는 방법을 살펴 보았지만 오버레이와이를 사용하는 응용 프로그램 간의 연결을 개선하는 방법을 살펴 보았습니다. 개별 키 - 프레스뿐만 아니라 URL이나 제품 코드와 같은 것을 나타내는 버튼을 가질 수 있기를 원합니다.

새 오버레이는 WPF를 사용하여 C#으로 작성되며,이를 사용하는 응용 프로그램은 모두 VB6로 작성됩니다. 임씨는 양방향 통신을 구현하는 최선의 방법에 대한 제안을 찾고 있습니다.

내 첫 번째 생각은 오버레이에서 WCF 서비스를 호스팅하고 콜백 계약을 사용하는 것이 었습니다. 응용 프로그램은 오버레이에 등록하고 오버레이 버튼과 관련된 알림을 수신하면 콜백 계약을 푸시합니다.

클라이언트는 모두 VB6 응용 프로그램이므로 프록시 dll을 사용하여 서비스 인터페이스를 마무리해야합니다. 클라이언트가이 인터페이스를 통해 등록/등록 취소하도록 허용 할 수 있지만 프록시를 사용하여 콜백을 구현하는 방법을 확신 할 수 없습니다.

또한 클라이언트 응용 프로그램과 오버레이가 얼마 동안 실행 중일 수 있습니다. 통신이 지속적이고 안정적인지 어떻게 확인할 수 있습니까?

이 접근법과 관련하여 발생할 수있는 문제/해결 방법에 대한 의견을 보내주십시오. 또는 WCF가 여기 잘못된 선택이라고 생각한다면 이드는 다른 옵션을 사용해도 행복합니까?

답변

0

WCF에 대한 래퍼로 COM DLL을 만든 다음 VB6에서이 개체를 사용하고 있습니까?

그렇다면 DLL이 콜백을 처리하도록 한 다음 정상적으로 COM 인터페이스에서 WithEvents 개체를 사용하여 VB6 응용 프로그램에서 처리하는 이벤트를 발생시킬 수 있습니다.

WCF를 사용하는 것은 나에게 합리적인 접근법처럼 들리지만, 특히 여러 버전 간의 전환 중에있을 때 그렇습니다.

관련 문제