pub fn new(
        hwnd: HWND,
        is_window_focused: bool,
        action_handler: impl 'static + ActionHandler + Send,
    ) -> Self {
        Self::with_wrapped_action_handler(
            hwnd,
            is_window_focused,
            Arc::new(ActionHandlerWrapper::new(action_handler)),
        )
    }
Creates a new Windows platform adapter.

The action handler may or may not be called on the thread that owns
the window.

This must not be called while handling the `WM_GETOBJECT` message,
because this function must initialize UI Automation before
that message is handled. This is necessary to prevent a race condition
that leads to nested `WM_GETOBJECT` messages and, in some cases,
assistive technologies not realizing that the window natively implements.
UIA. See [AccessKit issue #37](https://github.com/AccessKit/accesskit/issues/37)
for more details.
platforms/windows/src/adapter.rs