繁体   English   中英

C ++,win32 api:如何创建一个html渲染窗口,以便你的应用程序从JS调用中获得回调?

[英]C++, win32 api: How to create an html rendering window so that your application would get callbacks from JS calls?

我需要的很简单:我们有一个控制台应用项目。 我们希望有这样一个函数可以打开一个简单的窗口,只有html(基于默认系统)的html + js渲染窗口,它会读取一些默认的html + js字符串(表单字符串或const char *)。 我们想让我们自己的api与默认的js api结合,这样当JS调用一些our.function(argument); 我们会让我们的C ++应用程序执行一些函数,例如cout参数。 如何在Windows上创建这样的东西?

  1. CoC创建HTML文档的MSHTML com对象:

    CComPtr spDoc; HRESULT hr = CoCreateInstance(CLSID_HTMLDocument,NULL,CLSCTX_INPROC_SERVER,IID_IHTMLDocument2,(void **)&spDoc);

  2. 执行类似这样的操作来读取HTML字符串并使文档呈现它。

  3. 根据您在回调方面的需要,您可以使用COM DOM接口遍历树,然后接收相应的DispInterfaces以获取您感兴趣的元素上的事件。我建议这样做。

  4. 如果我在#3中的建议对你来说不够好(我想知道为什么),那么你可以实现自己的ActiveX控件,并按照raj的建议在你的页面调用方法上设置脚本。

除了任何安全/跨浏览器/平台问题,您可以使用在C ++中实现一个可以从javascript调用的ActiveX对象。

http://msdn.microsoft.com/en-us/library/7sw4ddf8(v=vs.94).aspx

WebBrowser控件的主机可以提供可通过external对象访问脚本的对象。

请参阅http://msdn.microsoft.com/en-us/library/aa770041.aspx#GetExternal

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM