Визуальное программирование и MFC

       

Методы автоматизации


Методы автоматизации – это функции-члены класса элемента управления, которые образуют программный интерфейс элемента управления и доступны внешнему миру посредством OLE-автоматизации. Другими словами, они вызываются контроллерами автоматизации и сообщают элементу управления, что он должен сделать.

В общем случае методы автоматизации обладают характерными чертами, такими, как:

  • Внешнее имя метода – это его текстовое, читабельное имя, доступное внешнему миру. Контроллер автоматизации использует данное имя для вызова метода.
  • Внутреннее имя – это его имя в исходных файлах. У элемента управления может существовать метод автоматизации, который доступен внешнему миру с одним именем, а внутри класса реализован с другим. Внутренние и внешние имена методов могут быть как одинаковыми, так и разными. Выбор этого полностью зависит от разработчика.
  • Идентификатор диспетчеризации (DISPID) – это числовой идентификатор, который позволяет различать отдельные свойства, методы и события. У каждого метода есть соответствующий ему DISPID. Эти идентификаторы используются главным образом в odl-файле элемента управления, а интерфейс Idispatch определяет соответствие между текстовым именем метода и его DISPID.
  • Методы реализуются в виде обычных методов C++. Ограничением является лишь то, что типы параметров и возвращаемых значений должны поддерживать механизм транспортировки (marshaling). Следует помнить, что смысл автоматизации заключается в том, что она позволяет одной программе управлять работой другой программы. Чтобы обеспечить поддержку автоматизации, следует использовать типы семейства VARIANT (VT_xxx).

    Методы автоматизации делятся на две основные категории: базовые и пользовательские. Фирма Microsoft определила и реализовала ряд базовых методов автоматизации. Refresh (заставляет элемент перерисовать себя), DoClick (имитирует щелчок мышью на элементе управления) и AboutBox() (отображает на экране модальное диалоговое окно “About” элемента управления). Все эти методы имеют отрицательные DISPID.

    Все остальные методы элемента управления определяет разработчик. Такие методы называются пользовательскими. Пользовательские методы, наряду с базовыми, составляют интерфейс автоматизации элемента управления. Эти методы позволяют программам-клиентам управлять внешним видом и поведением элемента управления.



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