ActiveX с нуля

Объявление класса


Файл MyCtrl.h

является основным файлом заголовков для элемента управления MyCtrl, в нем объявляется класс CMyCtrlApp. Этот класс является потомком класса COleControlModule, а не класса CWinApp. Это справедливо обычно для всех элементов управления, построенных на основе MFC.

Класс же COleControlModule

библиотеки MFC в свою очередь просто является производным от класса CWinApp, в котором для удобства переопределены методы InitInstance

и ExitInstance.


Класс OLE-элемента управления объявлен в файле MyCtrlCtl.h и реализуется в файле MyCtrlCtl.cpp. Базовый класс элемента управления наследуется от класса COleControl - стандартного базового класса библиотеки MFC, который используется элементами управления ActiveX. Этот класс, будучи потомком класса CWnd, наследует все функции объекта окна, а также располагает дополнительными, специфическими для OLE функциями, такими как генерация событий и поддержка методов и свойств OLE-элемента управления.

В классе COleControl

реализованы все интерфейсы, необходимые для работы элемента управления. Он скрывает детали реализации элемента и имеет понятный, объектно-ориентированный интерфейс, который используется элементами управления при выполнении собственных функций.




Класс страницы свойств CMyCtrlPropPage объявляется в файле MyCtrlPpg.h. Этот класс сгенерирован при создании проекта. Он реализует одну пустую страницу свойств. Этот класс является прямым потомком класса COlePropertyPage, базового класса всех страниц свойств.

Класс CMyCtrlPropPage является OLE-объектом. Поэтому ему необходима фабрика классов, генерацию которой обеспечивает макрос DECLARE_OLECREATE_EX. Фабрика классов и генерация CLSID для класса страницы свойств реализована в файле MyCtrlPpg.cpp при помощи макроса IMPLEMENT_OLECREATE_EX.



Содержание раздела