7

I noticed with Process Monitor that accessing Mozilla Firefox over the IAccessible (MSAA) Interface causes file accesses to an Adobe Reader file called "Accessibility.api". When I access Mozilla Firefox with Microsoft's Inspect.exe (using MSAA) I don't get these file accesses.

This is the code (C++) that causes about 28 accesses to the "Accessibility.api" file accesses:

CComPtr<IAccessible> mainElement;
::AccessibleObjectFromWindow(mainWindowHandle, static_cast<DWORD>(OBJID_CLIENT), IID_IAccessible, reinterpret_cast<void**>(&mainElement));

Every ::AccessibleChildren or IEnumVariant::Next call also causes about 28 accesses per child element.

How can I prevent these file accesses like Inspect.exe is doing?

Update 2018-11-30

I get the same results with Chrome.

Adobe Reader is not installed as plug-in on these Browsers.

I tried to rename the Accessible.api file (located in C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\plug_ins\Accessibility.api) to disable it but after that I can't access the browser elements any more. The resulting child-elements differ. Inspect.exe (using MSAA) or Ranorex Spy (without browser extension) don't have these problems. I checked the results also with AccProbe and this tool generates the same results like me.

Update 2018-12-03

It looks like that this affects only 32-bit applications. Inspect.exe and Ranorex Spy are 64-bit applications. My application and also AccProbe (installed JRE is 32-bit) are 32-bit. Because Adobe Reader is 32-bit I assume that's why only 32-bit applications are affected. I could also reproduce this behaviour with a 32-bit version of Ranorex Spy.

Now I know that the behaviour is not caused by a wrong implementation. But the question why so many accesses to this Adobe Reader Accessibility.api file are done is still open...

GR84
  • 89
  • 3
  • IAccessible is very, very old. So is not unlikely to hit providers that are ancient, like Adobe Reader. Today's better mouse trap is IUIAutomation, start [reading here](https://learn.microsoft.com/en-us/windows/desktop/winauto/uiauto-clientportal). – Hans Passant Nov 30 '18 at 10:41
  • Hello Hans, thank you for your comment. IAccessible may be old, but it's still supported. I tried UIAutomation but for me it was very unstable to use. – GR84 Nov 30 '18 at 11:38
  • It is not very unstable in Inspect.exe. Do ask the real question to get the help you need. – Hans Passant Nov 30 '18 at 11:41
  • Sorry, but for me UIAutomation is not an option. IAccessible could be old, but it's also working well in Inspect.exe – GR84 Nov 30 '18 at 11:54

0 Answers0