diff --git a/dlls/oleacc/client.c b/dlls/oleacc/client.c index 48c8d1c5158..7af5c383c5c 100644 --- a/dlls/oleacc/client.c +++ b/dlls/oleacc/client.c @@ -195,8 +195,17 @@ static HRESULT WINAPI Client_get_accDescription(IAccessible *iface, static HRESULT WINAPI Client_get_accRole(IAccessible *iface, VARIANT varID, VARIANT *pvarRole) { Client *This = impl_from_Client(iface); - FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pvarRole); - return E_NOTIMPL; + + TRACE("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pvarRole); + + if(convert_child_id(&varID) != CHILDID_SELF) { + V_VT(pvarRole) = VT_EMPTY; + return E_INVALIDARG; + } + + V_VT(pvarRole) = VT_I4; + V_I4(pvarRole) = ROLE_SYSTEM_CLIENT; + return S_OK; } static HRESULT WINAPI Client_get_accState(IAccessible *iface, VARIANT varID, VARIANT *pvarState)