我正在使用该IHTMLDocument2
接口的一个实例来解析一些 HTML,如本文所述:
从 IPersistMoniker 加载需要很长时间才能加载无法解析的 URL
代码比较简单:
DelphiInterface<IHTMLDocument2> diDoc2;
HRESULT hr = CoCreateInstance(CLSID_HTMLDocument, NULL, CLSCTX_INPROC_SERVER, IID_IHTMLDocument2, (LPVOID*)&diDoc2);
// Load and process HTML here and save into memory stream or to disk after the processing is done
完成后,我保存diDoc2
上面新修改的 HTML 内容并将 HTML 加载到TWebBrowser
.
我是否可以将
IHTMLDocument2
上面已经解析的内容直接“分配”给IHTMLDocument2
包含在 中的内容TWebBrowser
,这似乎是一种更快的方法。我可以使用可能IHTMLDocument2.write
或其他方法来做到这一点,但是如果首先可能的话,可能会比简单地分配一个指向已经初始化的对象的指针有一些性能损失。换句话说,我只是想“显示”/“渲染”我刚刚在排序的“后台缓冲区”中解析的内容。是否需要打电话
CoInitialize
和打电话CoUninitialize
之前和之后CoCreateInstance
?我见过一些代码可以做到这一点,但没有它也可以工作,除非 Delphi/C++ Builder 做一些底层初始化。