我使用 ATL C++ 创建了一个 Com 对象
interface IHostObjectSample2 : IDispatch
{
[propget, id(2), helpstring("Property.")] HRESULT Property([out, retval] BSTR* stringResult);
[propput, id(2), helpstring("Property.")] HRESULT Property([in] BSTR stringValue);
};
dispinterface _IHostObjectSample2Events
{
methods:
[id(1), helpstring("message")] void Event();
};
coclass HostObjectSample2
{
[default] interface IHostObjectSample2;
[default, source] dispinterface _IHostObjectSample2Events;
};
我使用 AddHostObjectToScript 将 Com 对象添加到脚本
m_Webview->AddHostObjectToScript(L"sample", &remoteObjectAsVariant));
我可以从脚本端调用方法/函数
我想_IHostObjectSample2Events::Event
在 c++ 端触发事件并在 Javascript 端接收它
就像是 window.chrome.webview.hostObjects.sample.addEventListener("Event", () => { do something });