Как получить доступ к HTML документа в Firefox с помощью IAccessible
Я могу получить объект IAccessible из окна Firefox, используя этот код:
Guid guid = new Guid("{618736E0-3C3D-11CF-810C-00AA00389B71}");
object obj = null;
int ret = AccessibleObjectFromWindow(hWnd,
(uint) OBJID.WINDOW, ref guid, ref obj);
Accessibility.IAccessible acc = (Accessibility.IAccessible)obj;
Тем не менее, я не уверен, куда идти отсюда. Мне нужно получить полный HTML из документа. Я знаю о методе IAccessible.get_accValue(), но я не совсем уверен, как использовать его по отношению к Firefox. Любая помощь приветствуется.
1 ответ
Решение
Видимо, вы не можете получить полный исходный код HTML с помощью IAccessible. Я нашел это, но это не работает в FF3.5:
IServiceProvider *pServProv = NULL;
pAccessible->QueryInterface(IID_IServiceProvider, (void**)&pServProv);
ISimpleDOMNode *pSimpleDOMNode;
if (pServProv) {
const GUID refguid = {0x0c539790, 0x12e4, 0x11cf, 0xb6, 0x61,
0x00, 0xaa, 0x00, 0x4c, 0xd6, 0xd8};
HRESULT result = pServProv->QueryService(refguid, IID_ISimpleDOMNode,
(void**)&pSimpleDOMNode);
if (SUCCEEDED(hresult) && pSimpleDOMNode != NULL) {
/* This is a Mozilla node! Use special ISimpleDOMNode methods described in
ISimpleDOMNode.idl. */
}
}
Я также нашел это, которое не работает в FF3.5 либо:
HRESULT hr = AccessibleObjectFromWindow(hwnd, OBJID_CLIENT,
IID_IAccessible, (void**)&pAccessible);
if (SUCCEEDED(hr) && pAccessible != NULL) {
HRESULT hr = pAccessible->QueryInterface(
IID_ISimpleDOMNode, (void**)&pSimpleDOMNode);
}
Я застрял.:(