共用方式為


COM+ 事件類別物件

COM+ Events 服務會使用 事件類別物件 來管理發行者與訂閱者之間的連線。 事件類別對像是 COM+ 事件系統管理和儲存的 COM+ 元件,包含發行者用來引發事件的介面和方法。 它是一個持續性物件,指出可能發生的事件,並選擇性地識別發行者。 您可以藉由提供類型連結庫,指定您想要事件類別包含的介面和方法。

若要引發事件,發行者會呼叫 CoCreateInstance 或 Microsoft Visual Basic CreateObject 方法來具現化事件類別物件,並要求傳回事件介面。 具現化事件類別物件包含要求介面的事件系統實作。 感興趣的訂閱者也必須實作事件類別介面,以接收來自指定發行者的事件。 具現化事件類別物件時,事件系統會將它與適當的訂閱者產生關聯。 訂閱者清單會維護事件類別物件的存留期。 事件可以串行化或平行方式傳遞至多個訂閱者。

當您實作事件類別物件時,應該提供自我登錄 DLL,以匯出 DllRegisterServerDllUnregisterServer 函式。 DllRegisterServer 函式會註冊 COM 類別,而 DllUnregisterServer 函式會取消註冊元件。 事件類別物件會儲存在 COM+ 目錄中,方法是使用元件服務管理工具,或透過程式設計方式使用 ICOM 管理員 Catalog::InstallEventClass 或 ICOM 管理員 Catalog::InstallMultipleEventClasses 介面。 如需註冊事件類別對象的詳細資訊,請參閱 註冊事件類別

因為事件類別對象已設定元件,所以可以使用元件服務管理工具或 COM+ 管理員 istrative SDK 函式來設定其他屬性,例如佇列、交易、安全性等。

注意

COM+ 事件服務會使用類型連結庫封送處理。 這會對事件類別介面進行一些限制。 例如,類型連結庫封送處理器不支援 MIDL 屬性size_islength_is。

 

事件類別對象擁有決定發行事件方式的發行集屬性,以及下列屬性:

  • EventCLSID。 指定元件 CLSID 的唯一識別碼。
  • EventClassName。 指定元件 PROGID 的唯一標識碼。
  • TypeLibrary。 提供事件類別物件所提供的介面清單。 不需要實作類型連結庫中指定的引發介面。

COM+ 事件安全性考慮

篩選 COM+ 中的事件

在 COM+ 中發佈和傳遞事件

訂用帳戶

搭配 COM+ 佇列元件使用 COM+ 事件