描述:
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
解决方案1:
m_IHTMLElement这个变量没有初始化,是个空指针,
initialization of 'pDispElem' is skipped by 'case' label
-----------------------------------------------------
声明以及初始化代码不要放到case子句里面去
LPDISPATCH pDispElem = pReturn->pdispVal;
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"));
帮你顶呀。