Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
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.idlsouboru 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.exeneboguidgen.exe.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
.idlv ukázce Circ ATL.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.
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ů
V zobrazení tříd klikněte pravým tlačítkem myši na třídu, která implementuje
BEGIN_COM_MAPmakro, přejděte na příkaz Přidat v místní nabídce a vyberte Přidat spojovací bod.V Průvodci implementací spojovacího bodu vyberte knihovnu typů a rozhraní v knihovně typů a vyberte Přidat.
.idlUpravte soubor na jednu z těchto možností:- Zkopírujte dispinterface ze souboru
.idlpro objekt, jehož zdroj událostí je používán. - Použijte instrukci importlib pro tuto knihovnu typů.
- Zkopírujte dispinterface ze souboru