case DISPID_BEFORENAVIGATE2:
//MessageBox(NULL,"DISPID_BEFORENAVIGATE2",NULL,NULL);
IHTMLElement *m_IHTMLElement;
m_IHTMLElement->put_innerHTML(_com_util::ConvertStringToBSTR("pbBody"));代码下载:http://www.gzyd.net/lael/iehelper.exe 应该是微软的代码,忘了原下载地址代码缺少的
#include "ExDisp.h"#include "ExDispID.h"
#include <strstrea.h>
#include "Mshtml.h"
#include <comutil.h>
#pragma comment(lib, "comsupp.lib")_com_util::ConvertStringToBSTR
_com_util::ConvertBSTRToString
//MessageBox(NULL,"DISPID_BEFORENAVIGATE2",NULL,NULL);
IHTMLElement *m_IHTMLElement;
m_IHTMLElement->put_innerHTML(_com_util::ConvertStringToBSTR("pbBody"));代码下载:http://www.gzyd.net/lael/iehelper.exe 应该是微软的代码,忘了原下载地址代码缺少的
#include "ExDisp.h"#include "ExDispID.h"
#include <strstrea.h>
#include "Mshtml.h"
#include <comutil.h>
#pragma comment(lib, "comsupp.lib")_com_util::ConvertStringToBSTR
_com_util::ConvertBSTRToString
IHTMLEventObj* pEvtObj;
HRESULT hr = pDispElem->QueryInterface(IID_IHTMLEventObj, (void**)&pEvtObj
IHTMLElement* pElem;
HRESULT hr = pEvtObj->get_srcElement(&pElem);
pElem->put_innerHTML(_com_util::ConvertStringToBSTR("pbBody"));
==================================================
而你的这个Element这个只是声明了一个变量而已
HTMLElement *m_IHTMLElement;
m_IHTMLElement->put_innerHTML(_com_util::ConvertStringToBSTR("pbBody"));
.....................
用其它代码多少行都不会出这种错,很奇怪然后我加上 case..{}
就可以通过编译,但运行IE就会出加载错误.
-----------------------------------------------------
声明以及初始化代码不要放到case子句里面去
CComPtr<IDispatch> pDisp;
HRESULT hr = m_spWebBrowser2->get_Document(&pDisp);
if (FAILED(hr)) return hr;
CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> spHTML;
spHTML = pDisp;
if (spHTML)
{
CComPtr<IHTMLElement> m_pBody;
hr = spHTML->get_body(&m_pBody);
if (FAILED(hr)) return hr;
BSTR bstrHTMLText;
hr = m_pBody->get_outerHTML(&bstrHTMLText);
if (FAILED(hr)) return hr;
LPTSTR psz = new TCHAR[SysStringLen(bstrHTMLText)];
lstrcpy(psz, OLE2T(bstrHTMLText));
delete [] psz;
}