uiautomationcore: Handle EVENT_SYSTEM_ALERT in IProxyProviderWinEventHandler::RespondToWinEvent() for MSAA providers.
Signed-off-by: Connor McAdams <cmcadams@codeweavers.com>
This commit is contained in:
parent
c22bd318b3
commit
05b4619d88
2 changed files with 33 additions and 7 deletions
|
@ -3543,16 +3543,16 @@ static void test_uia_prov_from_acc_winevent_handler(HWND hwnd)
|
||||||
SET_EXPECT(ProxyEventSink_AddAutomationEvent);
|
SET_EXPECT(ProxyEventSink_AddAutomationEvent);
|
||||||
hr = IProxyProviderWinEventHandler_RespondToWinEvent(handler, EVENT_SYSTEM_ALERT, hwnd, OBJID_CLIENT, CHILDID_SELF,
|
hr = IProxyProviderWinEventHandler_RespondToWinEvent(handler, EVENT_SYSTEM_ALERT, hwnd, OBJID_CLIENT, CHILDID_SELF,
|
||||||
&ProxyEventSink.IProxyProviderWinEventSink_iface);
|
&ProxyEventSink.IProxyProviderWinEventSink_iface);
|
||||||
todo_wine ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
|
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
|
||||||
todo_wine CHECK_CALLED(ProxyEventSink_AddAutomationEvent);
|
CHECK_CALLED(ProxyEventSink_AddAutomationEvent);
|
||||||
todo_wine ok(ProxyEventSink.event_id == UIA_SystemAlertEventId, "Unexpected event_id %d\n", ProxyEventSink.event_id);
|
ok(ProxyEventSink.event_id == UIA_SystemAlertEventId, "Unexpected event_id %d\n", ProxyEventSink.event_id);
|
||||||
todo_wine ok(ProxyEventSink.event_elprov == elprov, "Unexpected event_elprov %p\n", ProxyEventSink.event_elprov);
|
ok(ProxyEventSink.event_elprov == elprov, "Unexpected event_elprov %p\n", ProxyEventSink.event_elprov);
|
||||||
proxy_event_sink_clear();
|
proxy_event_sink_clear();
|
||||||
|
|
||||||
/* EVENT_OBJECT_FOCUS is not handled. */
|
/* EVENT_OBJECT_FOCUS is not handled. */
|
||||||
hr = IProxyProviderWinEventHandler_RespondToWinEvent(handler, EVENT_OBJECT_FOCUS, hwnd, OBJID_CLIENT, CHILDID_SELF,
|
hr = IProxyProviderWinEventHandler_RespondToWinEvent(handler, EVENT_OBJECT_FOCUS, hwnd, OBJID_CLIENT, CHILDID_SELF,
|
||||||
&ProxyEventSink.IProxyProviderWinEventSink_iface);
|
&ProxyEventSink.IProxyProviderWinEventSink_iface);
|
||||||
todo_wine ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
|
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
|
||||||
|
|
||||||
/* EVENT_OBJECT_NAMECHANGE. */
|
/* EVENT_OBJECT_NAMECHANGE. */
|
||||||
SET_EXPECT(ProxyEventSink_AddAutomationPropertyChangedEvent);
|
SET_EXPECT(ProxyEventSink_AddAutomationPropertyChangedEvent);
|
||||||
|
|
|
@ -1403,8 +1403,34 @@ static ULONG WINAPI msaa_winevent_handler_Release(IProxyProviderWinEventHandler
|
||||||
static HRESULT WINAPI msaa_winevent_handler_RespondToWinEvent(IProxyProviderWinEventHandler *iface, DWORD event_id,
|
static HRESULT WINAPI msaa_winevent_handler_RespondToWinEvent(IProxyProviderWinEventHandler *iface, DWORD event_id,
|
||||||
HWND hwnd, LONG objid, LONG cid, IProxyProviderWinEventSink *event_sink)
|
HWND hwnd, LONG objid, LONG cid, IProxyProviderWinEventSink *event_sink)
|
||||||
{
|
{
|
||||||
FIXME("%p, %ld, %p, %ld, %ld, %p: stub\n", iface, event_id, hwnd, objid, cid, event_sink);
|
struct msaa_provider *msaa_prov = impl_from_msaa_winevent_handler(iface);
|
||||||
return E_NOTIMPL;
|
HRESULT hr;
|
||||||
|
|
||||||
|
TRACE("%p, %ld, %p, %ld, %ld, %p\n", iface, event_id, hwnd, objid, cid, event_sink);
|
||||||
|
|
||||||
|
switch (event_id)
|
||||||
|
{
|
||||||
|
case EVENT_SYSTEM_ALERT:
|
||||||
|
hr = IProxyProviderWinEventSink_AddAutomationEvent(event_sink, &msaa_prov->IRawElementProviderSimple_iface,
|
||||||
|
UIA_SystemAlertEventId);
|
||||||
|
if (FAILED(hr))
|
||||||
|
WARN("AddAutomationEvent failed with hr %#lx\n", hr);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EVENT_OBJECT_REORDER:
|
||||||
|
case EVENT_OBJECT_SELECTION:
|
||||||
|
case EVENT_OBJECT_NAMECHANGE:
|
||||||
|
case EVENT_OBJECT_VALUECHANGE:
|
||||||
|
case EVENT_OBJECT_HELPCHANGE:
|
||||||
|
case EVENT_OBJECT_INVOKED:
|
||||||
|
FIXME("WinEvent %ld currently unimplemented\n", event_id);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const IProxyProviderWinEventHandlerVtbl msaa_winevent_handler_vtbl = {
|
static const IProxyProviderWinEventHandlerVtbl msaa_winevent_handler_vtbl = {
|
||||||
|
|
Loading…
Add table
Reference in a new issue