/*! \internal Can return: +-------------+------------------------------------------------------------------------------+ | VT_EMPTY | None. Neither this object nor any of its children has the keyboard focus. | +-------------+------------------------------------------------------------------------------+ | VT_I4 | lVal is CHILDID_SELF. The object itself has the keyboard focus. | +-------------+------------------------------------------------------------------------------+ | VT_I4 | lVal contains the child ID of the child element that has the keyboard focus. | +-------------+------------------------------------------------------------------------------+ | VT_DISPATCH | pdispVal member is the address of the IDispatch interface for the child | | | object that has the keyboard focus. | +-------------+------------------------------------------------------------------------------+ moz: [important] */ HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accFocus(VARIANT *pvarID) { QAccessibleInterface *accessible = accessibleInterface(); accessibleDebugClientCalls(accessible); if (!accessible) return E_FAIL; if (QAccessibleInterface *acc = accessible->focusChild()) { if (acc == accessible) { (*pvarID).vt = VT_I4; (*pvarID).lVal = CHILDID_SELF; return S_OK; } else { if (IAccessible *iface = QWindowsAccessibility::wrap(acc)) { (*pvarID).vt = VT_DISPATCH; (*pvarID).pdispVal = iface; return S_OK; } } } (*pvarID).vt = VT_EMPTY; return S_FALSE; }