Bug 248017. Can't QueryService to all ISimpleDOM* interfaces. Need QS because QI won't work on WinXP from IAccessible to custom interfaces. r=pkw, sr=darin

This commit is contained in:
aaronleventhal%moonset.net 2004-06-22 16:38:27 +00:00
Родитель 50aed93726
Коммит cd8d1a778d
1 изменённых файлов: 14 добавлений и 6 удалений

Просмотреть файл

@ -628,13 +628,21 @@ STDMETHODIMP nsAccessibleWrap::put_accValue(
STDMETHODIMP
nsAccessibleWrap::QueryService(REFGUID guidService, REFIID iid, void** ppv)
{
*ppv = NULL;
/**
* To get an ISimpleDOMNode, ISimpleDOMDocument or ISimpleDOMText
* from an IAccessible you have to use IServiceProvider like this:
* --------------------------------------------------------------
* ISimpleDOMDocument *pAccDoc = NULL;
* IServiceProvider *pServProv = NULL;
* pAcc->QueryInterface(IID_IServiceProvider, (void**)&pServProv);
* if (pServProv) {
* const GUID unused;
* pServProv->QueryService(unused, IID_ISimpleDOMDocument, (void**)&pAccDoc);
* pServProv->Release();
* }
*/
if (iid == IID_ISimpleDOMNode) {
return nsAccessNodeWrap::QueryInterface(iid, ppv);
}
return E_NOINTERFACE;
return QueryInterface(iid, ppv);
}