COM+-händelseklassobjektet
COM+ Events-tjänsten använder ett händelseklassobjekt för att hantera anslutningen mellan utgivare och prenumerant. Händelseklassobjektet är en COM+-komponent som hanteras och lagras av COM+ Events-systemet och innehåller de gränssnitt och metoder som används av en utgivare för att utlösa händelser. Det är ett beständigt objekt som anger vilka händelser som kan inträffa och eventuellt identifierar utgivaren. Du anger de gränssnitt och metoder som du vill att en händelseklass ska innehålla genom att ange ett typbibliotek.
För att utlösa en händelse instansierar utgivaren händelseklassobjektet genom att anropa CoCreateInstance- eller Microsoft Visual Basic CreateObject-metoden och begära att händelsegränssnittet returneras. Det instansierade händelseklassobjektet innehåller händelsesystemets implementering av det begärda gränssnittet. En intresserad prenumerant måste också implementera händelseklassgränssnittet för att ta emot händelser från en viss utgivare. När händelseklassobjektet instansieras associerar händelsesystemet det med lämpliga prenumeranter. Listan över prenumeranter behålls under händelseklassobjektets livslängd. En händelse kan levereras till flera prenumeranter antingen seriellt eller parallellt.
När du implementerar ett händelseklassobjekt bör du ange en självregistrerande DLL som exporterar funktionerna DllRegisterServer och DllUnregisterServer. Funktionen DllRegisterServer registrerar en COM-klass och funktionen DllUnregisterServer avregistrerar komponenten. Händelseklassobjekt lagras i COM+-katalogen, antingen med administrationsverktyget för Komponenttjänster eller programmatiskt med hjälp av metoderna i ICOMAdminCatalog::InstallEventClass eller ICOMAdminCatalog::InstallMultipleEventClasses-gränssnitt. Detaljerad information om hur du registrerar händelseklassobjekt finns i Registrera en händelseklass.
Eftersom händelseklassobjekt är konfigurerade komponenter kan andra attribut, till exempel köer, transaktioner, säkerhet och så vidare, konfigureras för dem med hjälp av antingen administrationsverktyget för Komponenttjänster eller COM+ Administrativa SDK-funktioner.
Not
COM+ Events-tjänsten använder typbiblioteksmarsering. Detta medför vissa begränsningar för händelseklassgränssnitt. Typbiblioteksmarskalkeraren stöder till exempel inte MIDL-attributen size_is och length_is.
Ett händelseklassobjekt har publikationsattribut som avgör hur händelser publiceras, samt följande egenskaper:
- EventCLSID. En unik identifierare som anger CLSID för komponenten.
- EventClassName. En unik identifierare som anger PROGID för komponenten.
- TypeLibrary. Innehåller en lista över gränssnitt som erbjuds av händelseklassobjektet. Du behöver inte implementera de avfyrningsgränssnitt som anges i typbiblioteket.
Relaterade ämnen
-
säkerhetsöverväganden COM+ -händelser