У нас есть приложение, которое работает как сенсорный экран.Он предоставляет настраиваемые клавиатуры с сенсорным экраном и цифровые панели, расположенные поверх других приложений, требующих ввода с клавиатуры.
Он написан как автономный VB6 ActiveX EXE и предоставляет интерфейс COM для приложений, запрашивающих клавиатуры и т. Д., Которые отображаются при отображениинеобходимо.Нажатие кнопок передается обратно в приложения с сенсорного сервера с помощью API SendInput.
Мне было предложено посмотреть на переработку этого наложения с использованием WPF, а также на улучшение связи между наложением и приложениями, которые используютЭто.Помимо отдельных нажатий клавиш мы также хотим иметь кнопки, представляющие такие вещи, как URL-адреса или коды продуктов.
Новое наложение будет написано на C # с использованием WPF, все приложения, которые будут его использовать, будут написаны.в VB6.Я ищу предложения о том, как лучше реализовать двустороннюю связь между ними.
Моей первой мыслью было разместить службу WCF в оверлее и использовать контракты обратного вызова.Приложения будут регистрироваться с наложением и получать уведомления, связанные с кнопкой наложения, проталкивающей контракт обратного вызова.
Все клиенты являются приложениями VB6, и поэтому для обертывания интерфейса службы потребуется использование прокси-библиотеки dll.Я могу позволить клиентам регистрироваться / отменять регистрацию через этот интерфейс, но я не уверен, как реализовать обратные вызовы с использованием прокси.
Также клиентское приложение и оверлей могут работать в течение некоторого времени, как я могу гарантировать, что связьявляется постоянным и стабильным?
Буду признателен за любые ваши комментарии относительно любых потенциальных проблем / решений, связанных с этим подходом.В качестве альтернативы, если вы считаете, что WCF - неправильный выбор, я был бы рад рассмотреть другие варианты?