Sdílet prostřednictvím


Přidání bodů připojení objektu

Kurz ATL ukazuje, jak vytvořit ovládací prvek s podporou spojovacích bodů, jak přidat události a jak implementovat spojovací bod. ATL implementuje spojovací body s IConnectionPointImpl třídy.

Pokud chcete implementovat spojovací bod, máte dvě možnosti:

  • Implementujte vlastní zdroj odchozích událostí přidáním spojovacího bodu do ovládacího prvku nebo objektu.

  • Znovu použijte rozhraní spojovacího bodu definovaného v jiné knihovně typů.

V obou případech Průvodce implementací spojovacího bodu používá knihovnu typů k provedení své práce.

Přidání spojovacího bodu do ovládacího prvku nebo objektu

  1. Definujte dispinterface v bloku knihovny souboru .idl. Pokud jste povolili podporu spojovacích bodů při vytváření ovládacího prvku pomocí Průvodce ovládacími prvky ATL, bude již vytvořen dispinterface. Pokud jste při vytváření ovládacího prvku nepovolili podporu spojovacích bodů, musíte do souboru .idl přidat dispinterface ručně. Následuje příklad dispinterface. Odchozí rozhraní nemusí být rozhraní pro odesílání, ale mnoho skriptovacích jazyků, jako je VBScript a JScript, to vyžaduje, takže tento příklad používá dva dispinterfaces:

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

    K vygenerování identifikátoru GUID použijte nástroj uuidgen.exe nebo guidgen.exe.

  2. Přidejte dispinterface jako [default,source] rozhraní v coclass objektu v souboru .idl projektu. Opět platí, že pokud jste povolili podporu spojovacích bodů při vytváření ovládacího prvku, Průvodce ovládacím prvky ATL vytvoří [default,sourcepoložku ]. Pokud chcete tuto položku přidat ručně, přidejte řádek tučně:

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

    Příklad najdete v souboru .idl v ukázce Circ ATL.

  3. Pomocí zobrazení třídy můžete do rozhraní událostí přidat metody a vlastnosti. Klepněte pravým tlačítkem myši na třídu v zobrazení třídy, přejděte na přidat v místní nabídce a klepněte na tlačítko Přidat spojovací bod.

  4. V seznamu Zdrojová rozhraní Průvodce implementací spojovacího bodu vyberte rozhraní projektu. Pokud zvolíte rozhraní pro ovládací prvek a stisknete OK, budete:

    • Vygenerujte soubor hlaviček s třídou proxy událostí, která implementuje kód, který provede odchozí volání události.

    • Přidejte položku do mapy spojovacího bodu.

    Zobrazí se také seznam všech knihoven typů na vašem počítači. K definování spojovacího bodu byste měli použít pouze jednu z těchto knihoven typů, pokud chcete implementovat úplně stejné odchozí rozhraní, které se nachází v jiné knihovně typů.

Opětovné použití rozhraní spojovacího bodu definovaného v jiné knihovně typů

  1. V zobrazení třídy klepněte pravým tlačítkem myši na třídu, která implementuje BEGIN_COM_MAP makro, přejděte na příkaz Přidat v místní nabídce a klepněte na tlačítko Přidat spojovací bod.

  2. V Průvodci implementací spojovacího bodu vyberte knihovnu typů a rozhraní v knihovně typů a klepněte na tlačítko Přidat.

  3. Upravte soubor .idl na:

    • Zkopírujte dispinterface ze souboru .idl objektu, jehož zdroj událostí se používá.

    • Použijte instrukci importlib pro tuto knihovnu typů.

Viz také

Spojovací bod