__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.