我写了一个ActiveX控件 想先通过js调用其中的函数在web上显示 请高手指教 如何实现?

或者 一下代码如何修改?其中KCamera.dll 是我的ActiveX控件,PCCamera是我实现ActiveX控件的类<object id="iscamera"
classid="clsid:3C6C3136-F188-46b3-97CF-23074972929E" codebase="KCameraActive.CAB" Width="644" Height="520">
</object> <script language="javascript">
<!-- 读取 ActiveX 对象 -->
<!-- var pcc = new ActiveXObject("KCamera.PCCamera"); -->【这里好像有问题不知道怎么改】
<!-- 访问方法 -->
function Button1_onclick(object sender, EventArgs e){
iscamera.Stop(); // stop 是我PCCamera 类中的方法
} </script><input id="Button1" type="button" value="点击停止" onclick="Button1_onclick()" />

慕盖茨4494581
浏览 113回答 1
1回答

翻过高山走不出你

ActiveX控件调用JavaScript函数的方法1.向ActiveX注册JS函数:在ActiveX中添加接口方法 - void RegisterFunction(BSTR bstrFuncName, IDispatch* dispFunc);JavaScript代码声明一个函数,并调用RegisterFunction接口向ActiveX注册该函数,供ActiveX调用。2.保存注册的函数,ActiveX使用CComDispatchDriver对象保存注册的JS函数(IDispatch接口指针)CComDispatchDriver m_Func1;void RegisterFunction(BSTR bstrFuncName, IDispatch* dispFunc){if (bstrFuncName == "1")m_Func1 = dispFunc;}3.调用注册的函数,ActiveX使用CComDispatchDriver::InvokeN函数调用注册的函数以下是对接受一个无符号整型参数的JS函数的调用:VARIANT varArg[1];varArg[0].vt = VT_UINT; varArg[0].uintVal = 1;try{m_Func1.InvokeN((DISPID)DISPID_VALUE, varArg, 1);}catch(...){}4.注意,对JS函数的调用必须在ActiveX程序的主线程中执行!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript