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...