Шаг 106 - Сообщения от ATL элемента управления

Если Вы совсем плохо представляете о чем идет речь прочитайте "Шаг 17 - События". Cделайте COM объект в VBA и только потом на ATL. Для того, чтобы элемент управления ATL мог передавать сообщения контейнеру необходимо, чтобы он поддерживал интерфейс IConnectionPoint. Для этого при создании ALT объекта необходимо указать поддержку этого интерфейса. Создавайте проект на основе ATL Com Wizard с именем AtlEvent1. Выберите свойство FillContol и имя ALT классу CEventControl. Обязательно перейдите на вкладку атрибуты и обязательно установите галочку рядом с support connection points:

Посмотрите в ClassView у нас теперь два интерфейса. Интерфейс сообщений и интерфейс элемента.

Давайте к интерфейсу сообщений добавим метод. Cкажем Test. Eго мы будем вызывать если захотим что то сообщить контейнеру.

Тип нужен void. Вы сможете его выбрать из свойств. Теперь давайте соберем проект что бы сформировалась библиотека типов. Делайте Build. Теперь мы можем к нашему элементу управления применить точки подключения. Щелкайте на нем правой кнопкой мыши.

Нам останется выбрать интерфейс и сказать OK.

В результате у нас появится прокси класс с методом Fire_Test():

Именно этот метод нужно вызывать, если Вы хотите сообщить что-то контейнеру. На всякий случай прежде чем реализовывать подобный интерфейс сохраните проект, скомпилируйте его, закройте все файлы, а втрое после этого вызывайте меню Implement connection Point.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 28.08.2001