Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De ATL-zelfstudie laat zien hoe u een besturingselement maakt met ondersteuning voor verbindingspunten, hoe u gebeurtenissen toevoegt en hoe u vervolgens het verbindingspunt implementeert. ATL implementeert verbindingspunten met de IConnectionPointImpl klasse.
Als u een verbindingspunt wilt implementeren, hebt u twee opties:
- Implementeer uw eigen uitgaande gebeurtenisbron door een verbindingspunt toe te voegen aan het besturingselement of object.
- Een verbindingspuntinterface die is gedefinieerd in een andere typebibliotheek opnieuw gebruiken.
In beide gevallen gebruikt de wizard Verbindingspunt implementeren een typebibliotheek om het werk te doen.
Een verbindingspunt toevoegen aan een besturingselement of object
Definieer een dispinterface in het bibliotheekblok van het
.idlbestand. Als u ondersteuning hebt ingeschakeld voor verbindingspunten bij het maken van het besturingselement met de ATL Control Wizard, is de dispinterface al aangemaakt. Als u bij het maken van de besturing geen ondersteuning voor verbindingspunten hebt ingeschakeld, moet u handmatig een dispinterface toevoegen aan het.idl-bestand. Hier volgt een voorbeeld van een dispinterface. Uitgaande interfaces hoeven geen verzendinterfaces te zijn, maar veel scripttalen zoals VBScript en JScript vereisen dit, dus in dit voorbeeld worden twee dispinterfaces gebruikt:[ uuid(3233E37D-BCC0-4871-B277-48AE6B61224A), helpstring("Buddy Events") ] dispinterface DBuddyEvents { properties: methods: };Gebruik ofwel het
uuidgen.exe-hulpprogramma of hetguidgen.exe-hulpprogramma om een GUID te genereren.Voeg de dispinterface toe als de
[default,source]interface in de coclass voor het object in het bestand van het project.idl. Nogmaals, als u ondersteuning hebt ingeschakeld voor verbindingspunten bij het maken van het besturingselement, maakt de ATL Control Wizard de[default,source]invoer. Als u deze vermelding handmatig wilt toevoegen, voegt u de regel in vetgedrukte tekst toe:coclass Buddy { [default] interface IBuddy; [default,source] dispinterface DBuddyEvents; };Zie het
.idlbestand in het Circ ATL-voorbeeld voor een voorbeeld.Gebruik klasseweergave om methoden en eigenschappen toe te voegen aan de gebeurtenisinterface. Klik met de rechtermuisknop op de klas in de klasweergave, wijs toevoegen aan in het snelmenu en selecteer Verbindingspunt toevoegen.
Selecteer in de keuzelijst Broninterfaces van de wizard Verbindingspunt implementerende interfaces van Project. Als u een interface voor uw besturingselement kiest en OK selecteert, gaat u als volgende te werk:
- Genereer een headerbestand met een gebeurtenisproxyklasse waarmee de code wordt geïmplementeerd waarmee de uitgaande aanroepen voor de gebeurtenis worden uitgevoerd.
- Voeg een invoer toe aan de verbindingspuntkaart.
U ziet ook een lijst met alle typebibliotheken op uw computer. Gebruik slechts een van deze andere typebibliotheken om uw verbindingspunt te definiëren als u exact dezelfde uitgaande interface wilt implementeren die in een andere typebibliotheek is gevonden.
Een verbindingspuntinterface die is gedefinieerd in een andere typebibliotheek opnieuw gebruiken
Klik in de klasweergave met de rechtermuisknop op een klasse die een
BEGIN_COM_MAPmacro implementeert, wijs toevoegen aan in het snelmenu en selecteer Verbindingspunt toevoegen.Selecteer in de wizard Verbindingspunt implementeren een typebibliotheek en een interface in de typebibliotheek en selecteer Toevoegen.
Bewerk het
.idlbestand om een van de volgende opties te kiezen:- Kopieer de dispinterface uit het
.idlbestand voor het object waarvan de gebeurtenisbron wordt gebruikt. - Gebruik de importlib-instructie voor die typebibliotheek.
- Kopieer de dispinterface uit het