如何从 VC WebBrowser 应用程序中调用脚本函数
来源:互联网 发布:淘宝上的私人教练 编辑:程序博客网 时间:2024/05/18 00:15
为了调用脚本函数存在的网页上,您必须使用自动化 ; 换句话说,IDispatch。 使用以下步骤来调用脚本函数从 Visual C++ 应用程序的网页上存在的:
- 获取在 HTML 文档的 IDispatch。
- 调用利用 IDispatch:: GetIDsOfNames 获取脚本函数的 ID。
- 调用 IDispatch:: Invoke 执行该函数。
下面的 Visual C++ 源代码演示如何在您自己的应用程序中对此进行实现。 此代码使用智能指针由 # import 语句。 必须在中您源的代码文件最好 stdafx.h 之一包含此 # import 语句:
#import "C:/winnt/system32/mshtml.tlb" // location of mshtml.tlb
void CMyClass::ExecuteScriptFunction()
{
// m_WebBrowser is an instance of IWebBrowser2
MSHTML::IHTMLDocument2Ptr spDoc(m_WebBrowser.GetDocument());
if (spDoc)
{
IDispatchPtr spDisp(spDoc->GetScript());
if (spDisp)
{
// Evaluate is the name of the script function.
OLECHAR FAR* szMember = L"evaluate";
DISPID dispid;
HRESULT hr = spDisp->GetIDsOfNames(IID_NULL, &szMember, 1,
LOCALE_SYSTEM_DEFAULT, &dispid);
if (SUCCEEDED(hr))
{
COleVariant vtResult;
static BYTE parms[] = VTS_BSTR;
COleDispatchDriver dispDriver(spDisp, FALSE);
dispDriver.InvokeHelper(dispid, DISPATCH_METHOD, VT_VARIANT,
(void*)&vtResult, parms,
"5+Math.sin(9)");
}
}
}
}
以下是为包含求函数的网页的 HTML:
<HTML>
<HEAD>
<TITLE>Evaluate</TITLE>
<SCRIPT>
function evaluate(x)
{
alert("hello")
return eval(x)
}
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
- 如何从 VC WebBrowser 应用程序中调用脚本函数
- WebBrowser 调用HTML脚本文件函数
- VC中如何调用DLL中的函数
- vc中如何调用dll函数
- VC中如何调用DLL中的函数
- VC中如何调用DLL中的函数
- 如何在VC中调用asm函数
- 9. vc中如何调用dll函数
- VC中调用其他应用程序
- 如何从VC中调用MATLAB的神经网络工具箱
- Linux shell脚本中,如何定义函数及调用函数
- VC中调用WebBrowser简单的实现过程
- 在linux中 应用程序如何调用模块内的函数
- 在linux中 应用程序如何调用模块内的函数
- 在linux中应用程序如何调用模块内的函数
- 在linux中 应用程序如何调用模块内的函数
- 在linux中应用程序如何调用模块内的函数
- 如何在VC中汇编,调用Nasm编写的函数
- 简单的spring MVC实例,适合入门
- 从设计模式学起
- 如何制作大容量U盘PE多功能启动盘教程(方法简单、实用)
- design compiler的library编译
- VS2008下OgreSDK配置环境
- 如何从 VC WebBrowser 应用程序中调用脚本函数
- DataSet生成Xml文件保存到指定路径
- [C++再学习系列] 函数模板和类模板
- 六线两相混合式步进电机的接线
- linux -- /etc/sysconfig/i18n 支持中文
- ERP标准流程
- 先来的,发下言啊
- 制作漂亮的个性文件夹
- #if, #elif, #else和#endif