Crate wineventhook

source ·
Expand description

A rusty wrapper over the window event API specifically SetWinEventHook and UnhookWinEvent.

For the type of events that can be hooked, see WindowEvent.

Example

This example shows how to listen for all window events and print them to the console.

use wineventhook::{EventFilter, WindowEventHook};

#[tokio::main]
async fn main() {
    // Create a new hook
    let (event_tx, mut event_rx) = tokio::sync::mpsc::unbounded_channel();
    let hook = WindowEventHook::hook(
        EventFilter::default(),
        event_tx,
    ).await.unwrap();
     
    // Wait and print events
    while let Some(event) = event_rx.recv().await {
        println!("{:#?}", event);
    }
     
    // Unhook the hook
    hook.unhook().await.unwrap();
}

Modules

Module containing the raw event codes and ranges.

Structs

A filter for window events to be received.
A raw window event received by a WindowEventHook.
A window event received by a WindowEventHook.
A hook with a message loop that listens for window events.

Enums

The type of object associated with a window event.
A known event indicating a change in a console window.
A struct represting an event in a reserved range that may be a known common event or an unknown new or custom event.
A known event indicating a change in a console window.
A known event describing a situation affecting all applications in the system.

Type Definitions

A filter for window events.
A non null handle to a hook created using SetWinEventHook.
A raw handle to a hook created using SetWinEventHook.
A raw handle to a window.
A non null handle to a window.