[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