共用方式為


使用 IConnectionPoint

當用戶端擁有連接點的指標時,它可以透過 IConnectionPoint執行下列操作:

  • 首先,IConnectionPoint::GetConnectionInterface 擷取連接點所支援的傳出介面的 IID。 搭配 IEnumConnectionPoints使用時,此方法可讓客戶端檢查可連接物件上支援之所有傳出介面的 IID。
  • 其次,用戶端可以透過 IConnectionPoint::GetConnectionPointContainer 方法,從連接點巡覽回可連接物件的 IConnectionPointContainer 介面。
  • 第三,對用戶端最有趣的方法是 IConnectionPoint::AdviseIConnectionPoint::Unadvise。 當用戶端想要將自己的接收物件連接到可連接的物件時,用戶端會將接收器的 IUnknown 指標(或任何其他相同物件的介面指標)傳遞給 Advise。 連接點會查詢接收器以獲取所期望的特定連出介面。 如果該介面可在接收器上使用,則連接點會儲存介面指標。 從此刻開始,直到呼叫 取消訂閱 為止,可連接的物件會在事件發生時透過這個介面進行呼叫到接收端。 若要中斷接收器與連接點的連接,用戶端會將從 Advise 傳回的密鑰傳遞至 Unadvise 方法。 Unadvise 必須在匯流介面上呼叫 Release
  • 最後,用戶端可以要求連接點列舉出透過 IConnectionPoint::EnumConnections連接到它的所有連線。 此方法會建立列舉值物件(具有個別的參考計數),並傳回 IEnumConnections 指標。 當不再需要列舉器時,客戶端必須呼叫 Release。 此外,列舉器會傳回一系列 CONNECTDATA 結構,每個連接各一個。 每個結構都會使用接收器的 IUnknown 指標,以及最初從 Advise返回的連接密鑰來描述一個連線。 使用這些接收介面指標完成時,客戶端必須在 CONNECTDATA 結構中傳回的每個指標上呼叫 Release

可連接物件介面