上篇介绍了用C++调用JavaScript,这篇反过来说说JS调C++,这样JS和C++沟通的途径就完整了。
首先,实现一个IDispatch接口,当JS调用C++函数时,系统会调用GetIDsOfNames来用函数名取得函数的DISPID,然后调用Invoke完成真正的调用,需要注意的是Invoke的pDispParams中的参数是倒序的。代码如下:
其次,实现一个IDocHostUIHandlerDispatch接口。其中最重要的是GetExternal,它返回一个CExtenalDispatch指针。
最后,在WebBrowser控制创建好后,调用SetExternalUIHandler。如下:
JS调C++实践
本文介绍了一种通过实现IDispatch和IDocHostUIHandlerDispatch接口,使JavaScript能够调用C++函数的方法。通过具体代码示例展示了如何注册外部对象,并在WebBrowser控件中设置外部UI处理器。
2804

被折叠的 条评论
为什么被折叠?



