C# 如何访问文档';使用IAccessible在Firefox中创建HTML

C# 如何访问文档';使用IAccessible在Firefox中创建HTML,c#,firefox,accessibility,iaccessible,C#,Firefox,Accessibility,Iaccessible,我可以使用以下代码从Firefox窗口获取IAccessable对象: 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 = (Accessibi

我可以使用以下代码从Firefox窗口获取IAccessable对象:

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。任何帮助都将不胜感激。

显然,使用IAccessible无法获得完整的HTML源代码。我找到了这个,但它在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);
}

我卡住了(

)你使用C++吗?如果你是,你链接到Xulver库吗?我不链接到Xulver库,我使用从提供的IDL文件生成的对象。我用MIDL从.IDL生成.h文件。我想知道H文件中IIDAI ISMyEndoMoNoD值是否错了,但我不知道如何才能实现。验证它。我使用这里的第一个示例解决了它,并递归地处理每个节点,直到我们到达一个HTML节点。然后innerHTML调用将成功。