閱讀英文

共用方式為


使用 ADSI 擴展重新檢視 COM 聚合規則

以下是 COM 聚合和 ADSI 擴充模組規則的簡短回顧。

  • CreateInstance 方法會傳回指向 IUnknown 介面的指標,如下所示,不會將任何函式呼叫委派給聚合器。

    IUnknown::QueryInterface 方法會傳回其支援的介面指標,以及不支援之介面的錯誤。

    IUnknown::AddRef 方法會增加聚合延伸物件本身的參考計數。

    IUnkown::Release 方法會遞減匯總延伸模組物件本身的參考計數,並在參考計數為 0 時終結本身。

  • 擴充對象應該儲存匯總工具的 IUnknown 指標,例如m_pOuterUnknown,在實作 CreateInstance 方法時。

  • 延伸模組物件支援的所有介面,包括 IADsExtension,都應該繼承自 IUnknown,這會委派所有函式呼叫回傳給聚合器。

擴充寫入器只要遵守標準 COM 匯總規則,就可以選擇他們偏好的任何內部實作。 請注意,擴充物件不必獨立運作。 延伸模組的設計目的是要以匯總的形式運作。 不過,擴充功能可以同時以獨立對象和匯總的形式運作。

除了標準 COM 匯總支援之外,擴充物件可能支援 IADsExtension,以取得更進階的功能。 如果支援晚期系結,擴充功能應該: