Поделиться через


Объект класса событий COM+

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

Чтобы инициировать событие, издатель создает экземпляр объекта класса событий, вызывая либо CoCreateInstance, либо метод CreateObject Microsoft Visual Basic, с запросом о возвращении интерфейса событий. Экземпляр объекта класса события содержит реализацию запрошенного интерфейса системы событий. Заинтересованный подписчик также должен реализовать интерфейс класса событий для получения событий от данного издателя. При создании экземпляра объекта класса событий система событий связывает его с соответствующими подписчиками. Список подписчиков сохраняется в течение времени существования объекта класса событий. Событие может быть доставлено нескольким подписчикам последовательно или параллельно.

При реализации объекта класса событий необходимо предоставить библиотеку DLL, которая экспортирует функции DllRegisterServer и DllUnregisterServer. Функция DllRegisterServer регистрирует класс COM, а функция DllUnregisterServer отменяет регистрацию компонента. Объекты класса событий хранятся в каталоге COM+ либо с помощью средства администрирования служб компонентов, либо программно, с использованием методов интерфейсов ICOMAdminCatalog::InstallEventClass или ICOMAdminCatalog::InstallMultipleEventClasses. Для получения подробной информации о регистрации объектов класса событий см. Регистрация класса событий.

Так как для объектов класса событий настроены компоненты, другие атрибуты, такие как очередь, транзакции, безопасность и т. д., можно настроить для них с помощью средства администрирования служб компонентов или функций пакета SDK для администрирования COM+.

Заметка

Служба событий COM+ использует маршалинг библиотеки типов. Это накладывает некоторые ограничения на интерфейсы классов событий. Например, маршалер библиотеки типов не поддерживает атрибуты MIDL size_is и length_is.

 

Объект класса событий обладает атрибутами публикации, определяющими способ публикации событий, а также следующие свойства:

  • EventCLSID. Уникальный идентификатор, указывающий CLSID компонента.
  • EventClassName. Уникальный идентификатор, указывающий PROGID компонента.
  • TypeLibrary. Предоставляет список интерфейсов, предлагаемых объектом класса событий. Нет необходимости реализовать интерфейсы запуска, указанные в библиотеке типов.

вопросы безопасности событий COM+

Фильтрация событий в COM+

Публикация и доставка событий в COM+

подписки

Использование событий COM+ с компонентами очереди COM+