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 prostřednictvím třídy IConnectionPointImpl.

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 .idl souboru 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 buď nástroj uuidgen.exe nebo guidgen.exe.

  2. Přidejte dispinterface jako rozhraní [default,source] do coclass pro objekt v souboru projektu .idl. Opět platí, že pokud jste při vytváření ovládacího prvku povolili podporu spojovacích bodů, průvodce ovládacími [default,source] prvky ATL vytvoří polož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. Klikněte pravým tlačítkem myši na třídu v Zobrazení tříd, přejděte na Přidat v místní nabídce a vyberte 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 vyberete 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 použijte pouze jednu z těchto knihoven typů, pokud chcete implementovat stejné odchozí rozhraní, které se nachází v jiné knihovně typů.

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

  1. V zobrazení tříd klikně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 vyberte Přidat spojovací bod.

  2. V Průvodci implementací spojovacího bodu vyberte knihovnu typů a rozhraní v knihovně typů a vyberte Přidat.

  3. .idl Upravte soubor na jednu z těchto možností:

    • Zkopírujte dispinterface ze souboru .idl pro objekt, jehož zdroj událostí je používán.
    • Použijte instrukci importlib pro tuto knihovnu typů.

Viz také

Spojovací bod