3.1.1.1 Event Classes

A collection of event interfaces is grouped into an event class. An event class manifests as a DCOM object that supports each of the event interfaces that are part of the event class. This is known as the event class object. The publisher application publishes events by activating the event class object and calling event methods on it to publish events.

The server maintains a table of event classes. Each event class has the following properties:

EventClassName: An application-specific name for the event class. The KNOWNCOLUMNID for this property is "EVENTCLASSNAME".

EventClassID: The DCOM CLSID for the event class object. The KNOWNCOLUMNID for this property is "EVENTCLASSID".

OwnerSID: An application-specific identity of the security principal that owns the event class. The KNOWNCOLUMNID for this property is "OWNERSID".

FiringInterfaceID: An application-specific UUID that identifies the event interface. The KNOWNCOLUMNID for this property is "FIRINGINTERFACEID".

Description: An application-specific description for the event class. The KNOWNCOLUMNID for this property is "DESCRIPTION".

Typelib: A type library file path as specified in ImplementationSpecificPathProperty for the type library that contains the event class. The KNOWNCOLUMNID for this property is "TYPELIB".<3>

PublisherID: An application-specific UUID that uniquely identifies the publisher application. The KNOWNCOLUMNID for this property is "PUBLISHERID".

MultiInterfacePublisherFilterCLSID: The publisher application can choose to filter subscribers for the event class. The publisher application uses a DCOM component for this purpose. It uses this property to specify the CLSID of this component. This DCOM component is given the opportunity to filter on subscribers when an event gets fired. The KNOWNCOLUMNID for this property is "MULTIINTERFACEPUBLISHERFILTERCLSID".<4>

AllowInprocActivation: An application-specific Boolean value for controlling the type of activation for the subscriber application DCOM component. A value of TRUE indicates that the subscriber application DCOM component wants to be activated in the publisher application. A value of FALSE indicates that it wants to be activated in a separate process. The KNOWNCOLUMNID for this property is "ALLOWINPROCACTIVATION".

FireInParallel: An application-specific Boolean value for controlling the way to fire the events for delivery to the subscribers. A value of FALSE indicates that the publisher delivers the events to each subscriber one at a time in any order. A value of TRUE indicates that each subscriber is notified in parallel. The KNOWNCOLUMNID for this property is "FIREINPARALLEL".

EventClassPartitionID: The UUID of the partition of the event class object. This is used in addition to EventClassID and EventClassApplicationID. The KNOWNCOLUMNID for this property is "EVENTCLASSPARTITIONID".<5>

EventClassApplicationID: The UUID of the conglomeration of the event class object. This is used in addition to EventClassID and EventClassPartitionID. The KNOWNCOLUMNID for this property is "EVENTCLASSAPPLICATIONID". This property always has the value GUID_NULL.<6>