Нужна консультация по разработке ATL inproc Server (dll), который служит как источником, так и приемником событий - PullRequest
2 голосов
/ 13 апреля 2010

Мне нужно спроектировать inproc-сервер ATL, который помимо предоставления методов и свойств также может запускать события (источник) и служить приемником для стороннего COM-элемента управления, который запускает события. Я бы предположил, что это довольно распространенное требование. Я также могу предвидеть несколько «ошибок», о которых я хотел бы прочитать, прежде чем приступить к разработке. Мои вопросы / проблемы:

  1. Может кто-нибудь указать мне пример?
  2. Какую модель потоков использовать?
  3. Должен ли я иметь отдельный COM-объект для приемника?
  4. Должен ли я и как защищать определенную память. Например, мой сервер будет получать данные от стороннего контроля. Это сохранит это, а в некоторых случаях вызовет событие для заинтересованных клиентов. Заинтересованные клиенты будут запрашивать данные через стандартный метод или свойство. Я пытался исследовать это сам. Я могу найти много примеров COM-серверов, которые являются soures, и некоторые, которые являются приемниками, но никогда не оба. Единственный пост, который я нашел, был таким: http://www.generation -nt.com / нам / АТЛ-контроль-ан-событийно-исток-мойка-помощь-9098542.html Который настоятельно рекомендует помещать приемник на отдельный объект COM.

Любые предложения, учебные пособия или идеи будут высоко оценены. Спасибо, Andrew

1 Ответ

0 голосов
/ 15 февраля 2013

Проверьте точки подключения ATL, которые позаботятся о коде пластины котла. Эта ссылка предоставляет обзор и пример кода: http://msdn.microsoft.com/en-us/library/h7kad5hw(v=vs.90).aspx

...