RE: Coding problem related to getting pointer to managed types for MSAA/IAccessible2 "Shim"

Hi Jon & Suyang,

I don’t have any prior experience in this area either but I did some investigation and I think I may have what you need to get this to work:

I have a pull request here https://github.com/schen154/ATTA/pull/2 that just makes some small changes to the type signature of the extern function – as well as uses a different OBJID and it seems to be able to successfully pull the google chrome IAccessible on my machine.

Responding to your other questions RE: IA2. IA2 isn’t something Microsoft builds as far as I know so I don’t have answers to the your other questions. Perhaps it’s possible to just use IAccessible to achieve what you need?

Thanks,
Stanley

From: Gunderson, Jon R [mailto:jongund@illinois.edu]
Sent: Friday, September 9, 2016 7:14 AM
To: Stanley Hon <stahon@microsoft.com>; Cynthia Shelly <cyns@microsoft.com>
Cc: public-aria-test@w3.org ARIA Implementation Testing <public-aria-test@w3.org>
Subject: Coding problem related to getting pointer to managed types for MSAA/IAccessible2 "Shim"
Importance: High

Stanley and Cynthia,

Suyang (my student) working on the Assistive Technology Test Adapter (ATTA) for MSAA/Iccessible has run into a programming error message we have not been able to figure out how to solve.

Can you help point us in the right direction to understand how to fix the following error:
 “Cannot take the address of, get the size of, or declare a pointer to a managed type [‘IAccessible’]”

Is this a new security feature in Windows 10 we must get some type of signature file to support a privileged access to other windows?

Thanks for any help you can provide,
Jon


GitHub Link:
https://github.com/schen154/ATTA.git


Questions:

1.     In order to verify MSAA info, I use the AccessibleObjectFromWindow function to retrieve IAccessible API from UI elements. And I’m getting this error while trying to do declare an IAccessible pointer.

         IAccessible* p_IAcc;
           AccessibleObjectFromWindow(FxWinHandle, OBJID_NATIVEOM,                                                                                                  IID_IAccessible.ToByteArray(),  (void**)&p_IAcc);

      “Cannot take the address of, get the size of, or declare a pointer to a managed type [‘IAccessible’]”

2.     If an IAccessible API is obtained with AccessibleObjectFromWindow, how is an IA2 API obtained from an UI element? Are both IA and IA2 present for UI elements?

3.     Are all the implementations of IA2 API included in the  IAccessible2Proxy.dll? Is that the only thing I need to use IA2?

I am still learning about the accessibility APIs so these questions might seem a bit dumb or even not good. Thank you for your patience!


Suyang


Jon Gunderson, Ph.D.
Coordinator
Accessible IT Group
Disability Resources and Education Services
College of Applied Health Sciences
University of Illinois at Urbana-Champaign

E-mail: jongund@illinois.edu<mailto:jongund@illinois.edu>
WWW: http://disability.illinois.edu/academic-support/aitg

Received on Friday, 9 September 2016 21:03:57 UTC