从脚本如何访问方法 / 属性是容器
MSDN地址:http://support.microsoft.com/kb/188015/zh-cn
概要
当承载 WebBrowser 控件在 VisualC++ 应用程序, 可能需要从 Web页上脚本访问方法或属性的容器。 本文介绍如何通过实现 IDocHostUIHandler 接口操作。
更多信息
通过实现 IDocHostUIHandler 接口, 可以控制众多用户界面功能 WebBrowser 控件宿主应用程序中。 IDocHostUIHandler 使您可以扩展动态 HTML (DHTML) 对象模型来访问方法和属性从脚本中容器。
IDocHostUIHandler GetExternal() 方法提供此功能。 当脚本在 Web页上调用 " window.external.yourMethod, " WebBrowser 控件调用您 GetExternal 方法来检索到宿主应用程序的 IDispatch 指针。 它是通过 this 指针 WebBrowser 控件是能够访问方法和属性。
一旦 WebBrowser 控件有指针指向 IDispatch 的容器, 然后调用 IDispatch::GetIDsOfNames() 以获取 DISPID 的方法或属性从脚本, yourMethod 这里调用。
最后, WebBrowser 控件调用与 DISPID IDispatch::Invoke() 检索从 GetIDsOfNames()。
下面是步骤必须按照来扩展 DHTML 对象模型能够从脚本访问容器的方法和属性:
IDocHostUIHandler GetExternal() 方法提供此功能。 当脚本在 Web页上调用 " window.external.yourMethod, " WebBrowser 控件调用您 GetExternal 方法来检索到宿主应用程序的 IDispatch 指针。 它是通过 this 指针 WebBrowser 控件是能够访问方法和属性。
一旦 WebBrowser 控件有指针指向 IDispatch 的容器, 然后调用 IDispatch::GetIDsOfNames() 以获取 DISPID 的方法或属性从脚本, yourMethod 这里调用。
最后, WebBrowser 控件调用与 DISPID IDispatch::Invoke() 检索从 GetIDsOfNames()。
下面是步骤必须按照来扩展 DHTML 对象模型能够从脚本访问容器的方法和属性:
| 1. | 实现 IDocHostUIHandler。 |
| 2. | 实现 IDocHostUIHandler::GetExternal 方法。 IDispatch 参数以与您容器这样设置:
|
| 3. | 从 GetIDsOfNames 返回调度 ID (DISPID) 是您方法或属性。 如果添加方法或属性使用向导, 这将完成了。 |
| 4. | DISPID 是您方法或您实现 IDispatch:: Invoke 中属性实现这样:
|
| 5. | 调用方法或属性的容器从脚本所示:
|
参考
有关本文, 讨论技术请转到有关高级托管接口和 MSDN 联机 WebWorkshop 中 IDocHostUIHandler 文档:
http://msdn.microsoft.com/workshop/ (http://msdn.microsoft.com/workshop/)
(c) Microsoft Corporation 1998, 保留所有权利。 由 Scott, Roberts MicrosoftCorporation 供稿
回到顶端
浙公网安备 33010602011771号