我已经能够将 webkit 控件嵌入到 windows (c++) 应用程序中,并注册了我的自定义对象以供 javascript 访问(使用 JSGlobalContextRef、JSObjectMake 等)。成功测试了从 JavaScript 到 c++ 层的调用,用于返回字符串或 int 的简单方法。
现在我想公开一种自定义方法,该方法将在内部使用 COM 库并最终返回 IDispatch 指针(包装为 VARIANT 或其他方式)。如何将 IDispatch 指针转换为 JSValueRef、JSObjectRef 或 JavaScript(在 webkit 内部)可以理解的任何其他内容?
在 IE 浏览器控件世界中,我可以简单地通过“getExternal”(IDocHostUIHandler 接口)公开 IDispatch,甚至可以将其包装在 VARIANT 中并作为自定义“外部”对象内任何其他 API 的 Out-Param 返回。