Sdílet prostřednictvím


__unhook

Metoda zpracování z události dissociates.

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

Parametry

  • **&**SourceClass::EventMethod
    Ukazatel na událost metody, ze kterého vyjmutí 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í, přičemž snímatelná z 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žné rutiny události se unhooked z události.Obslužná rutina je určen jako metoda třídy nebo odkaz na stejné. Pokud nezadáte název třídy __unhook 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íž __unhook 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 __unhook v události přijímače, který chcete oddělit nebo "vyjmutí" metody zpracování z metodu událostí.

Existují tři formy __unhook.Ve většině případů můžete použít první formulář (čtyři argument).Můžete použít druhý formulář (dvě argument) z __unhook pouze pro příjemce událostí COM; Tato unhooks rozhraní celé události.Třetí formuláře (jeden argument) můžete použít k vyjmutí všech delegátů ze zadaného zdroje.

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

Při volání __unhook na události a obslužné rutiny události, která již není připojený, nebude mít žádný vliv.

V době kompilace kompilátor ověří, zda událost existuje a nemá parametr s Zadaný popisovač kontrola typu.

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

Alternativu k použití __unhook je použití operátoru-=.

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++

ZDROJ_UDÁLOSTI

event_receiver

položky __Event

__hook

__raise