summaryrefslogtreecommitdiff
path: root/wintable/new/accessibility.h
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2015-01-06 17:27:41 -0500
committerPietro Gagliardi <[email protected]>2015-01-06 17:27:41 -0500
commit22123fb676d26d309d428a892c453e35e684e367 (patch)
tree9552f1a91a8b8995065e74573e8f59f448f2b08c /wintable/new/accessibility.h
parent720049bfd3c6d205859f3150dee33dee78dc3dc3 (diff)
Merged wintable/new/ into wintable/.
Diffstat (limited to 'wintable/new/accessibility.h')
-rw-r--r--wintable/new/accessibility.h287
1 files changed, 0 insertions, 287 deletions
diff --git a/wintable/new/accessibility.h b/wintable/new/accessibility.h
deleted file mode 100644
index 3900cd2..0000000
--- a/wintable/new/accessibility.h
+++ /dev/null
@@ -1,287 +0,0 @@
-// 24 december 2014
-
-struct tableAcc {
- IAccessibleVtbl *vtbl;
- ULONG refcount;
- struct table *t;
- IAccessible *std;
-};
-
-#define TA ((struct tableAcc *) this)
-
-static HRESULT STDMETHODCALLTYPE tableAccQueryInterface(IAccessible *this, REFIID riid, void **ppvObject)
-{
- if (ppvObject == NULL)
- return E_POINTER;
- if (IsEqualIID(riid, &IID_IUnknown) ||
- IsEqualIID(riid, &IID_IDispatch) ||
- IsEqualIID(riid, &IID_IAccessible)) {
- // TODO figure out what pointer to use here
- TA->vtbl->AddRef(TA);
- *ppvObject = (void *) this;
- return S_OK;
- }
- *ppvObject = NULL;
- return E_NOINTERFACE;
-}
-
-// TODO use InterlockedIncrement()/InterlockedDecrement() for these?
-
-static ULONG STDMETHODCALLTYPE tableAccAddRef(IAccessible *this)
-{
- TA->refcount++;
- // TODO correct?
- return TA->refcount;
-}
-
-static ULONG STDMETHODCALLTYPE tableAccRelease(IAccessible *this)
-{
- TA->refcount--;
- if (TA->refcount == 0) {
- IAccessible_Release(TA->std);
- tableFree(TA, "error freeing Table accessibility object");
- return 0;
- }
- return TA->refcount;
-}
-
-// disregard IDispatch: http://msdn.microsoft.com/en-us/library/windows/desktop/cc307844.aspx
-// TODO DISP_E_MEMBERNOTFOUND? http://blogs.msdn.com/b/saraford/archive/2004/08/20/which-controls-support-which-msaa-properties-and-how-these-controls-implement-msaa-properties.aspx
-// TODO relegate these to the standard object?
-
-static HRESULT STDMETHODCALLTYPE tableAccGetTypeInfoCount(IAccessible *this, UINT *pctinfo)
-{
- if (pctinfo == NULL)
- return E_INVALIDARG;
- // TODO assign something to *pctinfo?
- return E_NOTIMPL;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccGetTypeInfo(IAccessible *this, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
-{
- if (ppTInfo == NULL)
- return E_INVALIDARG;
- *ppTInfo = NULL;
- return E_NOTIMPL;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccGetIDsOfNames(IAccessible *this, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
-{
- // TODO verify this one
- if (rgDispId == NULL)
- return E_INVALIDARG;
- // TODO overwrite rgDispId?
- return E_NOTIMPL;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccInvoke(IAccessible *this, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
-{
- // TODO check this one
- return E_NOTIMPL;
-}
-
-// IAccessible
-
-static HRESULT STDMETHODCALLTYPE tableAccget_accParent(IAccessible *this, IDispatch **ppdispParent)
-{
- // TODO
- return DISP_E_MEMBERNOTFOUND;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccget_accChildCount(IAccessible *this, long *pcountChildren)
-{
- // TODO
- return DISP_E_MEMBERNOTFOUND;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccget_accChild(IAccessible *this, VARIANT varChild, IDispatch **ppdispChild)
-{
- // TODO
- return DISP_E_MEMBERNOTFOUND;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccget_accName(IAccessible *this, VARIANT varChild, BSTR *pszName)
-{
-printf("tableAccget_accName()\n");
- // TODO check pointer
- if (varChild.vt != VT_I4) {
-printf("invalid arg\n");
- *pszName = NULL;
- return E_INVALIDARG;
- }
- if (varChild.lVal == CHILDID_SELF)
- ; // TODO standard accessible object
- // TODO actually get the real name
-printf("returning name\n");
- *pszName = SysAllocString(L"This is a test of the accessibility interface.");
- // TODO check null pointer
- return S_OK;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccget_accValue(IAccessible *this, VARIANT varChild, BSTR *pszValue)
-{
- // TODO
- return DISP_E_MEMBERNOTFOUND;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccget_accDescription(IAccessible *this, VARIANT varChild, BSTR *pszDescription)
-{
- // TODO
- return DISP_E_MEMBERNOTFOUND;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccget_accRole(IAccessible *this, VARIANT varChild, VARIANT *pvarRole)
-{
- // TODO
- return DISP_E_MEMBERNOTFOUND;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccget_accState(IAccessible *this, VARIANT varChild, VARIANT *pvarState)
-{
- // TODO
- return DISP_E_MEMBERNOTFOUND;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccget_accHelp(IAccessible *this, VARIANT varChild, BSTR *pszHelp)
-{
- // TODO
- return DISP_E_MEMBERNOTFOUND;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccget_accHelpTopic(IAccessible *this, BSTR *pszHelpFile, VARIANT varChild, long *pidTopic)
-{
- // TODO
- return DISP_E_MEMBERNOTFOUND;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccget_accKeyboardShortcut(IAccessible *this, VARIANT varChild, BSTR *pszKeyboardShortcut)
-{
- // TODO
- return DISP_E_MEMBERNOTFOUND;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccget_accFocus(IAccessible *this, VARIANT *pvarChild)
-{
- // TODO
- return DISP_E_MEMBERNOTFOUND;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccget_accSelection(IAccessible *this, VARIANT *pvarChildren)
-{
- // TODO
- return DISP_E_MEMBERNOTFOUND;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccget_accDefaultAction(IAccessible *this, VARIANT varChild, BSTR *pszDefaultAction)
-{
- // TODO
- return DISP_E_MEMBERNOTFOUND;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccaccSelect(IAccessible *this, long flagsSelect, VARIANT varChild)
-{
- // TODO
- return DISP_E_MEMBERNOTFOUND;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccaccLocation(IAccessible *this, long *pxLeft, long *pyTop, long *pcxWidth, long *pcyHeight, VARIANT varChild)
-{
- // TODO
- return IAccessible_accLocation(TA->std, pxLeft, pyTop, pcxWidth, pcyHeight, varChild);
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccaccNavigate(IAccessible *this, long navDir, VARIANT varStart, VARIANT *pvarEndUpAt)
-{
- // TODO
- return IAccessible_accNavigate(TA->std, navDir, varStart, pvarEndUpAt);
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccaccHitTest(IAccessible *this, long xLeft, long yTop, VARIANT *pvarChild)
-{
- // TODO
- return IAccessible_accHitTest(TA->std, xLeft, yTop, pvarChild);
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccaccDoDefaultAction(IAccessible *this, VARIANT varChild)
-{
- // TODO
- return DISP_E_MEMBERNOTFOUND;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccput_accName(IAccessible *this, VARIANT varChild, BSTR szName)
-{
- // TODO
- return DISP_E_MEMBERNOTFOUND;
-}
-
-static HRESULT STDMETHODCALLTYPE tableAccput_accValue(IAccessible *this, VARIANT varChild, BSTR szValue)
-{
- // TODO
- return DISP_E_MEMBERNOTFOUND;
-}
-
-static const IAccessibleVtbl tableAccVtbl = {
- .QueryInterface = tableAccQueryInterface,
- .AddRef = tableAccAddRef,
- .Release = tableAccRelease,
- .GetTypeInfoCount = tableAccGetTypeInfoCount,
- .GetTypeInfo = tableAccGetTypeInfo,
- .GetIDsOfNames = tableAccGetIDsOfNames,
- .Invoke = tableAccInvoke,
- .get_accParent = tableAccget_accParent,
- .get_accChildCount = tableAccget_accChildCount,
- .get_accChild = tableAccget_accChild,
- .get_accName = tableAccget_accName,
- .get_accValue = tableAccget_accValue,
- .get_accDescription = tableAccget_accDescription,
- .get_accRole = tableAccget_accRole,
- .get_accState = tableAccget_accState,
- .get_accHelp = tableAccget_accHelp,
- .get_accHelpTopic = tableAccget_accHelpTopic,
- .get_accKeyboardShortcut = tableAccget_accKeyboardShortcut,
- .get_accFocus = tableAccget_accFocus,
- .get_accSelection = tableAccget_accSelection,
- .get_accDefaultAction = tableAccget_accDefaultAction,
- .accSelect = tableAccaccSelect,
- .accLocation = tableAccaccLocation,
- .accNavigate = tableAccaccNavigate,
- .accHitTest = tableAccaccHitTest,
- .accDoDefaultAction = tableAccaccDoDefaultAction,
- .put_accName = tableAccput_accName,
- .put_accValue = tableAccput_accValue,
-};
-
-static struct tableAcc *newTableAcc(struct table *t)
-{
- struct tableAcc *ta;
- HRESULT hr;
- IAccessible *std;
-
- ta = (struct tableAcc *) tableAlloc(sizeof (struct tableAcc), "error creating Table accessibility object");
- ta->vtbl = &tableAccVtbl;
- ta->vtbl->AddRef(ta);
- ta->t = t;
- hr = CreateStdAccessibleObject(t->hwnd, OBJID_CLIENT, &IID_IAccessible, &std);
- if (hr != S_OK)
- // TODO panichresult
- panic("error creating standard accessible object for Table");
- ta->std = std;
- return ta;
-}
-
-static void freeTableAcc(struct tableAcc *ta)
-{
- ta->t = NULL;
- ta->vtbl->Release(ta);
-}
-
-HANDLER(accessibilityHandler)
-{
- if (uMsg != WM_GETOBJECT)
- return FALSE;
- if (((DWORD) lParam) != OBJID_CLIENT)
- return FALSE;
- *lResult = LresultFromObject(&IID_IAccessible, wParam, t->ta);
- // TODO check *lResult
- return TRUE;
-}