LowLevelMouseProc

Description

Funkce zpětného volání definovaná aplikací nebo knihovnami používaná s funkcí SetWindowsHookExA/SetWindowsHookExW . Systém tuto funkci volá pokaždé, když se chystáte publikovat novou událost vstupu myši do vstupní fronty vlákna.

Typ HOOKPROC definuje ukazatel na tuto funkci zpětného volání. LowLevelMouseProc je zástupný symbol pro název funkce definované aplikací nebo knihovny.

LowLevelMouseProc je zástupný symbol pro název funkce definované aplikací nebo knihovny.

LRESULT CALLBACK LowLevelMouseProc(
  _In_ int    nCode,
  _In_ WPARAM wParam,
  _In_ LPARAM lParam
);

Parametry

nCode [in]

Typ: int

Kód, který procedura hooku používá k určení způsobu zpracování zprávy.

Pokud je nCode menší než nula, procedura háku musí předat zprávu funkci CallNextHookEx bez dalšího zpracování a měla by vrátit hodnotu vrácenou CallNextHookEx.

Tento parametr může být jednou z následujících hodnot.

Hodnota Význam
HC_ACTION 0 Parametry wParam a lParam obsahují informace o zprávě myši.

wParam [in]

Typ: WPARAM

Identifikátor zprávy myši.

Tento parametr může být jedna z následujících zpráv: WM_LBUTTONDOWN, WM_LBUTTONUP, WM_MOUSEMOVE, WM_MOUSEWHEEL, WM_RBUTTONDOWN, WM_RBUTTONUP, WM_MBUTTONDOWN, WM_MBUTTONUP, WM_XBUTTONDOWN nebo WM_XBUTTONUP.

lParam [in]

Typ: LPARAM

Ukazatel na strukturu MSLLHOOKSTRUCT .

Návraty

Typ: LRESULT

Pokud je nCode menší než nula, procedura háku musí vrátit hodnotu vrácenou CallNextHookEx.

Pokud je nCode větší než nebo rovna nule a procedura hook nezpracovala zprávu, důrazně doporučujeme volat CallNextHookEx a vrátit hodnotu, kterou vrátí; jinak ostatní aplikace, které mají nainstalované WH_MOUSE_LL háky, nebudou dostávat oznámení o háku a mohou se chovat nesprávně jako výsledek.

Pokud procedura háku zprávu zpracovala, může vrátit nenulovou hodnotu, aby systém nepředál zprávu do zbytku řetězu háku nebo cílového okna.

Poznámky

Aplikace nainstaluje proceduru háku zadáním typu WH_MOUSE_LL háku a ukazatelem na proceduru háku ve volání funkce SetWindowsHookExA/SetWindowsHookExW.

Tento háček se volá v kontextu vlákna, které ho nainstalovalo. Volání se provede odesláním zprávy do vlákna, které nainstalovalo háku. Proto vlákno, které nainstalovalo háku, musí mít smyčku zpráv.

Vstup myši může pocházet z místního ovladače myši nebo z volání funkce mouse_event . Pokud vstup pochází z volání mouse_event, vstup byl "vložen". Nicméně , WH_MOUSE_LL háček není vložen do jiného procesu. Místo toho se kontext přepne zpět na proces, který nainstaloval hák a volá se v původním kontextu. Kontext se pak přepne zpět do aplikace, která událost vygenerovala.

Procedura hook by měla zpracovat zprávu za kratší dobu než položka dat zadaná v hodnotě LowLevelHooksTimeout v následujícím klíči registru:

HKEY_CURRENT_USER\Control Panel\Desktop

Hodnota je v milisekundách. Pokud časový limit procedury háku vyprší, systém předá zprávu dalšímu háku. Nicméně, v systému Windows 7 a novější, háček je bezobslužně odstraněn bez volání. Neexistuje způsob, jak aplikace zjistit, jestli je háček odebrán.

Windows 10 verze 1709 a novější Maximální hodnota časového limitu, kterou systém umožňuje, je 1000 milisekund (1 sekunda). Systém ve výchozím nastavení použije časový limit 1000 milisekund, pokud je hodnota LowLevelHooksTimeout nastavená na hodnotu větší než 1000.

Poznámka:

Ladicí háky nemohou sledovat tento typ háků myši nízké úrovně. Pokud aplikace musí používat háky nízké úrovně, měla by spouštět háky na vyhrazeném vlákně, které předá práci pracovnímu vláknu, a pak okamžitě vrátí. Ve většině případů, kdy aplikace potřebuje používat háky nízké úrovně, by měla místo toho monitorovat nezpracovaný vstup. Je to proto, že nezpracovaný vstup může asynchronně monitorovat zprávy myši a klávesnice, které jsou cílem jiných vláken efektivněji než háky nízké úrovně. Další informace o nezpracovaných vstupech naleznete v tématu Nezpracovaný vstup.

Viz také

CallNextHookEx

mouse_event

KBDLLHOOK – STRUKTURA

MSLLHOOK – STRUKTURA

SetWindowsHookEx

WM_LBUTTONDOWN

WM_LBUTTONUP

WM_MOUSEMOVE

WM_MOUSEWHEEL

WM_RBUTTONDOWN

WM_RBUTTONUP

Volané služby

O hácích