我的开发环境WTL8+VC8+XP(SP2)
代码:*.H
......
BEGIN_SINK_MAP(CBrowserView)
......
SINK_ENTRY_INFO(_nDispatchID, DIID_DWebBrowserEvents2, DISPID_NEWWINDOW2, OnEventNewWindow2, &NewWindow2_Info)
SINK_ENTRY_INFO(_nDispatchID, DIID_DWebBrowserEvents2, DISPID_NEWWINDOW3, OnEventNewWindow3, &NewWindow3_Info)
END_SINK_MAP()
__declspec(selectany) _ATL_FUNC_INFO CBrowserView::NewWindow2_Info = { CC_STDCALL, VT_EMPTY, 2, { VT_DISPATCH, VT_BOOL } };
__declspec(selectany) _ATL_FUNC_INFO CBrowserView::NewWindow3_Info = { CC_STDCALL, VT_EMPTY, 5, { VT_DISPATCH, VT_BOOL, VT_I4, VT_BSTR, VT_BSTR } };
--------------------------------------------------------
*.CPP
......
void __stdcall CBrowserView::OnEventNewWindow2(IDispatch* pDisp, VARIANT_BOOL* Cancel)
{
*Cancel = VARIANT_FALSE; //这句出错
}
void __stdcall CBrowserView::OnEventNewWindow3(IDispatch* pDisp, VARIANT_BOOL* Cancel, DWORD dwFlags, BSTR bstrUrlContext, BSTR bstrUrl)
{
*Cancel = VARIANT_TRUE; //这句出错
}错误:
Unhandled exception at 0x00456821 in Browser.exe: 0xC0000005: Access violation writing location 0x000042f0.请高手指点一下!
代码:*.H
......
BEGIN_SINK_MAP(CBrowserView)
......
SINK_ENTRY_INFO(_nDispatchID, DIID_DWebBrowserEvents2, DISPID_NEWWINDOW2, OnEventNewWindow2, &NewWindow2_Info)
SINK_ENTRY_INFO(_nDispatchID, DIID_DWebBrowserEvents2, DISPID_NEWWINDOW3, OnEventNewWindow3, &NewWindow3_Info)
END_SINK_MAP()
__declspec(selectany) _ATL_FUNC_INFO CBrowserView::NewWindow2_Info = { CC_STDCALL, VT_EMPTY, 2, { VT_DISPATCH, VT_BOOL } };
__declspec(selectany) _ATL_FUNC_INFO CBrowserView::NewWindow3_Info = { CC_STDCALL, VT_EMPTY, 5, { VT_DISPATCH, VT_BOOL, VT_I4, VT_BSTR, VT_BSTR } };
--------------------------------------------------------
*.CPP
......
void __stdcall CBrowserView::OnEventNewWindow2(IDispatch* pDisp, VARIANT_BOOL* Cancel)
{
*Cancel = VARIANT_FALSE; //这句出错
}
void __stdcall CBrowserView::OnEventNewWindow3(IDispatch* pDisp, VARIANT_BOOL* Cancel, DWORD dwFlags, BSTR bstrUrlContext, BSTR bstrUrl)
{
*Cancel = VARIANT_TRUE; //这句出错
}错误:
Unhandled exception at 0x00456821 in Browser.exe: 0xC0000005: Access violation writing location 0x000042f0.请高手指点一下!
解决方案 »
- 弱弱的问下,关于AfxEndThread的(nExitCode)参数
- 请教按位读取问题
- 如何自己编程实现 url moniker 访问 一个内存OLE文件COleStreamFile?
- 文件完整性确认
- 怎么编写一个注册表内的,可修改的,而非只在程序中的密码设置?
- 怎样控制childframe创建时的初始位置?
- 求助VC问题(非MFC)
- 填充颜色
- 关于重启的数据的保存问题,大虾帮忙呀,在线等待!!!!!!!!!
- mfc数据库问题
- 郁闷死了,在CSDN上发了3个帖子(共220分)都没有解决,唉,不知道是不是太简单了还是分不够,分不够可以在加,要是问题太简单了,就指导一下吧
- 问题严重!CSocket 传输AVI视频文件的问题!给高分
NewWindow3_Info 也一样要改第二个参数类型。还有一个问题,实现的两个Onxxx方法的返回值应该用HRESULT,不要用void