在C++中用WebBrowser控件调用JavaScript函数
主要函数 CallJScript
BOOL CallJScript(const wchar_t * func, VARIANT * vtParams, int cNumberOfParam, VARIANT * vtResult)
{
if(!func || !func[0])
return FALSE;
CComPtr<IDispatch> spScript;
spScript = GetJScript();
if(!spScript)
return FALSE;
DISPID dispID = NULL;
CComBSTR bstrFunc(func);
HRESULT hr = spScript->GetIDsOfNames(IID_NULL, &bstrFunc, 1, LOCALE_SYSTEM_DEFAULT, &dispID);
if(FAILED(hr))
return FALSE;
DISPPARAMS dispParams = {0};
dispParams.cArgs = cNumberOfParam;
dispParams.rgvarg = new VARIANT[cNumberOfParam];
for(int i = 0; i < cNumberOfParam; ++i)
{
VariantInit(&dispParams.rgvarg[i]);
VariantCopy(&dispParams.rgvarg[i], &vtParams[cNumberOfParam - 1 - i]);
}
hr = spScript->Invoke(dispID, IID_NULL, 0, DISPATCH_METHOD, &dispParams, vtResult, NULL, NULL);
delete [] dispParams.rgvarg;
if(FAILED(hr))
return FALSE;
return TRUE;
}
其它函数
IHTMLDocument2 * GetIDocument2()
{
if(!m_pWebBrowser2) return NULL;
IDispatch *pIDispatch = NULL;
if (SUCCEEDED(m_pWebBrowser2->get_Document(&pIDispatch)) && pIDispatch)
{
IHTMLDocument2 *pIDocument2 = NULL;
if (SUCCEEDED(pIDispatch->QueryInterface(IID_IHTMLDocument2, (void**)&pIDocument2)))
{
pIDispatch->Release();
return pIDocument2;
}
pIDispatch->Release();
}
return NULL;
}
IDispatch * GetJScript()
{
CComPtr<IHTMLDocument2> doc;
doc = GetIDocument2();
if(!doc)
return NULL;
IDispatch * dsScript = NULL;
HRESULT hr = doc->get_Script(&dsScript);
if(SUCCEEDED(hr) && dsScript)
return dsScript;
else
return NULL;
}
相关文档:
scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetL ......
1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)> <td>no </table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false&quo ......
1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)> <td>no </table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false&quo ......
C语言之所以要起名为“C”,是因为它是主要参考那个时候的一门叫B的语言,它的设计者认为C语言是B语言的进步,所以就起名为C语言;但是B语言并不是因为之前还有个A语言,而是B语言的作者为了纪念他的妻子,他的妻子的第一个字母是B;
当C语言发展到顶峰的时刻,出现了一个版本叫C with ......
前文再续书接上一回,话说当日傍晚,令狐冲拜别师傅——额,看错书了……(轻松一下~哈~)
在这一节的前半篇,我们重温了JS里的数据类型。在众多的数据类型之中,有一种叫做object,也就是我们常说的对象。如前所述,对象就是一组属性和方法的集合。属性就是对象所关联的变量,而方法则是对 ......