Delen via


IConnectionPoint gebruiken

Wanneer de client een aanwijzer naar een verbindingspunt heeft, kan deze de volgende bewerkingen uitvoeren, zoals uitgedrukt in IConnectionPoint-:

  • Eerst haalt IConnectionPoint::GetConnectionInterface de uitgaande interface IID op die wordt ondersteund door het verbindingspunt. Wanneer deze methode wordt gebruikt in combinatie met IEnumConnectionPoints, kan de client met deze methode de IID's van alle uitgaande interfaces onderzoeken die worden ondersteund op het verbindingbare object.
  • Ten tweede kan een client vanaf het verbindingspunt teruggaan naar de interface van IConnectionPointContainer via de methode IConnectionPoint::GetConnectionPointContainer.
  • Ten derde zijn de meest interessante methoden voor de client IConnectionPoint::Advise en IConnectionPoint::Unadvise. Wanneer een client een eigen sinkobject wil verbinden met het koppelbare object, geeft de client de IUnknown pointer (of een andere interfaceaanwijzer op hetzelfde object) door aan Advise. Het verbindingspunt voert een query uit op de sink voor de specifieke uitgaande interface die wordt verwacht. Als deze interface beschikbaar is op de sink, slaat het verbindingspunt de interfaceaanwijzer op. Vanaf dit punt totdat Ontkoppel wordt aangeroepen, zal het koppelbare object via deze interface oproepen naar de sink doen wanneer er gebeurtenissen plaatsvinden. Als u de sink van het verbindingspunt wilt loskoppelen, geeft de client een sleutel door die is geretourneerd van Advise aan de Unadvise methode. moet Release aanroepen op de sink-interface.
  • Ten slotte kan een client een verbindingspunt vragen om alle verbindingen ernaar op te sommen die bestaan via IConnectionPoint::EnumConnections. Met deze methode maakt u een enumeratorobject (met een afzonderlijk verwijzingsaantal) dat een IEnumConnections-aanwijzer retourneert. De client moet Release aanroepen wanneer de enumerator niet meer nodig is. Daarnaast retourneert de enumerator een reeks CONNECTDATA structuren, één voor elke verbinding. Elke structuur beschrijft één verbinding met behulp van de IUnknown pointer van de sink en de verbindingssleutel die oorspronkelijk is geretourneerd door Advise. Wanneer deze sink-interfaceaanwijzers zijn voltooid, moet de client Release aanroepen op elke aanwijzer die wordt geretourneerd in een CONNECTDATA-structuur.

Koppelbare objectinterfaces