C ++,win32 API:如何创build一个HTML渲染窗口,以便您的应用程序将从JS调用获得callback?

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

  1. CoCreate MSHTML com对象的HTML文档:

    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 ++中实现ActiveX对象,您可以从JavaScript中调用该对象。

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

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

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