使用 I 連線 ionPointContainer
可連接的物件會實作 I 連線 ionPointContainer (並透過 QueryInterface 公開它),以指出傳出介面是否存在。 對於每個傳出介面,可連接的物件會管理連接點子物件,而該子物件本身會實作 I 連線 ionPoint。 因此,可連接的物件包含連接點,因此會命名 I 連線 ionPointContainer 和 I 連線 ionPoint。
透過 I 連線 ionPointContainer,用戶端可以執行兩項作業。 首先,如果客戶端已經具有支援之傳出介面的 IID,則可以使用 I 連線 ionPointContainer::Find 連線 ionPoint 找到 IID 的對應連接點。 用戶端無法直接查詢連接點,因為可連接物件與其自主連接點之間的容器/自主關聯性。 基本上,Find 連線 ionPoint 是用戶端已知 IID 時傳出介面的 QueryInterface。
其次,用戶端可以透過 I 連線 ionPointContainer::Enum 連線 ionPoints 列舉可連接物件內的所有連接點。 這個方法會傳回個別列舉值物件的 IEnum 連線 ionPoints 介面指標。 透過 IEnum 連線 ionPoints::Next,用戶端可以取得每個連接點的 I 連線 ionPoint 介面指標。
用戶端取得 I 連線 ionPoint 介面之後,它必須呼叫 I 連線 ionPoint::Get 連線 ionInterface,以判斷每個連接點所支援的傳出介面 IID。 如果客戶端已經支援該傳出介面,它可以建立連線。 否則,它仍然可以使用可連接物件類型連結庫的信息來支持傳出介面,以在運行時間提供支援。 這項技術需要可連接的物件支援 IProvideClassInfo 介面。 (請參閱 使用 IProvideClassInfo.)
由於列舉值是個別的物件,因此當不再需要列舉值時,客戶端必須呼叫 IEnum 連線 ionPoints::Release。 此外,每個連接點都是具有與包含可連接對象的個別參考計數的物件。 因此,客戶端也必須針對透過列舉值或 Find 連線 ionPoint 存取的每個連接點呼叫 I 連線 ionPoint::Release。
相關主題