IWebBrowser2打开的htm中js(或者window.external)如何调用C++函数?非同一般js调用C++有关问题
IWebBrowser2打开的htm中js(或者window.external)怎么调用C++函数?非同一般js调用C++问题
用得DirectUI做界面,
打开网页
test.htm中
网上的代码都看的差不多了,也不是很懂。
问题:怎么实现htm中调用CppCall函数?
------解决方案--------------------
只知道调用组件函数,没了解过调用C++函数
------解决方案--------------------
html文件:
<HTML>
<HEAD>
<TITLE>New Page</TITLE>
<script language="javascript">
function doTest()
{
FuckATL1. CppCall();
}
</script>
</HEAD>
<BODY>
<OBJECT ID="FuckATL1" CLASSID="CLSID:19CE2D6B-DE5E-4343-9F9B-
D37053304AC2">
</OBJECT>
<input type="button" value="测试加法" id="btnOK" onclick="doTest
();"></input>
</BODY>
</HTML>
------解决方案--------------------
参考mfc的做法。
mfc向导支持生成html界面的对话框。
里面有点html上的按钮,然后调用C++的函数的功能。
------解决方案--------------------
可以自己在设置元素的OnClick事件。
用得DirectUI做界面,
打开网页
- C/C++ code
CActiveXUI* pActiveXUI1 = static_cast<CActiveXUI*>(m_pm.FindControl(_T("ie"))); if( pActiveXUI1 ) { IWebBrowser2* pWebBrowser1 = NULL; pActiveXUI1->GetControl(IID_IWebBrowser2, (void**)&pWebBrowser1); if( pWebBrowser1 != NULL ) { pWebBrowser1->Navigate(L"test.htm",NULL,NULL,NULL,NULL); //pWebBrowser->Navigate(L"about:blank",NULL,NULL,NULL,NULL); pWebBrowser1->Release(); } }
test.htm中
- HTML code
<input id="button" type="button" value="点击调用客户端的CppCall函数" onclick="return window.external.CppCall()" />
网上的代码都看的差不多了,也不是很懂。
问题:怎么实现htm中调用CppCall函数?
------解决方案--------------------
只知道调用组件函数,没了解过调用C++函数
------解决方案--------------------
html文件:
<HTML>
<HEAD>
<TITLE>New Page</TITLE>
<script language="javascript">
function doTest()
{
FuckATL1. CppCall();
}
</script>
</HEAD>
<BODY>
<OBJECT ID="FuckATL1" CLASSID="CLSID:19CE2D6B-DE5E-4343-9F9B-
D37053304AC2">
</OBJECT>
<input type="button" value="测试加法" id="btnOK" onclick="doTest
();"></input>
</BODY>
</HTML>
------解决方案--------------------
参考mfc的做法。
mfc向导支持生成html界面的对话框。
里面有点html上的按钮,然后调用C++的函数的功能。
------解决方案--------------------
可以自己在设置元素的OnClick事件。
- C/C++ code
HRESULT IHTMLElement::get_onclick(VARIANT *p); HRESULT IHTMLElement::put_onclick(VARIANT v);
------解决方案--------------------
应该通过HTML页面来传递JS,子页面JS传递到主HTML页面JS,然后再有主页面调用C++