使用 IProvideClassInfo
可連接的物件可以提供 IProvideClassInfo 和 IProvideClassInfo2 介面,讓其用戶端可以輕鬆地檢查其類型資訊。 處理傳出介面時,這項功能很重要,其定義是由 物件所定義,但是由用戶端在其本身接收對象上實作。 在某些情況下,可連接物件和接收對象在編譯階段已知傳出介面;IPropertyNotifySink 的情況就是這樣。
不過,在其他情況下,只有可連接的對象在編譯階段才知道其傳出介面定義。 在這些情況下,客戶端必須取得傳出介面的類型資訊,才能動態提供支援正確進入點的接收,如下所示:
- 用戶端會列舉連接點,然後針對每個連接點呼叫 I 連線 ionPoint::Get 連線 ionInterface,以取得可連接物件支援的連出介面 IID。
- 用戶端會查詢其中一個 IProvideClassInfo 介面的可連接物件。
- 用戶端會呼叫 IProvideClassInfo 介面中的方法,以取得傳出介面的類型資訊。
- 用戶端會建立支持傳出介面的接收物件。
- 此程式會繼續,而用戶端會呼叫 I 連線 ionPoint::建議將其接收連線到連接點。
在類型資訊中,屬性來源會將coclass底下所列的介面或散發介面標示為傳出介面。 未列出此屬性的介面會被視為傳入介面。
相關主題