Мастер |
Предоставляемые интерфейсы |
Действия, выполняемые мастером |
||
СОМ-сервер |
lUnknown |
Экспортирует необходимые программы, которые осуществляют регистрацию сервера, регистрацию класса, загрузку и выгрузку сервера и экземпляров объекта. Создает и управляет фабрикой класса для объектов, осуществленных в сервере. Указывает СОМ, какие потоковые модели используются для интерфейсов объекта. Обеспечивает библиотеку типов, если она требуется |
||
Сервер автоматизации |
lUnknown, IDispatch |
Выполняет все описанное для мастера СОМ-сервера, кроме того, обеспечивает интерфейс пользователя и автоматически обеспечивает библиотеку типов |
||
Элемент управления ActiveX |
lUnknown, IDispatch, IPersistStreamlnit, IQlelnPlaceActiveObject, IPer sis t Storage, IViewObject, IQleObject, IViewOb j ect2 , ZOleControl, IPerPropertyBrowsing, IQlelnPlaceObject, IspecifyPropertyPages |
Выполняет все описанное для мастеров, расположенных выше в этой таблице, кроме того, обеспечивает свойства, события и методы для всех интерфейсов TActiveXControl. Позволяет разработчику модифицировать объект в окне редактора кода |
||
Активные формы |
lUnknown, IDispatch, IPersistStreamlnit, lOlelnPlaceActiveObject, IPersistStorage, IViewObject, IQleObject, IViewOb ject2, IQleControl, IPerPropertyBrowsing, IGlelnPlaceObject, IspecifyPropertyPages |
Выполняет все описанное для мастера элемента управления ActiveX, кроме того, позволяет разработчику редактировать приложение |
||
Объект активный сервер |
lUnknown, IDispatch |
Выполняет все описанное для мастера сервера автоматизации и генерирует страничку с расширением ASP, которая может быть загружена в обозреватель Web. Мастер позволяет разработчику модифицировать свойства и методы объекта при помощи редактора библиотеки типов |
||
Библиотека ActiveX |
Нет |
Создает новую DLL для ActiveX или СОМ-сервера и обеспечивает все необходимые функции |
||
Страница свойств |
lUnknown, I PropertyPage |
Создает новую страницу свойств, которую разработчик может редактировать в редакторе форм |
||
Библиотека типов |
Нет |
Создает новую библиотеку типов и ассоциирует ее с активным проектом |
||
MTS-объект |
lobjectControl |
Добавляет новый модуль в текущий проект, который содержит объявление MTS-объекта |
||
Модель потока |
Описание |
Преимущества и недостатки модели |
||
Single |
Без поддержки потоков. Запросы клиента обрабатываются последовательно, один за другим |
Клиенты обрабатываются в порядке очереди, поэтому потоковой поддержки не требуется |
||
Apartment |
Клиенты могут вызывать методы объекта только из того потока, в котором был создан сам объект. Разные объекты одного сервера могут быть вызваны из разных потоков, но каждый объект может быть вызван только из одного потока |
Данные экземпляра находятся в безопасности, глобальные данные должны быть защищены при помощи критической секции или другим способом. Объекты просты в написании, но написание кода клиента может быть достаточно трудным. Первоначально использовалась для элементов управления обозревателей Web |
||
Free |
Клиенты могут вызывать любые методы объекта в любое время и из любых потоков. Количество потоков неограничено |
Нужно защищать все данные экземпляров и глобальные данные объекта. Локальные переменные не надежны из-за многочисленных вызовов. Клиенты просты в написании, но написание кода объектов может вызывать трудности. Первоначально использовалась для реализации технологии DCOM |
||
Both |
Объекты могут поддерживать клиентов, которые используют модели Apartment или Free |
Максимальная гибкость и улучшение работы |
||