ActiveX с нуля


Поддержка элементов управления - часть 2


В объявлении класса присутствует макрос DECLARE_OLETYPELIB(CMyCtrlCtrl), который объявляет метод GetTypeLib для класса элемента управления.. Этот макрос должен присутствовать в файле заголовков элемента управления.

Метод GetTypeLib элемента управления реализуется макросом IMPLEMENT_OLETYPELIB

в файле реализации класса. Библиотека типов представляет собой файл, содержащий информацию о типе элемента управления, его интерфейсах и элементах автоматизации (к ним относятся свойства, методы и события). Сгенерированный метод GetTypeLib вызывается системой, когда ей нужна информация о библиотеке типов элемента. Эти данные сравниваются с данными из системного реестра, и если обнаруживается совпадение, то информация передается системе.

Элемент управления ActiveX использует страницы свойств, чтобы дать пользователю возможность просматривать и изменять свойства элемента управления. Страницы свойств реализуются в виде диалоговых окон с закладками. В макросе

DECLARE_PROPPAGEIDS(CMyCtrlCtrl) объявляются идентификаторы и методы, используемые этим механизмом.

Макрос DECLARE_OLECTLTYPE(CMyCtrlCtrl) объявляет методы, которые обрабатывают информацию о типе элемента.

Информация о типе элемента управления записана в переменной типа const с именем _dwMyCtrlOleMisc А макрос IMPLEMENT_OLECTLTYPE в реализации класса определяет два метода элемента управления GetUserTypeNameID и GetMiscStatus. Метод GetUserTypeNameID возвращает идентификатор ресурса строки (константа IDS_Name), содержащей имя типа элемента управления. Метод GetMiscStatus

вызывается внешними объектами, например контейнером, для получения информации об элементе управления. Значения, записанные в переменной _dwNameOleMisc, генерируются при создании проекта и являются выбором установок проекта.




Начало  Назад  Вперед