ATL ActiveX的工作线程如何向主线程发送消息,再由主线程Fire_XXX给javascript
ATL 工作线程如何向主线程发送消息,再由主线程Fire_XXX给javascript。
试了工作线程使用SendMessage(handle, WM_STATE_CHANGE, (WPARAM)strlen(json), (LPARAM)json)发送消息
主线程收到消息,进行Fire但是javascript收不到。
class ATL_NO_VTABLE CTelImpl
实现:
LRESULT CTelImpl::OnCallStateChange(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/)
{
CComBSTR bstrText("事件通知消息传递测试!");
Fire_CallStateChange(&bstrText);
return S_OK;
}
我使用的是VC2010,有没有相关的实例提供一个,感激万分!
[解决办法]
javascript是一种脚本,如果没有宿主的话是收不到信息的....你的宿主是什么??浏览器么??
[解决办法]
http://blog.csdn.net/andrew_85/article/details/5266180
不知道你是不是想这样的
如果不是的话得到IWebBrowser2指针,用document方法再得到IHtmlDocument2接口,用这接口的parentWindow方法得到IHTMLWindow2,再调用execScript执行javascript
[解决办法]
http://hi.baidu.com/atyuwen/blog/item/318ceb9b220c1db0c9eaf491.html
或者是这个
[解决办法]
事件,连接点的问题吧,你了解下这两方面的
[解决办法]
还有就是看看Fire_CallStateChange的实现形式
[解决办法]
对,javascript是弱语言,无法知道你的事件,只有回调告诉js, 发给主线程可以记下主线程的句柄(是个框架类吧),然后主线程回调。