gpt4 book ai didi

Javascript 只接收一次 ActiveX 事件

转载 作者:太空宇宙 更新时间:2023-11-04 12:27:12 25 4
gpt4 key购买 nike

我已经使用 ATL 编写了一个 ActiveX 控件。我使用向导添加对添加了 public IConnectionPointContainerImpl<CActiveX> 的连接点的支持和 CProxy_IActiveXEvents<CActiveX> , 其中CProxy_...是向导生成的触发事件的代码。

我定义了一个调度接口(interface)如下:

[ uuid(43ECB3DF-F004-4FAD-9BFB-79211A693C3A), helpstring("ActiveX Events") ] dispinterface _IActiveXEvents { properties: methods: [id(1)] void receiveCertificate([in] VARIANT_BOOL isPermissionGranted, [in] BSTR certificateXml); };

并将其包含在 [default,source] dispinterface _IActiveXEvents 的 coclass 中.要触发事件,我调用 Fire_receiveCertificate(isGranted, _bstr_t(certXml.c_str()).copy()) ,这是在向导代码中定义的。

下面的Javascript会收到事件

function ActiveXObject::receiveCertificate(permission, certificate) {
alert("alert!");
}

问题是它只接收一次事件,我必须关闭并重新打开 IE 才能让它再次接收事件。我错过了什么吗?

最佳答案

如果有人感兴趣,我找到了解决这个问题的方法。我已经在 ROT(运行对象表)中注册了对象,但没有撤销任何先前存在的注册。因此,出现了多个注册。一旦我确定我撤销了以前的注册,事件就会可靠地触发。

关于Javascript 只接收一次 ActiveX 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1621301/

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