Punti di connessione a un oggetto

L'esercitazione ATL viene illustrato come creare un controllo con supporto per i punti di connessione, come aggiungere eventi e come implementare il punto di connessione.ATL implementa i punti di connessione con la classe IConnectionPointImpl.

Per implementare un punto di connessione, sono disponibili due opzioni:

  • Implementare la propria origine evento in uscita, aggiungere un punto di connessione al controllo o.

  • Riutilizzare un'interfaccia del punto di connessione definita in un'altra libreria dei tipi.

In entrambi i casi, la procedura guidata punto di connessione di utilizzare utilizza una libreria dei tipi per le attività.

Per aggiungere un punto di connessione a un controllo o oggetto

  1. Definire un'interfaccia dispatch nel blocco di libreria del file IDL.Se attivare il supporto per i punti di connessione dopo avere creato il controllo con la creazione guidata controllo ATL, l'interfaccia dispatch già verrà creata.Se non è stato attivato il supporto per i punti di connessione dopo aver creato il controllo, è necessario aggiungere manualmente un'interfaccia dispatch nel file IDL.L'esempio seguente è un esempio di un'interfaccia dispatch.Le interfacce in uscita non devono essere interfacce dispatch molti linguaggi di script come VBScript o JScript richiedono questo, in modo che questo esempio vengono utilizzati due interfacce dispatch:

    [
       uuid(3233E37D-BCC0-4871-B277-48AE6B61224A),
       helpstring("Buddy Events")
    ]
    dispinterface DBuddyEvents
    {
       properties:
       methods:
    };
    

    Utilizzare il uuidgen.exe o l'utilità di guidgen.exe per generare un GUID.

  2. Aggiungere l'interfaccia dispatch come interfaccia [default,source] la coclasse per l'oggetto nel file IDL del progetto.Nuovamente, se attivare il supporto per i punti di connessione dopo aver creato il controllo, la procedura guidata controllo ATL creare la voce [default,source].Per aggiungere manualmente questa voce, aggiungere la riga in grassetto:

    coclass Buddy
    {
       [default] interface IBuddy;
       [default,source] dispinterface DBuddyEvents;
    };
    

    Vedere il file idl in Circ ATL mediante campionamento per un esempio.

  3. Utilizzare la Visualizzazione classi per aggiungere metodi e proprietà all'interfaccia eventi.Fare clic con il pulsante destro del mouse sulla classe in Visualizzazione classi, scegliere Aggiungi il menu di scelta rapida e scegliere AggiungiConnection Point.

  4. Nella casella di riepilogo Interfacce di origine guidata punto di connessione di utilizzo, Project's interfacesselezionato.Se si sceglie un'interfaccia per il controllo e premere OK, come:

    • Generare un file di intestazione con una classe proxy di evento che implementa il codice che effettua richieste in uscita per l'evento.

    • Aggiungere una voce alla mappa dei punti di connessione.

    Inoltre visualizzato un elenco di tutte le librerie dei tipi nel computer.È consigliabile utilizzare solo una di queste altre librerie dei tipi per definire il punto di connessione se si desidera distribuire esattamente la stessa interfaccia in uscita trova in un'altra libreria dei tipi.

Per riutilizzare un'interfaccia del punto di connessione definita in un'altra libreria dei tipi

  1. In Visualizzazione classi, fare clic con il pulsante destro del mouse sulla classe che implementa una macro BEGIN_COM_MAP, scegliere Aggiungi il menu di scelta rapida e scegliere AggiungiConnection Point.

  2. Nella procedura guidata punto di connessione del centro, selezionare una libreria dei tipi e un'interfaccia nella libreria dei tipi e fare clic Aggiungi.

  3. Modificare il file IDL a uno dei seguenti:

    • Copiare l'interfaccia dispatch dal file .idl dell'oggetto di cui l'origine evento viene utilizzata.

    • Utilizzare l'istruzione importlib su tale libreria.

Vedere anche

Riferimenti

Punti di connessione ATL