Sdílet prostřednictvím


__hook

Přidruží metoda obslužnou rutinu události.

long __hook(
   &SourceClass::EventMethod,
   source,
   &ReceiverClass::HandlerMethod
   [, receiver = this]
);
long __hook(
   interface,
   source
);

Parametry

  • **&**SourceClass::EventMethod
    Ukazatel na událost metody, které zavěšení metoda obslužné rutiny události:

    • Nativní události C++: SourceClass je třída zdroje událostí a EventMethod je událost.

    • Události COM: SourceClass zdrojové rozhraní událostí a EventMethod je jedním z jeho metody.

    • Spravované události: SourceClass je třída zdroje událostí a EventMethod je událost.

  • interface
    Název rozhraní, který je připojený k receiver, pouze pro přijímačů událostí COM, ve kterém layout_dependent parametr event_receiver je atribut true.

  • zdroj
    Ukazatel na instanci zdroj události.V závislosti na kódu type v event_receiver, zdroje může být jeden z následujících:

    • Nativní události objektu ukazatelem zdroje.

    • IUnknown-založen ukazatel (zdroj COM).

    • Ukazatel spravovaného objektu (pro spravované události).

  • **&**ReceiverClass::HandlerMethod
    Ukazatel na metodu obslužnou rutinu události pro své použití události.Obslužná rutina je určen jako metoda třídy nebo odkaz na stejné. Pokud nezadáte název třídy __hook třídy za, ve kterém nazývá předpokládá.

    • Nativní události C++: ReceiverClass je třída události přijímač a HandlerMethod je popisovač.

    • Události COM: ReceiverClass je přijímač rozhraní události a HandlerMethod je jedním z jeho obslužné rutiny.

    • Spravované události: ReceiverClass je třída události přijímač a HandlerMethod je popisovač.

  • receiver(volitelné)
    Ukazatel na instanci třídy událostí přijímač.Pokud nezadáte přijímač, výchozí hodnota je přijímač třídy nebo struktury, v níž __hook se nazývá.

Použití

Je možné použít v oboru funkce, včetně hlavní mimo přijímač třídy event.

Poznámky

Vnitřní funkci __hook v události přijímače, který chcete spojit nebo metodu zpracování s metodu události zavěšení.Zadaný popisovač je poté volána vyvolává zdroje zadané události.Můžete několika obsluhy k jedné události zavěšení nebo zavěšení několik jedinou obslužnou rutinu události.

Existují dvě formy __hook.První formulář (čtyři argument) ve většině případů můžete použít konkrétně pro přijímačů událostí COM, ve kterém layout_dependent parametr event_receiver je atribut false.

V těchto případech není nutné k zapojení všech metod v rozhraní před spalujících událost na jednu z metod; pouze metody zpracování události, potřebuje pro své použití.Můžete použít druhý formulář (dvě argument) z __hook pouze pro příjemce událostí modelu COM ve kterém layout_dependent**= true**.

__hookVrátí hodnotu long.Vrácená nenulová hodnota znamená, že (spravované události throw výjimku) došlo k chybě.

Kompilátor zkontroluje existenci události a události podpis souhlasí s podpisem delegáta.

S výjimkou z události COM __hook a __unhook lze volat mimo příjemce událostí.

Alternativu k použití __hook je použít operátor +=.

Informace o kódování spravované události do nové syntaxe, viz události (Visual C++).

[!POZNÁMKA]

Události nemohou obsahovat podle šablony třídy nebo struct.

Příklad

Viz Zpracování událostí v nativním jazyce C++ a Zpracování událostí v modelu COM pro vzorky.

Viz také

Referenční dokumentace

Klíčových slov jazyka C++

Zpracování událostí

ZDROJ_UDÁLOSTI

event_receiver

__unhook

__raise