Använda IProvideClassInfo
Ett anslutningsbart objekt kan erbjuda IProvideClassInfo och IProvideClassInfo2-gränssnitt så att klienterna enkelt kan undersöka dess typinformation. Den här funktionen är viktig när du hanterar utgående gränssnitt, som per definition definieras av ett objekt men implementeras av en klient på ett eget mottagarobjekt. I vissa fall är ett utgående gränssnitt känt vid kompileringstiden för både det anslutningsbara objektet och mottagarobjektet. så är fallet med IPropertyNotifySink.
I andra fall är det dock bara det anslutningsbara objektet som känner till dess utgående gränssnittsdefinitioner vid kompileringstillfället. I dessa fall måste klienten hämta typinformationen för det utgående gränssnittet så att den dynamiskt kan tillhandahålla en mottagare som stöder rätt startpunkter enligt följande:
- Klienten räknar upp anslutningspunkterna och anropar sedan IConnectionPoint::GetConnectionInterface för varje anslutningspunkt för att hämta IID:er för utgående gränssnitt som stöds av det anslutningsbara objektet.
- Klienten frågar det anslutningsbara objektet för ett av IProvideClassInfo--gränssnitt.
- Klienten anropar metoder i IProvideClassInfo-gränssnitt för att hämta typinformationen för det utgående gränssnittet.
- Klienten skapar ett mottagarobjekt som stöder det utgående gränssnittet.
- Processen fortsätter och klienten anropar IConnectionPoint::Advise för att ansluta sin mottagare till anslutningspunkten.
I typinformationen markerar attributet källa ett gränssnitt eller dispinterface som anges under en som ett utgående gränssnitt. De som anges utan det här attributet betraktas som inkommande gränssnitt.
Relaterade ämnen