__unhook
Dissociates metody obsługi zdarzenia.
long __unhook(
&SourceClass::EventMethod,
source,
&ReceiverClass::HandlerMethod
[, receiver = this]
);
long __unhook(
interface,
source
);
long __unhook(
source
);
Parametry
**&**SourceClass::EventMethod
Wskaźnik do metody zdarzeń, z którego są odpięcie metody obsługi zdarzenia:Macierzystym C++ zdarzenia: SourceClass jest klasą źródła zdarzeń i EventMethod jest zdarzeniem.
Zdarzeń COM: SourceClass jest interfejs źródłowy zdarzenia i EventMethod jest jednym z jego metody.
Zarządzane zdarzenia: SourceClass jest klasą źródła zdarzeń i EventMethod jest zdarzeniem.
interface
Nazwa interfejsu jest unhooked z receiver, tylko dla odbiorników zdarzeń modelu COM, w którym layout_dependent parametr event_receiver atrybut jest true.źródła
Wskaźnik do instancji źródła zdarzeń.Zależnie od kodu type określonych w event_receiver, źródło może być jedną z następujących czynności:Wskaźnik obiektu źródła zdarzeń macierzystym.
IUnknown-oparty wskaźnik (źródło COM).
Wskaźnik obiektu zarządzanego (dla zarządzanych zdarzeń).
**&**ReceiverClass::HandlerMethod
Wskaźnik do metody obsługi zdarzenia być unhooked z poziomu zdarzenia.Program obsługi jest określony jako metoda klasy lub odwołanie do samej; Jeśli nie określisz nazwę klasy __unhook zakłada klasy się, że w którym jest wywoływana.Macierzystym C++ zdarzenia: ReceiverClass jest klasą zdarzenia odbiornika i HandlerMethod jest program obsługi.
Zdarzenia COM: ReceiverClass jest interfejs odbiorca zdarzeń i HandlerMethod jest jednym z jego obsługi.
Zarządzane zdarzenia: ReceiverClass jest klasą zdarzenia odbiornika i HandlerMethod jest program obsługi.
receiver(opcjonalnie)
Wskaźnik do instancji klasy event odbiornika.Jeśli odbiorca nie jest określony, domyślnie jest odbiornik klasy lub struktury, w którym __unhook jest wywoływana.
Sposób użycia
Może być wykorzystanie w jakikolwiek zakres funkcji, łącznie z głównym poza klasy event odbiornika.
Uwagi
Wewnętrzna funkcja __unhook w odbiorca zdarzeń dissociate lub "odpięcie" metoda obsługi od metody zdarzeń.
Istnieją trzy formy __unhook.W większości przypadków, można skorzystać z pierwszego formularza (cztery argument).Można użyć drugiego formularza (dwóch argument) z __unhook tylko dla odbiornika zdarzeń modelu COM; to unhooks interfejsu całego zdarzenia.Trzecia forma (jeden argument) umożliwia Odpięcie wszystkich delegatów z określonego źródła.
Niezerową wartość zwracana wskazuje, że wystąpił błąd (zdarzenia zarządzanych wygeneruje wyjątek).
Jeśli zadzwonisz __unhook na zdarzenia i obsługi zdarzeń, które nie są już potrzebne będzie miało żadnego efektu.
W czasie kompilacji kompilator sprawdza, czy zdarzenie istnieje i czy parametr typu sprawdzenie z określonego programu obsługi.
Z wyjątkiem zdarzeń COM __hook i __unhook może być wywołana poza odbiorcy zdarzeń.
Zamiast używać __unhook jest użycie operatora-=.
Aby uzyskać informacje dotyczące kodowania zarządzanych zdarzenia w nowych składni, zobacz Zdarzenie (Visual C++).
[!UWAGA]
Opartą na szablonie klasy lub struktury nie mogą zawierać zdarzenia.
Przykład
Zobacz Obsługa zdarzeń w macierzystym C++ i Obsługa zdarzeń w modelu COM dla próbek.