让我们说,我需要通过C#创建一个activex。这样做的原因是,需要使用SDK,在C#中实现,并由3d派对供应商提供。为了用ActiveX创建C# COM并通过.aspx中的类id加载它,我一直在这里学习一些很好的例子。当有人单击网页上的按钮时,我也成功地调用了新的COM方法。
现在的问题是,大多数新的COM方法使用异步回调函数等待供应商响应。例如,在新的COM方法hello()中,有一个相应的回调函数onHello(),它将在COM接收到供应商的响应时触发。
我的问题是,如何将onHello()函数调用与NewCOMID_onHello()这样的web页面VBS子程序绑定,以便在网页上显示一些东西通知用户。我不想用忙
这在C++中可能很简单,因为我们可以尝试通过.idl文件etc或BEGIN_CONNECTION_POINT_MAP等来映射VBS的回调函数。但我不知道如何在.Net/C#中这样做。我尝试过使用ComSourceInterfaces,但仍然找不出在供应商响应触发一个新的COM方法(如onHello() )时如何触发特定的VBS子。
或者,这是可行的吗?我知道msft正在放弃Activex的边缘,但我们现在不能离开activex。
谢谢你的任何暗示/帮助!
不是dup to Expose an event handler to VBScript users of my COM object,因为:1) COM服务器在C++中,而不是C#/.net 2)脚本中没有在VBS中完成
发布于 2016-02-12 00:37:28
我尝试了很多链接,似乎以下两个链接将我引向正确的方向:
https://code.msdn.microsoft.com/windowsdesktop/csactivex-c3f43e7d http://simpcode.blogspot.com/2013/09/c-com-interop-and-events.html
至少,当后端异步调用返回响应时,我可以看到一些警报弹出窗口。
https://stackoverflow.com/questions/35166121
复制相似问题