[Accessibility-ia2] QI/QS

Pete Brunet brunet at us.ibm.com
Thu Feb 19 09:02:28 PST 2009


Thanks Mick, The text below includes Mick's update.  Some questions:

1) Should the QS of IAccessible only respond to IID_IAccessible2 or should 
it respond to any of the IA2 IIDs?
2) I was also informed that I need to rework the text to make it clear 
that when you QI an object the interface pointer that's returned needs to 
be for the same object.  Please confirm that if IServiceProvider or 
IEnumInvariant are implemented they are implemented on the same object as 
the rest of the IA2 interfaces.
3) Will FF and Symphony respond without error based on this spec or will 
some bugs need to be written and a rollout plan put in place?

QI & QS in the IAccessible2 object 

QueryInterface 
If the IID is IID_IUnknown or the IID of any of the IA2 interfaces except 
IAApplication then return the requested interface for the IA2 object. 
If the IID is IID_IServiceProvider, return the IServiceProvider interface 
for the service provider object.
If the IID is IID_IEnumVariant, return the IEnumVariant interface for the 
object imlementing it. 
If the IID is the one for IAccessible, IDispatch, IAccessibleApplication, 
or any other IID return E_NOINTERFACE.

QueryService 
If the SID is IID_IAccessible and the IID is IID_IUnknown, IID_IDispatch, 
or IID_IAccessible, then return the requested interface for the 
IAccessible object, otherwise return E_NOINTERFACE. 
If the SID is IID_IAccessible2 and the IID is IID_IUnknown or the IID for 
any of the IA2 interfaces except IAApplication then return the requested 
interface for the IA2 object, otherwise return E_NOINTERFACE. 
If the SID is IID_IAccessibleApplication and the IID is 
IID_IAcessibleApplication then return the IAcessibleApplication interface, 
otherwise return E_NOINTERFACE.

QI & QS in the IAccessibleApplication object 

QueryInterface 
If the IID is IID_IUnknown return the IUnknown interface for the same 
object. 
If the IID is IID_IServiceProvider, return the IServiceProvider interface 
for the service provider object. 
Otherwise return E_NOINTERFACE.

QueryService 
If the SID is IID_IAccessible and the IID is IID_IUnknown, IID_IDispatch, 
or IID_IAccessible, then return the IAccessible for the IAccessible 
object, otherwise return E_NOINTERFACE. 
If the SID is IID_IAccessible2 and the IID is IID_IUnknown or the IID for 
any of the IA2 interfaces except IAApplication then return the requested 
interface for the IA2 object, otherwise return E_NOINTERFACE. 
If the SID is IID_IAccessibleApplication and the IID is IID_IUnknown or 
IID_IAcessibleApplication then return the IAcessibleApplication interface 
for the same object, else return E_NOINTERFACE.

QI & QS in the IAccessible object 

QueryInterface 
If the IID is IAccessible2, return E_NOINTERFACE.

QueryService 
If the SID is IID_IAccessible2 and the IID is IID_IUnknown or any of the 
IA2 interfaces then return the requested interface, else return 
E_NOINTEFACE.

Pete Brunet
                                                                          
IBM Accessibility Architecture and Development
11501 Burnet Road, MS 9022E004, Austin, TX 78758
Voice: (512) 286-5485, Cell: (512) 689-4155
Ionosphere: WS4G
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.linux-foundation.org/pipermail/accessibility-ia2/attachments/20090219/bd81c716/attachment.html 


More information about the Accessibility-ia2 mailing list