Udostępnij za pośrednictwem


Rejestrowanie funkcji hook

Aplikacje klienckie odbierają zdarzenia WinEvents w funkcji wywołania zwrotnego WinEventProc. Akcje wykonywane przez funkcję wywołania zwrotnego są definiowane przez aplikację, ale składnia musi być określona w prototypie.

Aby można było odbierać zdarzenia, funkcja musi zostać zarejestrowana przez wywołanie SetWinEventHook. Klient może wywołać SetWinEventHook więcej niż raz, aby zarejestrować różne funkcje haka lub ustawić dodatkowe zdarzenia dla wcześniej zarejestrowanej funkcji haka.

Podczas wywoływania SetWinEventHook klient określa, które zdarzenia mają być odbierane i jak je odbierać. Klient może wybrać następujące opcje:

  • Odbierz wszystkie zdarzenia lub określony zestaw zdarzeń.
  • Odbieranie zdarzeń ze wszystkich wątków lub z określonego wątku.
  • Odbieranie zdarzeń ze wszystkich procesów lub z określonego procesu.
  • Obsługa zdarzeń w procesie lub poza procesem.

Po wygenerowaniu zdarzenia zgodnego z określonymi kryteriami system wywołuje funkcję zwrotną WinEventProc (lub "procedurę zaczepienia"). Parametry odbierane przez funkcję haka informują klienta o oknie, obiekcie i możliwym elemiencie podrzędnym, który wygenerował zdarzenie. Klient używa tych parametrów w wywołaniu pobierania obiektu, takiego jak AccessibleObjectFromEvent.