Delen via


Verbindingspunten toevoegen aan een object

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

  1. Definieer een dispinterface in het bibliotheekblok van het .idl bestand. 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 het guidgen.exe-hulpprogramma om een GUID te genereren.

  2. 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 .idl bestand in het Circ ATL-voorbeeld voor een voorbeeld.

  3. 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.

  4. 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

  1. Klik in de klasweergave met de rechtermuisknop op een klasse die een BEGIN_COM_MAP macro implementeert, wijs toevoegen aan in het snelmenu en selecteer Verbindingspunt toevoegen.

  2. Selecteer in de wizard Verbindingspunt implementeren een typebibliotheek en een interface in de typebibliotheek en selecteer Toevoegen.

  3. Bewerk het .idl bestand om een van de volgende opties te kiezen:

    • Kopieer de dispinterface uit het .idl bestand voor het object waarvan de gebeurtenisbron wordt gebruikt.
    • Gebruik de importlib-instructie voor die typebibliotheek.

Zie ook

Verbindingspunt