我想在程序里解析一个HTML文件,获取一些href和img tag。程序里没有用IE Browser控件。伪代码如下:
HRESULT hr;
hr = CoInitialize(NULL);
IHTMLDocument2 *pMSHTML;
hr = ::CoCreateInstance(CLSID_HTMLDocument,NULL,
CLSCTX_INPROC_SERVER,IID_IHTMLDocument2,
(LPVOID*)&pMSHTML);
if(SUCCEEDED(hr))
{
   LPPERSISTFILE pPF;
   hr = pMSHTML->QueryInterface(IID_IPersistFile,(LPVOID*)&pPF);
   if(SUCCEEDED(hr))
   {
        hr = pPF->Load("c:\\aaa.htm",0);
        if(SUCCEEDED(hr))
        {
               IHTMLElement* pElement = NULL;
if(FAILED(pMSHTML->get_body(&pElement)))
{
AfxMessageBox("body failed");
return ;
}
        }
   }}
.....
执行上述代码后发现,pElement指针为空,不知道是什么原因?
是不是HTML文件没有正确的装载?我换了好几个文件,结果都一样。

解决方案 »

  1.   

    http://msdn.microsoft.com/downloads/samples/internet/default.asp?url=/downloads/samples/internet/browser/walkall/default.asp
      

  2.   

    CoCreateInstance()或CoCreateInstanceEx()函数不支持返回一个运行于服务器上的对象所参考的对象,而只支持CoCreateInstance()或CoCreateInstanceEx()函数本身所运行的目标对象,换句话说:如果客户机从远端调用CoCreateInstance()或CoCreateInstanceEx()函数并试图返回一个创建任务索引到SERVER上,客户机的调用通常会失败