using Ia2 interfaces

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

using Ia2 interfaces

Sean Farrow
Hi:
I am looking in to using ia2 interfaces and have a coupple of questions:
1. Do I need to ship the ia2proxy dll in my installation, what are the steps
for doinfg this?
2. is there any realworld code for clients I can look at (preferably in c++)
to give me examples.
3. What is the overlap between msaa, and Ia2. I apreciate these are basic
questions, but I'm in the process of doing some sub contracting and need to
understand things.
Aditionally is there a typelibrary file (*.tlb) available to allow the use
of ia2 in other languages apart from c++?
Cheers
Sean.


_______________________________________________
dev-accessibility mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-accessibility
Reply | Threaded
Open this post in threaded view
|

Re: using Ia2 interfaces

James Teh-2
On 6/10/2008 8:50 PM, Sean Farrow wrote:
> 1. Do I need to ship the ia2proxy dll in my installation, what are the steps
> for doinfg this?
You can have the IAccessible2proxy.dll file copied to
%systemroot%\system32 by your installer and then registered as a COM
server (regsvr32 or equivalent). Alternatively, you can write a dll
which goes in-process and calls CoRegisterClassObject and then
CoRegisterPsClsid for all IA2 clsids. The advantage of the latter
solution is that you don't require administrative privileges to install
or run your application. See:
http://bugs.linux-foundation.org/show_bug.cgi?id=125
for more info.

> 2. is there any realworld code for clients I can look at (preferably in c++)
> to give me examples.
NVDA includes IA2 client code in Python and our virtual buffer library
is written in C++.

> 3. What is the overlap between msaa, and Ia2.
IA2 is meant to provide what MSAA does not. Thus, it uses the MSAA event
mechanism and you query to IAccessible2 from an IAccessible. As I
understand it, the original intent was that IA2 was to be a separate
interface; you query to IAccessible2 to retrieve IA2 information and
then were not supposed to use this interface to retrieve MSAA
information, as they may be different objects. However, most
implementations seem to support MSAA and IA2 on the same object and
because IAccessible2 is a sub-class of IAccessible, you can call
IAccessible methods and properties. This is what NVDA does at present.

Jamie

--
James Teh
Email: [hidden email]
WWW: http://www.jantrid.net/
MSN Messenger: [hidden email]
Jabber: [hidden email]
Yahoo: jcs_teh
_______________________________________________
dev-accessibility mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-accessibility
Reply | Threaded
Open this post in threaded view
|

Re: using Ia2 interfaces

Sean Farrow
Hi Jamie:
Where in the nvda code is the ia2 stuff, and where in the virtual buffer
library?
Also is I go the latter approach, writing my own dll, dies this have to be a
com serve?
Chers
Sean.
"James Teh" <[hidden email]> wrote in message
news:[hidden email]...

> On 6/10/2008 8:50 PM, Sean Farrow wrote:
>> 1. Do I need to ship the ia2proxy dll in my installation, what are the
>> steps
>> for doinfg this?
> You can have the IAccessible2proxy.dll file copied to
> %systemroot%\system32 by your installer and then registered as a COM
> server (regsvr32 or equivalent). Alternatively, you can write a dll which
> goes in-process and calls CoRegisterClassObject and then CoRegisterPsClsid
> for all IA2 clsids. The advantage of the latter solution is that you don't
> require administrative privileges to install or run your application. See:
> http://bugs.linux-foundation.org/show_bug.cgi?id=125
> for more info.
>
>> 2. is there any realworld code for clients I can look at (preferably in
>> c++)
>> to give me examples.
> NVDA includes IA2 client code in Python and our virtual buffer library is
> written in C++.
>
>> 3. What is the overlap between msaa, and Ia2.
> IA2 is meant to provide what MSAA does not. Thus, it uses the MSAA event
> mechanism and you query to IAccessible2 from an IAccessible. As I
> understand it, the original intent was that IA2 was to be a separate
> interface; you query to IAccessible2 to retrieve IA2 information and then
> were not supposed to use this interface to retrieve MSAA information, as
> they may be different objects. However, most implementations seem to
> support MSAA and IA2 on the same object and because IAccessible2 is a
> sub-class of IAccessible, you can call IAccessible methods and properties.
> This is what NVDA does at present.
>
> Jamie
>
> --
> James Teh
> Email: [hidden email]
> WWW: http://www.jantrid.net/
> MSN Messenger: [hidden email]
> Jabber: [hidden email]
> Yahoo: jcs_teh


_______________________________________________
dev-accessibility mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-accessibility
Reply | Threaded
Open this post in threaded view
|

Re: using Ia2 interfaces

James Teh-2
On 7/10/2008 5:17 AM, Sean Farrow wrote:
> Where in the nvda code is the ia2 stuff
Primarily in NVDAObjects/IAccessible/__init__.py. There's also probably
some in IAccessibleHandler.py.

> and where in the virtual buffer
> library?
The gecko_ia2 back-end.

> Also is I go the latter approach, writing my own dll, dies this have to be a
> com serve?
No. See the NVDAHelper source code in NVDA. Note of course that if you
re-use any of this code, it must be done under the terms of the GPL.

Jamie

--
James Teh
Email: [hidden email]
WWW: http://www.jantrid.net/
MSN Messenger: [hidden email]
Jabber: [hidden email]
Yahoo: jcs_teh
_______________________________________________
dev-accessibility mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-accessibility
Reply | Threaded
Open this post in threaded view
|

Re: using Ia2 interfaces

James Teh-2
In reply to this post by Sean Farrow
On 6/10/2008 8:50 PM, Sean Farrow wrote:
> Aditionally is there a typelibrary file (*.tlb) available to allow the use
> of ia2 in other languages apart from c++?
Forgot to answer this one. You can build a typelib from the idl using midl.

Btw, this is probably better discussed on the IA2 list, since there
don't appear to be any questions specific to Mozilla here.

Jamie

--
James Teh
Email: [hidden email]
WWW: http://www.jantrid.net/
MSN Messenger: [hidden email]
Jabber: [hidden email]
Yahoo: jcs_teh
_______________________________________________
dev-accessibility mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-accessibility