Методы ActiveX.
Элемент ActiveX взаимодействует с контейнером, посылая в него сообщения о событиях. Контейнер также должен взаимодействовать с элементом. Это достигается использованием методов и свойств.
Методы подобны функциям-членам в С++. Имеется два типа методов, которые можно реализовать в Вашем контрольном элементе: базовые и пользовательские. Также как и базовые события, базовые методы реализованы в классе COleControl.
MFC реализует механизм для поддержки и базовых и пользовательских методов. СOleControl - наследних класса CWnd, поэтому он использует методы, общие для всех элементов ActiveX. Вторая часть механизма, обеспечиваемая MFC, - это карта диспетчеризации (dispatch map). Эта карта подобна карте сообщений (message map), однако, вместо связи функций с оконными сообщениями карта диспетчеризации осуществляет связь виртуальных методов с идентификаторами IDispatch.
Карта диспетчеризации должна быть объявлена в .H файле элемента:
DECLARE_DISPATCH_MAP()
Главная задача этой карты - связать методы, используемые контейнерами, c методами контрольного элемента, реализующими определенные действия. Карта определяется в файле .CPP:
BEGIN_DISPATCH_MAP(CMyCtrlCtrl, COleControl)
//{{AFX_DISPATCH_MAP(CMyCtrlCtrl)
…
//}}AFX_DISPATCH_MAP
END_DISPATCH_MAP()
При создании элемента с помощью ControlWizard нужные строки добавляются автоматически.