Объект класса событий COM+
Служба событий COM+ использует объект класса событий для управления подключением между издателем и подписчиком. Объект класса событий — это компонент COM+, управляемый и хранящийся системой событий COM+ и содержащий интерфейсы и методы, используемые издателем для запуска событий. Это постоянный объект, указывающий на события, которые могут возникать, и, при необходимости, идентифицирует издателя. Интерфейсы и методы, которые требуется содержать класс событий, предоставляя библиотеку типов.
Чтобы запустить событие, издатель создает экземпляр объекта класса событий, вызывая CoCreateInstance или метод Microsoft Visual Basic CreateObject и запрашивая возвращаемый интерфейс события. Объект класса событий, созданный экземпляром, содержит реализацию запрошенного интерфейса системы событий. Заинтересованный подписчик также должен реализовать интерфейс класса событий для получения событий от данного издателя. При создании экземпляра объекта класса событий система событий связывает ее с соответствующими подписчиками. Список подписчиков сохраняется в течение времени существования объекта класса событий. Событие может быть доставлено нескольким подписчикам последовательно или параллельно.
При реализации объекта класса событий следует указать библиотеку DLL, которая экспортирует функции DllRegisterServer и DllUnregisterServer. Функция DllRegisterServer регистрирует класс COM, а функция DllUnregisterServer отменяет регистрацию компонента. Объекты класса событий хранятся в каталоге COM+ с помощью средства администрирования служб компонентов или программно с помощью методов интерфейса ICOM Администратор Catalog::InstallEventClass или ICOM Администратор Catalog::InstallMultipleEventClasses. Подробные сведения о регистрации объектов класса событий см. в разделе "Регистрация класса событий".
Так как для объектов класса событий настроены компоненты, другие атрибуты, такие как очередь, транзакции, безопасность и т. д., можно настроить для них с помощью средства администрирования служб компонентов или функций COM+ Администратор istrative SDK.
Примечание.
Служба событий COM+ использует маршалинг библиотеки типов. В этом случае некоторые ограничения на интерфейсы классов событий. Например, маршалер библиотеки типов не поддерживает атрибуты MIDL size_is и length_is.
Объект класса событий обладает атрибутами публикации, определяющими способ публикации событий, а также следующие свойства:
- EventCLSID. Уникальный идентификатор, указывающий CLSID компонента.
- EventClassName. Уникальный идентификатор, указывающий PROGID компонента.
- TypeLibrary. Предоставляет список интерфейсов, предлагаемых объектом класса событий. Нет необходимости реализовать интерфейсы запуска, указанные в библиотеке типов.
См. также