fn subclass_event_target_window()

in src/platform_impl/windows/event_loop.rs [595:617]


fn subclass_event_target_window<T>(
    window: HWND,
    event_loop_runner: EventLoopRunnerShared<T>,
) -> Sender<T> {
    unsafe {
        let (tx, rx) = mpsc::channel();

        let subclass_input = ThreadMsgTargetSubclassInput {
            event_loop_runner,
            user_event_receiver: rx,
        };
        let input_ptr = Box::into_raw(Box::new(subclass_input));
        let subclass_result = commctrl::SetWindowSubclass(
            window,
            Some(thread_event_target_callback::<T>),
            THREAD_EVENT_TARGET_SUBCLASS_ID,
            input_ptr as DWORD_PTR,
        );
        assert_eq!(subclass_result, 1);

        tx
    }
}