Esme Povirk (@madewokherd) commented about dlls/uiautomationcore/tests/uiautomation.c:
* EVENT_OBJECT_FOCUS only advises of events the first time
* EVENT_OBJECT_FOCUS is raised on an HWND, and it tracks if it has
* encountered a particular HWND before.
*/
- set_method_event_handle_for_providers(&Provider, &Provider_hwnd2, &Provider_nc2, method_event, ADVISE_EVENTS_EVENT_ADDED);
- set_uia_hwnd_expects(0, 1, 1, 3, 0); /* Only Win11 sends WM_GETOBJECT 3 times. */
- NotifyWinEvent(EVENT_OBJECT_FOCUS, test_hwnd, OBJID_CLIENT, CHILDID_SELF);
- ok(msg_wait_for_all_events(method_event, event_handle_count, 750) == WAIT_TIMEOUT, "Wait for method_event(s) didn't time out.\n");
- if (wait_for_clientside_callbacks(2000)) trace("Kept getting callbacks up until timeout\n");
- set_method_event_handle_for_providers(&Provider, &Provider_hwnd2, &Provider_nc2, NULL, -1);
- check_uia_hwnd_expects_at_most(0, 1, 1, 3, 0);
- /* Only OBJID_CLIENT is listened for, all other OBJIDs are ignored. */
- set_method_event_handle_for_providers(&Provider2, &Provider_hwnd3, &Provider_nc3, method_event, ADVISE_EVENTS_EVENT_ADDED);
I'm not sure the event handles are ever reset on these providers?