Udostępnij za pośrednictwem


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

Zobacz też

Informacje

Słów kluczowych języka C++

źródło_zdarzenia

event_receiver

klasy __Event

__hook

__raise