From: Connor McAdams cmcadams@codeweavers.com
Signed-off-by: Connor McAdams cmcadams@codeweavers.com --- dlls/uiautomationcore/tests/uiautomation.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+)
diff --git a/dlls/uiautomationcore/tests/uiautomation.c b/dlls/uiautomationcore/tests/uiautomation.c index 96c2c128906..972fd33e499 100644 --- a/dlls/uiautomationcore/tests/uiautomation.c +++ b/dlls/uiautomationcore/tests/uiautomation.c @@ -1097,6 +1097,12 @@ static struct Accessible Accessible_child2 = FALSE, 0, };
+struct Provider_prop_override +{ + int prop_id; + VARIANT val; +}; + static struct Provider { IRawElementProviderSimple IRawElementProviderSimple_iface; @@ -1120,6 +1126,8 @@ static struct Provider DWORD last_call_tid; BOOL ignore_hwnd_prop; HWND override_hwnd; + struct Provider_prop_override *prop_override; + int prop_override_count; } Provider, Provider2, Provider_child, Provider_child2; static struct Provider Provider_hwnd, Provider_nc, Provider_proxy, Provider_proxy2, Provider_override;
@@ -1563,6 +1571,20 @@ HRESULT WINAPI ProviderSimple_GetPropertyValue(IRawElementProviderSimple *iface, ok(This->expected_tid == GetCurrentThreadId(), "Unexpected tid %ld\n", GetCurrentThreadId()); This->last_call_tid = GetCurrentThreadId();
+ if (This->prop_override && This->prop_override_count) + { + int i; + + for (i = 0; i < This->prop_override_count; i++) + { + if (This->prop_override[i].prop_id == prop_id) + { + *ret_val = This->prop_override[i].val; + return S_OK; + } + } + } + VariantInit(ret_val); switch (prop_id) {