Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
ATL-självstudien visar hur du skapar en kontroll med stöd för anslutningspunkter, hur du lägger till händelser och sedan hur du implementerar anslutningspunkten. ATL implementerar anslutningspunkter med IConnectionPointImpl klassen.
För att implementera en anslutningspunkt har du två alternativ:
- Implementera din egen utgående händelsekälla genom att lägga till en anslutningspunkt i kontrollen eller objektet.
- Återanvänd ett anslutningspunktsgränssnitt som definierats i ett annat typbibliotek.
I båda fallen använder guiden Implementera anslutningspunkt ett typbibliotek för att utföra sitt arbete.
Lägga till en anslutningspunkt till en kontroll eller ett objekt
Definiera ett dispinterface i filbiblioteksblocket
.idl. Om du har aktiverat stöd för anslutningspunkter när du skapade kontrollen med ATL-kontrollguiden kommer dispinterface redan att skapas. Om du inte aktiverade stöd för anslutningspunkter när du skapade kontrollen måste du manuellt lägga till ett dispinterface i.idlfilen. Följande är ett exempel på ett dispinterface. Utgående gränssnitt måste inte vara dispatch-gränssnitt, men många skriptspråk som VBScript och JScript kräver detta, så i det här exemplet används två olika gränssnitt:[ uuid(3233E37D-BCC0-4871-B277-48AE6B61224A), helpstring("Buddy Events") ] dispinterface DBuddyEvents { properties: methods: };Använd antingen
uuidgen.exeverktyget ellerguidgen.exeför att generera ett GUID.Lägg till dispinterface som
[default,source]gränssnitt i samklassen för objektet i projektets.idlfil. Återigen, om du har aktiverat stöd för anslutningspunkter när du skapade kontrollen, kommer ATL-kontrollguiden att skapa posten[default,source]. Om du vill lägga till den här posten manuellt lägger du till raden i fetstil:coclass Buddy { [default] interface IBuddy; [default,source] dispinterface DBuddyEvents; };.idlEtt exempel finns i filen i Circ ATL-exemplet.Använd klassvyn för att lägga till metoder och egenskaper i händelsegränssnittet. Högerklicka på klassen i klassvyn, peka på Lägg till på snabbmenyn och välj Lägg till anslutningspunkt.
I listrutan Källgränssnitt i guiden Implementera anslutningspunkt väljer du Projektets gränssnitt. Om du väljer ett gränssnitt för kontrollen och väljer OK:
- Generera en rubrikfil med en händelseproxyklass som implementerar koden som ska göra utgående anrop för händelsen.
- Lägg till en post i anslutningspunktskartan.
Du ser också en lista över alla typbibliotek på datorn. Använd bara ett av dessa andra typbibliotek för att definiera din anslutningspunkt om du vill implementera exakt samma utgående gränssnitt som finns i ett annat typbibliotek.
Återanvända ett anslutningspunktsgränssnitt som definierats i ett annat typbibliotek
I Klassvy högerklickar du på en klass som implementerar ett
BEGIN_COM_MAPmakro, pekar på Lägg till på snabbmenyn och väljer Lägg till anslutningspunkt.I guiden Implementera anslutningspunkt väljer du ett typbibliotek och ett gränssnitt i typbiblioteket och väljer Lägg till.
Redigera filen
.idltill ett av följande:- Kopiera dispinterface från
.idlfilen för objektet vars händelsekälla används. - Använd importlib-instruktionen för det typbiblioteket.
- Kopiera dispinterface från