From: Connor McAdams cmcadams@codeweavers.com
Signed-off-by: Connor McAdams cmcadams@codeweavers.com --- dlls/uiautomationcore/tests/uiautomation.c | 5 ++--- dlls/uiautomationcore/uia_provider.c | 12 ++++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/dlls/uiautomationcore/tests/uiautomation.c b/dlls/uiautomationcore/tests/uiautomation.c index da9bb6aa5c9..009864d10c7 100644 --- a/dlls/uiautomationcore/tests/uiautomation.c +++ b/dlls/uiautomationcore/tests/uiautomation.c @@ -12357,9 +12357,8 @@ static void test_node_hwnd_provider_(HUIANODE node, HWND hwnd, const char *file, winetest_push_context("UIA_ProcessIdPropertyId"); hr = UiaGetPropertyValue(node, UIA_ProcessIdPropertyId, &v); ok_(file, line)(hr == S_OK, "Unexpected hr %#lx\n", hr); - todo_wine ok_(file, line)(V_VT(&v) == VT_I4, "Unexpected VT %d\n", V_VT(&v)); - if (V_VT(&v) == VT_I4) - ok_(file, line)(V_I4(&v) == pid, "V_I4(&v) = %#lx, expected %#lx\n", V_I4(&v), pid); + ok_(file, line)(V_VT(&v) == VT_I4, "Unexpected VT %d\n", V_VT(&v)); + ok_(file, line)(V_I4(&v) == pid, "V_I4(&v) = %#lx, expected %#lx\n", V_I4(&v), pid); VariantClear(&v); winetest_pop_context(); } diff --git a/dlls/uiautomationcore/uia_provider.c b/dlls/uiautomationcore/uia_provider.c index 4d081b2c921..afc44fe45ac 100644 --- a/dlls/uiautomationcore/uia_provider.c +++ b/dlls/uiautomationcore/uia_provider.c @@ -1292,6 +1292,18 @@ static HRESULT WINAPI base_hwnd_provider_GetPropertyValue(IRawElementProviderSim V_I4(ret_val) = HandleToUlong(base_hwnd_prov->hwnd); break;
+ case UIA_ProcessIdPropertyId: + { + DWORD pid; + + if (!GetWindowThreadProcessId(base_hwnd_prov->hwnd, &pid)) + return UIA_E_ELEMENTNOTAVAILABLE; + + V_VT(ret_val) = VT_I4; + V_I4(ret_val) = pid; + break; + } + default: break; }