ActiveX回调js函数 之 变量调用
1、在VC6.0下创建一个MFC ActiveX工程,此处滤过具体步骤。
2、添加外部调用的变量OnDataIn,步骤如下:
3、在StdAfx.h中包含的最后一个afx头文件后添加如下代码:
#include <atlbase.h>
extern CComModule _Module;
#include <atlcom.h>
4、在StdAfx.cpp中添加如下代码:
CComModule _Module;
5、在CXXXCtrl.h中添加如下变量:
CComDispatchDriver m_pCallJSFun;
6、在CXXXCtrl.cpp的SetOnDataIn(const VARIANT FAR& newValue) 函数中添加如下代码:
if (newValue.vt == VT_DISPATCH)
{
m_pCallJSFun = newValue.pdispVal;
}
if(m_pCallJSFun.p != NULL)
{
CComVariant var1 = "this is a test of callback js function.";
m_pCallJSFun.Invoke1((DISPID)DISPID_VALUE, &var1, NULL);
}
7、对应的html中JavaScript代码如下:
<OBJECT id="tcom_OB" classid="clsid:5217B355-9EED-4D67-99FB-92AEF5D5FB8E" width=0 height=0>
<script>
function autoRead(){
tcom_OB.OnDataIn=printMsg;
}
function printMsg(msg) {
alert(msg);
}
</script>
<pre>