summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2015-02-16 21:27:22 -0500
committerPietro Gagliardi <[email protected]>2015-02-16 21:27:22 -0500
commita33c8701d18f2da2f415b3257a1deef46f8ed799 (patch)
tree1455951fd46d22c1d5d875f12d19da9b641a6e68
parent6729c96c1d9f92b24602f896c75c49f6e8a652fa (diff)
Implemented get_accDefaultAction().
-rw-r--r--wintable/accessibility.h18
1 files changed, 14 insertions, 4 deletions
diff --git a/wintable/accessibility.h b/wintable/accessibility.h
index 2bf062b..f155d38 100644
--- a/wintable/accessibility.h
+++ b/wintable/accessibility.h
@@ -377,11 +377,21 @@ static HRESULT STDMETHODCALLTYPE tableAccget_accSelection(IAccessible *this, VAR
static HRESULT STDMETHODCALLTYPE tableAccget_accDefaultAction(IAccessible *this, VARIANT varChild, BSTR *pszDefaultAction)
{
- if (TA->t == NULL || TA->std == NULL) {
- // TODO set values on error
+ HRESULT hr;
+ tableAccWhat what;
+
+ if (pszDefaultAction == NULL)
+ return E_POINTER;
+ *pszDefaultAction = NULL;
+ if (TA->t == NULL || TA->std == NULL)
return RPC_E_DISCONNECTED;
- }
- return IAccessible_get_accDefaultAction(TA->std, varChild, pszDefaultAction);
+ what = TA->what;
+ hr = normalizeWhat(TA, varChild, &what);
+ if (hr != S_OK)
+ return hr;
+ if (what.role == ROLE_SYSTEM_CELL)
+ ; // TODO implement this for checkbox cells?
+ return DISP_E_MEMBERNOTFOUND;
}
// TODO should this method result in an event?