Das ATL-Ler&nprogramm wird veranschaulicht, wie erstellen Sie ein Steuerelement mit Unterstützung für Verbindungspunkte, wie Ereignisse und dann die Verbindung point.nbsp; Implementierung hinzufügen IConnectionPointImpl wird erläutert, wie ATL implementiert einen Verbindungspunkt.
Um einen Verbindungspunkt implementieren, haben Sie zwei Möglichkeiten:
Implementieren Sie Ihre eigene ausgehenden Ereignisquelle (Verbindungspunkt).
Wiederverwenden Sie eine Verbindungspunkt-Schnittstelle in einer anderen Typbibliothek definiert.
In beiden Fällen verwendet der Verbindungspunkt-Assistenten einen Typbibliothek, seine Arbeit zu tun.
Hinweis&Nbsp; Wenn Sie eine Disp-Schnittstelle eine Methode auf dem Sie bereits einen Verbindungspunkt implementiert haben hinzufügen, müssen Sie neu kompilieren die IDL-Datei und folgen Sie dann das Verfahren einen Verbindungspunkt zu einem Steuerelement oder Objekt hinzufügen.
Auf einen Verbindungspunkt zu einem Steuerelement oder Objekt hinzufügen
Definieren Sie eine Disp-Schnittstelle in der IDL-Datei der Bibliothek-Block. Wenn Sie das Kontrollkästchen Unterstützung Verbindungspunkte in der Registerkarte Attribute des ATL-Assistenten ausgewählt haben, wird bereits die Disp-Schnittstelle erstellt werden. Wenn Sie das Kontrollkästchen Unterstützung Verbindungspunkte nicht aktiviert, müssen Sie manuell eine Disp-Schnittstelle in der IDL-Datei hinzufügen. Folgendes ist ein Beispiel für eine Disp-Schnittstelle. Outbound-Interfaces sind nicht erforderlich-Dispatch-Schnittstellen werden jedoch viele Skriptsprachen wie VBScript und JavaScript erfordern, so dass in diesem Beispiel zwei Dispatchschnittstellen verwendet:
Verwenden Sie uuidgen.exe oder guidgen.exe Dienstprogramme, um eine GUID zu generieren.
Füge&n Sie die Disp-Schnittstelle als die [Standard, Quelle] Schnittstelle in der Co-Klasse für die object.nbsp; Wieder, wenn Sie das Kontrollkästchen Unterstützung Verbindungspunkte in der Registerkarte Attribute des ATL-Assistenten für dieses Steuerelement aktiviert, der Assistent erstellt die [Standard, Quelle] Eintrag. Wenn dieser Eintrag manuell hinzufügen möchten, fügen Sie die Zeile fett:
Finden Sie in die IDL-Datei in die Circ ATL-Beispiel für ein Beispiel.
Verwenden Sie Klassenansicht die Schnittstelle Methoden und Eigenschaften hinzu.
&Nachdem die Disp-Schnittstelle vollständig definiert ist, Kompilieren der IDL-Datei von die IDL-Datei in die Datei mit der rechten Maustaste und Auswahl der Kompilierung option.nbsp; Dies erzeugt die Typ-Bibliothek.
Maustaste auf die Klasse i&n der Klassenansicht und wählen Sie Implementieren Verbindung Punkt.... Ein Dialogfeld zeigt eine oder mehrere Typ Bibliothek Registerkarten und jede Registerkarte zeigt die Schnittstellen für die Typ-library.nbsp; Wenn Sie eine Schnittstelle auswählen und OKdrücken, werden Sie:
Generieren Sie eine Headerdatei mit einer Ereignis-Proxyklasse, die den Code implementiert, der die ausgehenden Aufrufe für das Ereignis machen.
Der Verbindungspunktzuordnung einen Eintrag hinzufügen.
Fügen Sie einen Kommentar und # Error (sagen Sie den NULL-Parameter mit der Adresse die DispID ersetzen) der Parameterliste von IProvideClassInfo2Impl.
We&nn Sie nicht Ihre Typbibliothek erstellt haben, sehen Sie eine Liste mit allen Typelibs auf Ihre computer.nbsp; Sie sollten nur verwenden eines dieser anderen Typelibs Ihr Verbindungspunkt definieren, wenn Sie die exakte gleiche Ausgangsschnittstelle gefunden in einer anderen Typbibliothek implementieren möchten. Wenn Sie eine Typbibliothek mit keine Standard-Quellschnittstelle in der Co-Klasse erstellen, wird das Dialogfeld eine Warnung Meldung keine geeignet (Quelle) Schnittstelle in der Typbibliothek angezeigt.
Implementiert einen Verbindungspunkt aus der Typbibliothek ein anderes Objekt
In ClassViewmit der rechten Maustaste auf eine Klasse, die ein BEGIN_COM_MAP Makro implementiert, und wählen Sie aus dem Kontextmenü implementieren Verbindungspunkt.
Klicken Sie im Dialogfeld Implementieren Verbindung PunktHinzufügen Typelib....
Wählen Sie eine der verfügbaren Typ libraries.nbsp; &Nachdem Sie die Typbibliothek ausgewählt haben, sehen Sie eine Liste der verfügbaren Schnittstellen in der Typbibliothek.
Wählen Sie eine oder mehrere der verfügbaren Schnittstellen und klicken Sie auf OK.
Bearbeiten Sie die IDL-Datei entweder:
Kopieren Sie die Disp-Schnittstelle aus der Idl-Datei für das Objekt, dessen Ereignisquelle verwendet wird.
Verwenden Sie die Importlib -Anweisung auf die Typ-Bibliothek.
Hier ist ein Beispiel aus einer IDL-Datei, die den Verbindungspunkt aus der Circ-Steuerelements verwendet wird.