Как создать сервер DDE

У меня есть приложение, которое работает как клиент DDE & использует полученные данные для запуска нескольких анимаций. Этот клиент установлен на Windows Server 2012. Мне нужно предоставить клиентскому приложению DDE несколько переменных, чтобы правильно запустить анимацию.

На той же машине у меня не установлен Microsoft Office, поэтому я не могу использовать Excel для этой работы. Любая идея, как я могу создать сервер DDE, который обслуживает необходимые данные для клиента.

Поиск в Google не привел к четким учебникам о том, как реализовать это. У меня очень хорошие навыки программирования на C / C ++. Однако мне нужно руководство, рекомендуемые API или понятные учебные пособия.

Изменить: мне нужен сервер & клиентские приложения для запуска на одной машине & та же ОС.

Спасибо

0

Решение

DDE определяется почти полностью в терминах сообщений Windows, поэтому для создания DDE-сервера вы в основном:

  1. установить соединение в ответ на WM_DDE_INITIATE
  2. слушать WM_DDE_ADVISE или же WM_DDE_REQUEST
  3. Ответить с WM_DDE_DATA при необходимости
    • немедленно для WM_DDE_REQUEST
    • по мере необходимости для WM_DDE_ADVISE
  4. Завершите обновления в ответ на WM_DDE_UNADVISE
  5. Возможно также слушать WM_DDE_POKE сообщения для приема данных от клиента (если это имеет смысл в вашем случае).
  6. Завершите соединение в ответ на WM_DDE_TERMINATE

Хм … вероятно, есть по крайней мере еще одно сообщение, которое мне не приходит в данный момент, но, вероятно, охватывает по крайней мере 90% случаев (и, по крайней мере, по моему опыту, даже WM_DDE_POKE довольно необычно).

Поскольку у вас (по-видимому) имеется в виду один конкретный клиент, вы, вероятно, можете несколько обрезать его. Например, это звучит так, как будто вы, вероятно, не нуждаетесь / не хотите поддерживать теплые ссылки и тому подобное, так что вы, вероятно, не заботитесь о WM_DDE_ADVISE/WM_DDE_UNADVISE, Ваш сервер может просто инициировать соединение, когда он получает WM_DDE_INITIATEотправить данные, когда он получит WM_DDE_REQUESTи выключить, когда он получает WM_DDE_TERMINATE,

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]