亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我寫了一個ActiveX控件 想先通過js調用其中的函數在web上顯示 請高手指教 如何實現?

我寫了一個ActiveX控件 想先通過js調用其中的函數在web上顯示 請高手指教 如何實現?

慕蓋茨4494581 2022-11-04 18:14:05
或者 一下代碼如何修改?其中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()" />
查看完整描述

1 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

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程序的主線程中執行!


查看完整回答
反對 回復 2022-11-08
  • 1 回答
  • 0 關注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號