User Tools

Site Tools


accessibility:iaccessible2:comproxydll

iaccessible2/comproxydll

IAccessible2 COM proxy stub DLL

 

We have provided an IAccessible2 COM proxy stub DLL, IAccessible2Proxy.DLL as well as the files necessary for building it from the IAccessible2 IDL file. The proxy DLL is needed so the default marshaler has a description of the IAccessible2 interfaces.

Typically an application implementing the IAccessible2 interfaces would provide a proxy DLL with the application but since IAccessible2 is a standard used by more than one application it would be best if applications do not manage this DLL. This is to eliminate the case of two ore more applications installing a proxy DLL for IAccessible2 and then having one application’s uninstall remove the DLL needed by the other applications.

After discussion within the IAccessible2 community it was felt that the ATs should manage the DLL, i.e. copying it to the system32 directory and registering it at install time, but not removing or unregistering it at uninstall time. There are far fewer ATs than applications and thus a smaller group of developers to coordinate with.

You may choose to use the provided IAccessible2Proxy.dll file, or build your own.

If you build your own DLL, the following files are provided and can be used with Visual C2008 Express Edition. * IAccessible2Proxy.def * IAccessible2Proxy.rc * IAccessible2Proxy.sln * IAccessible2Proxy.vcxproj * resource.h You can download those five files from [[http://accessibility.linuxfoundation.org/a11yspecs/ia2/proxy-dll/ Express Editions do not come with a resource editor. ResEdit can be used to edit the resource (rc) file.

Once you download the five build files mentioned above you will also need to copy the merged IAccessible2 IDL file, ia2_api_all.idl, into the same directory and then build the project.

Then install the DLL to the Windows system32 directory and register it using the following command prompt:

regsvr32 IAccessible2Proxy.dll

Or for portable ATs, i.e. ATs that are not installed on the system, you would use in-process injection and CoRegisterClassObject and CoRegisterPSClsid.

Note: You need to run regsvr32 with administrator privileges. On later Windows systems like Vista and Windows 7 applications are not given administrator privileges automatically when running in an account with administrator privileges so for example, on Windows 7, from the start menu locate the command prompt, then right click on the menu item and select run as administrator.

For some background information about creating a proxy DLL, see “COM proxy stub dll and why do you need it” located at https://blogs.msdn.com/eldar/archive/2006/02/28/540981.aspx.

There are files for use with other versions of Visual Studio as well as a makefile in bug 110.

accessibility/iaccessible2/comproxydll.txt · Last modified: 2016/07/19 01:22 (external edit)