当关闭IE浏览器时,IE浏览器里的activex控件最先收到什么消息?

feixiaop 2004-10-08 04:42:24
其实想问两个问题?
1.当关闭IE浏览器时,IE浏览器里的activex控件最先收到什么消息?
2.ACTIVEX控件中使用了CSOCKET,当我先断开连接再关闭IE,不会出现异常,当我在通信状态直接关闭IE会出现异常,异常在sockcore.cpp 667行:
661 void CSocket::Close()
662 {
663 if (m_hSocket != INVALID_SOCKET)
664 {
665 CancelBlockingCall();
666
667 VERIFY(AsyncSelect(0));
668 CAsyncSocket::Close();
669 m_hSocket = INVALID_SOCKET;
}
}
这个问题是怎么产生的?
...全文
278 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
mfCVinci 2004-10-09
  • 打赏
  • 举报
回复
啊,理解错了。

我现在只能想到 你的Activex 中 app的 ExitInstance()函数。
feixiaop 2004-10-09
  • 打赏
  • 举报
回复
mfCVinci(沙漏之眼) :
可能是我没说清楚情况,我已经做好了一个OCX文件
然后在HTM文件用<OBJECT
id="ActDlg" classid=clsid:F49AD715-93D0-4DD5-9DA3-58337E867400
width="800" height="600">
</OBJECT>
插入
运行时没错,就关闭的时候会出现上述情况,你图片上的IDC_EXPOLER1应该是OCX自己带的控件吧
mfCVinci 2004-10-09
  • 打赏
  • 举报
回复
下面是图片地址
http://bbs.wolf.net.cn:8080/attachment.php?s=c856dce2d4b4fdef9027c0385159c9c3&postid=2347370
feixiaop 2004-10-09
  • 打赏
  • 举报
回复
mfCVinci(沙漏之眼) :
我在wizzard里找不到OnQuit事件事件呀
mfCVinci 2004-10-09
  • 打赏
  • 举报
回复
没帮上忙...受之有愧...
feixiaop 2004-10-09
  • 打赏
  • 举报
回复
icelight(给我一个接口,我能驱动地球……………仪):
现在的代码是别人写的,用的是网上DOWN的一个文件,现在不想去改动他的源码,怕改出问题
现在已经解决了,马上给分
mfCVinci(沙漏之眼)
是在WM_DESTROY消息里处理,非常感谢你们的帮助,尤其是mfCVinci(沙漏之眼)
mfCVinci 2004-10-09
  • 打赏
  • 举报
回复
楼主和楼上的老大能不能介绍一下ActiveX怎么写的?
icelight 2004-10-09
  • 打赏
  • 举报
回复
我在ActiveX中用的是SOCKET API, 封装类的析构函数主动关闭SOCKET就行了, 不用理会ActiveX在IE关闭时收到什么消息。
在高流量中多次测试突然关闭IE,我的代码很稳定。
nwpulipeng 2004-10-09
  • 打赏
  • 举报
回复
帮顶混分
mfCVinci 2004-10-08
  • 打赏
  • 举报
回复
在wizzard里看了一下,有一个OnQuit事件,:Fired when application is quiting .也许是这个?
还有一个windowclosing 添加这两个事件处理函数,弄两个断点,再调试一下,看是VERIFY先出现,还是先到断点,就可以解决了。


feixiaop 2004-10-08
  • 打赏
  • 举报
回复
yuantao(cfan):
AsyncSelect(0)是系统自己调用的
我觉得问题不在这里
问题是在怎么引起AsyncSelect(0)失败?
我觉得这时,SOCKET已经被DESTROY,而程序又调用了AsyncSelect(0)函数失败

feixiaop 2004-10-08
  • 打赏
  • 举报
回复
我是想关闭IE浏览器浏览器时,先关闭连接,那样就应该不会产生这个问题了
yuantao 2004-10-08
  • 打赏
  • 举报
回复
应该是有1个阻塞的socket操作在进行, 所以你不能调用AsyncSelect(0),这个函数是用来取消所有的监听事件的
feixiaop 2004-10-08
  • 打赏
  • 举报
回复
那第一个问题是什么呢?
1.当关闭IE浏览器时,IE浏览器里的activex控件最先收到什么消息?
mfCVinci 2004-10-08
  • 打赏
  • 举报
回复
应该是
AsyncSelect(0)失败
原因是
WSAEINPROGRESS A blocking Windows Sockets operation is in progress
英文不好,翻译不来。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧