IWebBrowser2打开的htm中js(或者window.external)如何调用C++函数?非同一般js调用C++有关问题

IWebBrowser2打开的htm中js(或者window.external)怎么调用C++函数?非同一般js调用C++问题
用得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++