gpt4 book ai didi

activex - 卸载 activex 控件时 IE 会调度什么事件?

转载 作者:行者123 更新时间:2023-12-01 05:44:55 30 4
gpt4 key购买 nike

嗨,我有一个这样的 ActiveX:

CMyActiveX 类:
公共(public) CComObjectRootEx...
...
{
HRESULT FinalContruct(){return S_OK;}
无效开始()
{
//这里为某个任务创建了一个新线程
}
无效的最终发布()
{
//如果线程还活着,杀死它
}
}

但是,当浏览器关闭时,不会调用 FinalRelease 方法。所以线程保持事件状态,并且在导出处遇到崩溃。

对此有任何想法吗?谢谢!

最佳答案

我发现我的 control::SetClientSite(NULL) 在关闭或离开页面时被 IE 可靠地调用,所以我在那里做我关键的关闭工作。
它是 IOleObjectImpl 中方法的重写。

HRESULT CControl::SetClientSite(IOleClientSite *pClientSite)
{
if (!pClientSite) {
// Means IE is closing or about to, or at least
// that we've lost our place in the sun...
do shutdown stuff
}
IOleObjectImpl::SetClientSite(pClientSite);
if (pClientSite) {
....

MSDN - IOleObject::SetClientSite method

关于activex - 卸载 activex 控件时 IE 会调度什么事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2918318/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com