这2天研究如何通过wtl atl 制作广告拦截器,读了不少关于bho如何拦截广告的方式,可是自己一实验就非法,不知道如何解决,所以来着请教下各位大侠!
以下是我自己重载的函数:
void CMyTest::OnNewWindow2(IDispatch **ppDisp,BOOL *Cancel)
{
*Cancel = 1;
}任何控制都没写,就是为了实验是否能挡住弹出网页,而且调试后确定正确的运行到该函数里了,但是在sp2系统下ie非法了,如果不加这句就不会非法,请问谁有好方法解决一下?
以下是我自己重载的函数:
void CMyTest::OnNewWindow2(IDispatch **ppDisp,BOOL *Cancel)
{
*Cancel = 1;
}任何控制都没写,就是为了实验是否能挡住弹出网页,而且调试后确定正确的运行到该函数里了,但是在sp2系统下ie非法了,如果不加这句就不会非法,请问谁有好方法解决一下?
解决方案 »
- 请教各位 大虾,使用win32 api如何实现鼠标拖拽效果
- 请各位仁兄义姐帮我看看我学VC的流程是否正确
- 如何获取其他程序窗体上控件上的内容?
- VC++6.0 编译错误请教
- 关于动态生成若干个按钮
- 我想用GetProcAddress获取用CreateProcess创建的进程里的一个函数地址,但是GetProcAddress要求的是进程的HMODULE/HINSTANCE,所以我要取得
- SerialPort.Read (Byte[], Int32, Int32)
- Clistctrl排序?散分
- 如何制作 带菜单的标题栏 就象realone 那样的效果
- 很菜的问题,MDI窗体!
- 既能传输文件又能进行文本聊天同一个连接的套接字是不可能?
- 帮看下,我的OCX控件打包时应该包含哪些dll,谢谢.....
VARIANT_BOOL * Cancel
);VARIANT_BOOL 为 short 型,windows 缺省定义 BOOL 型为 int 型
short 型为 16 bit, int 型为 32 bit, 你的付值已经越界,非法操作在所难免呀,呵呵
以下是我的实验代码,不知道是否正确.
void CMyTest::OnNewWindow3(IDispatch **ppDisp,VARIANT_BOOL *Cancel,DWORD dwFlags,BSTR bstrUrlContext,BSTR bstrUrl)
{
*Cancel = VARIANT_TRUE;
}
void CMyTest::OnNewWindow2(IDispatch **ppDisp,VARIANT_BOOL *Cancel)
{
*Cancel = VARIANT_TRUE;
}
用任何一个方法都会在弹出窗口的瞬间非法掉,但是如果*Cancel = VARIANT_FAULS就不会非法