Esme Povirk (@madewokherd) commented about dlls/uiautomationcore/tests/uiautomation.c:
+static HRESULT WINAPI ProviderWinEventHandler_RespondToWinEvent(IProxyProviderWinEventHandler *iface, + DWORD event_id, HWND hwnd, LONG obj_id, LONG child_id, IProxyProviderWinEventSink *event_sink) +{ + struct Provider *This = impl_from_ProviderWinEventHandler(iface); + HRESULT hr; + + add_method_call(This, WINEVENT_HANDLER_RESPOND_TO_WINEVENT); + if (This->expected_tid) + ok(This->expected_tid == GetCurrentThreadId(), "Unexpected tid %ld\n", GetCurrentThreadId()); + This->last_call_tid = GetCurrentThreadId(); + PROV_METHOD_TRACE(This, RespondToWinEvent); + + ok(This->win_event_handler_data.exp_win_event_id == event_id, "Unexpected win_event id %ld\n", event_id); + ok(This->win_event_handler_data.exp_win_event_hwnd == hwnd, "Unexpected win_event hwnd %p\n", hwnd); + ok(This->win_event_handler_data.exp_win_event_obj_id == obj_id, "Unexpected win_event obj_id %ld\n", obj_id); + ok(This->win_event_handler_data.exp_win_event_child_id == child_id, "Unexpected win_event child_id %ld\n", child_id); How likely are real events to come in and interfere with this?
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/3919#note_46371